feat: 新增电源/负载切换功能,优化通道切换逻辑
1. 新增SINK_WORK_SWITCH和SOURCE_WORK_SWITCH状态,实现切换流程 2. 实现chrg_sink_work_switch和chrg_source_work_switch切换处理函数 3. 修改Keil工程ROM起始地址为0x8000000 4. 开启north线程调试输出,调整初始通道使能状态 5. 简化串口包编码调试打印,优化source初始化寄存器配置 6. 重构modbus通道切换逻辑,支持活跃状态下的角色切换 7. 清理部分冗余调试代码和注释 8. 重构bootloader代码,简化启动流程
This commit is contained in:
@@ -523,6 +523,24 @@ static int chrg_sink_nor_work_off(eIDX_SOU_CH idx, struct chrg_switch_t *pSW)
|
||||
return 0;
|
||||
}
|
||||
|
||||
// 切换进入负载:停止旧电源后,从负载初始化状态开始运行
|
||||
static int chrg_sink_work_switch(eIDX_SOU_CH idx, struct chrg_switch_t *pSW)
|
||||
{
|
||||
rt_uint16_t reg = REG_WORK;
|
||||
rt_uint16_t value = WORK_STOP;
|
||||
int ret;
|
||||
|
||||
ret = chrg_sou_com_batch_submit(idx, ®, &value, 1);
|
||||
if (ret != 0) {
|
||||
return ret;
|
||||
}
|
||||
|
||||
pSW->source.On_Flag = 0;
|
||||
pSW->sub = IDX_SET_SINK_CCLINE;
|
||||
pSW->sink.work_mode = SINK_WORK_INIT;
|
||||
return 0;
|
||||
}
|
||||
|
||||
//动态测试启动
|
||||
static int chrg_sink_TEST_DYNA_ON(rt_uint8_t ch, struct chrg_switch_t *pSW)
|
||||
{
|
||||
@@ -598,6 +616,9 @@ int chrg_sink_work(eIDX_SOU_CH idx, struct chrg_switch_t *pSW)
|
||||
case SINK_WORK_STOP:
|
||||
ret = chrg_sink_nor_work_off(idx,pSW);
|
||||
break;
|
||||
case SINK_WORK_SWITCH:
|
||||
ret = chrg_sink_work_switch(idx,pSW);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user