修复了V_ON在运行状态下不能发送新的设置值的问题 chore: 更新版本号并新增运行中修改V_On功能 1. 更新多个文件的版本号至V1.1.14~V1.1.15 2. 新增Sink通道运行中修改V_On时下发Eload_Start_V_ON逻辑 3. 新增Sink电压判定可选来源配置,支持协议板或功率板电压 4. 优化chrg_sink_parse函数,新增实际电压读取和序号更新 5. 调整短路测试补发周期至50ms,移除冗余宏定义 6. 更新修改日志文档,新增V1.1.15版本变更记录 7. 新增协议板YMODEM升级文档
10 KiB
10 KiB
修改日志
V1.1.15 - 2026-09-09
运行中 V_On 更新
- Sink 通道处于运行状态时,参数生效检测到
V_On改变,会向对应功率板下发Eload_Start_V_ON。 - 下发值保持既有下限:小于或等于
500mV时按500mV发送。 - 南向队列提交失败时,本次参数生效返回忙,协议板运行参数保持原
V_On。
验证记录
- 待硬件验证:运行中修改
SINK_REG_VON_VOLT (0x0B)并执行参数生效,确认功率板收到Eload_Start_V_ON新值。
V1.1.9 - 2026-08-25
Source 复位后的初始化流程
- 从其他协议切换到 PD 时复位加入断开CC,D+D-,GND逻辑,等断开后再复位,再初始化
- 增加 PD 切换到非 PD 协议时的完整复位;PD/非PD跨类别切换统一执行复位。
- PD切PD、非PD切非PD以及仅切换CC线时不复位。
- 新增
SOURCE_WORK_INIT_WAIT,复位回码后重新执行 Source 初始化,并等待南向初始化批次完成。 - 加入了读取版本号
V1.1.8 - 2026-08-24
修改主题
修复了source部分的PD协议长时间运行后会出不来的问题 对应芯海3221/source版本V_1.07
Source协议复位切换
- 新增
SOURCE_RESET命令:发送06 00 02 18 00 0E,校验回码05 00 02 18 16。 - 首次发送协议不复位;PD与非PD跨类别切换时先复位。
- PD切PD、非PD切非PD以及仅切换CC线时不复位。
- 删除
CC_CLOSE状态及其共享等待屏障。 - 协议设置回码有效后更新
last_pd_pro,避免协议尚未生效时错误判断。
验证记录
- 使用1-2,3-4测试自举例程测试俩百次正常
- git diff --check`:通过。
- 旧
CC_CLOSE状态、宏和调用引用:已检查清理。 - Keil编译:按当前要求未执行,待现场烧录后验证复位回码和协议切换时序。
V1.1.7 - 2026-08-08
修改主题
并行执行Sink完整握手中的南向低电流确认与北向协议/CC设置。
主要修改
- 南向安全批次完成并收到辅助继电器回码、建立量测基线后,立即允许北向设置协议和CC线。
- 南向实际电流连续两次不大于
100mA的确认过程与北向协议/CC设置并行执行。 - 北向进入
GET_SINK_VC后,只有低电流确认完成且CC后的200ms查询保护时间到期,才发送第一条0x20。 - 电压稳定后再发送
ALL_REL_ON -> 目标电流 -> WORK_START,防止协议协商期间提前带载。
涉及文件
apps/chrg/applications/thread/chrg_roll_nor.capps/chrg/applications/utils/chrg_sink.capps/chrg/applications/utils/chrg_sink.h
编译验证
- Keil MDK 编译结果:
0 Error(s), 0 Warning(s)。
V1.1.5 - 2026-08-08
修改主题
协议电压和协议电流变化统一采用软卸载重发协议流程。
主要修改
- 协议类型、CC线和协议组号变化仍进入完整握手并切换南向继电器。
- 协议电压、协议电流单独变化或同时变化时,只发送
WORK_STOP,不关闭南向继电器。 - 软卸载不再额外发送
CURRENT=0,仅通过实际电流连续两次不大于100mA确认电子负载已停止。 - 协议重新生效且电压稳定后,由RUNNING先写入实际负载电流,再发送
WORK_START。
涉及文件
apps/chrg/applications/thread/chrg_comm.capps/chrg/applications/utils/chrg_sink.c
编译验证
- Keil MDK 编译结果:
0 Error(s), 0 Warning(s)。
V1.1.4 - 2026-08-07
修改主题
调整负载低电流启动时的继电器和工作命令顺序。
主要修改
- 设定电流为
0A或低于100mA时,协议握手仍正常执行。 - 电压达到目标后发送
ALL_REL_ON,确保主继电器打开。 - 主继电器打开后继续发送
WORK_STOP和CURRENT=0,保持电子负载不带载。 - 已经处于运行状态切换到低电流时,沿用原有停止流程,不重复切换继电器。
涉及文件
apps/chrg/applications/utils/chrg_sink.c
编译验证
- Keil MDK 编译结果:
0 Error(s), 0 Warning(s)。
V1.1.3 - 2026-08-07
修改主题
并行执行Sink南向初始化与北向握手,并优化握手查询和RUNING继电器时序。
主要修改
INIT将FU_REL_ON -> CURRENT=0 -> MODE -> VON作为一个有序南向批次提交。- 南向初始化批次成功入队后立即打开北向Sink继电器、设置
enable=1并开始协议握手。 SINK_WORK_INIT_AUX_WAIT改为后台监控南向初始化,不再阻塞北向协议、CC和电压查询。- 南向初始化失败重试时保留当前北向
sub,不重复拉回协议设置起点。 - 协议或CC有效回码后,首条
0x20等待200ms;电压未稳定时后续每100ms查询一次。 - 一帧通过CRC、ID、命令和配置版本校验的电压达到目标后立即进入
RUNING,不再等待第二帧。 - 进入稳定运行后立即解除查询节流,恢复北向正常轮询速度。
RUNING删除重复的FU_REL_ON,调整为ALL_REL_ON -> 目标负载值 -> WORK_START。
涉及文件
apps/chrg/applications/utils/chrg_sink.capps/chrg/applications/thread/chrg_roll_nor.capps/chrg/applications/thread/chrg_north.c
编译验证
- Keil MDK 编译结果:
0 Error(s), 0 Warning(s)。
硬件验证
- 待确认南向初始化命令与北向协议/CC设置并行执行且互不重置状态。
- 待确认首条和后续
0x20间隔分别约为200ms和100ms。 - 待确认进入
RUNING时不再发送FU_REL_ON,主继电器不会被重复断开。
V1.1.2 - 2026-08-07
修改主题
降低Sink协议握手阶段的北向电压电流查询频率。
主要修改
- 新增
SINK_HANDSHAKE_QUERY_INTERVAL_MS,设置为200ms。 - Sink协议或CC设置收到有效回码后,不立即发送或连续快速发送
0x20查询。 - CC路径的
200ms从有效0x17回码时刻开始计时,包含原有50msCC稳定保护。 - 协议握手、软恢复等待和掉电恢复监控阶段的
0x20查询按每200ms一次执行。 - 北向量测连续两次达到稳定条件后解除节流,
RUNING和低电流待机恢复正常查询频率。 - 仅重发协议的
IDX_SET_SINK_PD_ONLY路径同样启动200ms查询等待。 - 设置协议和CC命令仍然按有效回码、超时和原有重试机制处理。
涉及文件
apps/chrg/applications/thread/chrg_roll_nor.c
编译验证
- Keil MDK 编译结果:
0 Error(s), 0 Warning(s)。
硬件验证
- 待观察协议/CC设置后
0x20的发送间隔是否稳定为不小于200ms。 - 待验证电压连续两次稳定后是否恢复正常量测频率。
V1.1.1 - 2026-08-07
修改主题
增加普通负载最低带载电流控制,低电流时保持协议在线但关闭电子负载。
主要修改
- 新增
SINK_LOAD_ENABLE_MIN_MA,恒流负载设定低于100mA时禁止发送WORK_START。 - 最低带载门限只判断南向负载电流
loadc,不影响北向协议电流pro_loadc和协议握手。 - 首次启动或完整重握手后为低电流时,发送
WORK_STOP -> CURRENT=0并保持主继电器关闭。 - 运行中由有效电流降至低电流时,发送
WORK_STOP -> CURRENT=0,保持协议、CC和继电器不变。 - 运行中低电流待机恢复有效电流时,只发送目标电流和
WORK_START,不重新握手或切换继电器。 - 主继电器未打开的低电流待机使用独立
SINK_WORK_LOAD_START恢复入口,避免被RUNING状态去重。 - 低电流待机期间仅修改协议电压时不重复卸载,并保持原有主继电器状态语义。
- 将 COM 端运行电流跨门限判断封装为
chrg_comm_handle_sink_load_current(),避免生效分支继续膨胀。 - 北向解析将两种低电流待机状态作为稳定状态,不因实际电流为零反复进入
RUNING。 - 低电流待机恢复有效电流时,
SINK_WORK_LOAD_START/SINK_WORK_LOAD_RESUME只作为待启动标记,必须等北向实际电压稳定后才下发WORK_START。
涉及文件
apps/chrg/applications/utils/chrg_sink.happs/chrg/applications/utils/chrg_sink.capps/chrg/applications/thread/chrg_comm.capps/chrg/applications/thread/chrg_north.c
编译验证
- Keil MDK 编译结果:
0 Error(s), 0 Warning(s)。
硬件验证
- 待验证
20V/3A -> 20V/0A -> 20V/3A的南向命令顺序和协议保持情况。 - 待验证首次以低于
100mA的电流启动时,北向握手正常且南向不执行WORK_START。
V1.1.0 - 2026-08-07
修改主题
负载启动、掉电恢复、协议重握手和协议电压软切换时序调整。
主要修改
- 负载启动时先向南向发送
FU_REL_ON,收到有效回码后才打开北向 Sink 继电器。 - 剩余的负载初始化命令在副继电器确认后入队,北向协议握手与南向初始化并行执行。
RUNING阶段的南向命令继续追加到同一队列,保持初始化配置、继电器、目标电流/电压和WORK_START的顺序。- 掉电恢复时执行
WORK_STOP -> CURRENT=0 -> ALL_REL_OFF -> FU_REL_ON,副继电器恢复后等待输入电压重新出现。 - 掉电恢复检测到电压后重新设置协议和 CC,不能使用掉电前的电压样本直接进入
RUNING。 - 协议类型、CC、协议组号或协议电流变化进入完整重握手,关闭主副继电器后重新打开副继电器。
- 仅协议电压变化使用软卸载,只发送
WORK_STOP和CURRENT=0,不切换继电器。 - 软卸载恢复时只发送目标电流/电压和
WORK_START,不再发送继电器命令。 - 保留连续两次实际电流不大于
100mA的安全确认,以及连续两次稳定电压确认。 - 暂时保持南向主副继电器之间的固定延时为屏蔽状态。
涉及文件
apps/chrg/applications/utils/chrg_sink.happs/chrg/applications/utils/chrg_sink.capps/chrg/applications/thread/chrg_comm.capps/chrg/applications/thread/chrg_roll_nor.capps/chrg/applications/thread/chrg_north.c
编译验证
- Keil MDK 编译结果:
0 Error(s), 0 Warning(s)。 - 尚未完成硬件验证,需重点观察南向命令顺序、北向协议握手时刻、掉电恢复和协议电压软切换。
后续记录格式
后续每次修改按以下格式追加:
## Vx.y.z - YYYY-MM-DD
### 修改主题
### 主要修改
### 涉及文件
### 编译验证
### 硬件验证