Files
chrg/docs/修改日志.md
T
wrh a8f2edd624 feat: 新增Sink板D+/D-校准参数写入功能
1. 新增SINK_CMD_SET_DPDM_CAL命令定义及对应寄存器
2. 新增校准参数结构体及相关任务提交、查询接口
3. 修改北向帧校验逻辑适配校准写入的6字节长度要求
4. 更新协议板版本至V1.1.56,寄存器版本号更新为0x0148
5. 修改Sink电压稳定确认参数,优化5V电压确认计数
6. 新增校准参数配置比较函数,独立处理校准写入事务
7. 更新修改日志,记录本次版本新增功能详情
2026-10-09 11:05:31 +08:00

28 KiB
Raw Blame History

修改日志

V1.1.56 - 2026-10-09

Sink板D+/D-校准参数写入

  • 增加每通道四个16位D+/D-校准参数:D+K、D+B、D-K、D-B;K按10000倍传递,B为0.01V有符号值。
  • 上位机写入参数并触发原有 PARAM_EFFECT 后,405通过北向Sink板 0x32 指令写入参数。
  • 写入任务复用北向通道切换、事务号和回码校验;仅在通道空闲量测状态提交,完成后恢复普通轮询。
  • 本版本不包含 0x31 采样、0x33 读取、0x34 恢复和五点拟合。
  • 协议板版本寄存器 0x0300 更新为 0x0148。

V1.1.55 - 2026-10-09

Sink协议切换复位开关

  • 新增 SINK_PROTOCOL_SWITCH_RESET_ENABLE:设为 1 时协议类型变化先复位Sink;设为 0 时直接设置协议。
  • 仅上位机CC参数实际变化时才断开北向D+/D-/CC继电器;协议类型单独变化不会断开继电器。
  • 协议复位清除内部CC选择后,仍会重新设置CC再发送协议。
  • 协议板版本寄存器 0x0300 更新为 0x0147。

V1.1.54 - 2026-10-05

南向写寄存器打印通道号

  • 南向写寄存器日志改为打印实际选通通道号,不再打印固定的Modbus从机地址。
  • 协议板版本寄存器 0x0300 更新为 0x0146。

V1.1.53 - 2026-09-30

负载协议切换后CC恢复

  • Sink协议类型切换触发复位后,固定重新下发CC选择并等待稳定,再设置目标协议。
  • 修复PD切换为标准5V时CC参数未变化而跳过CC设置,导致充电头不重新输出的问题。
  • 协议板版本寄存器 0x0300 更新为 0x0145。

V1.1.52 - 2026-09-29

南向YMODEM发送结果校验

  • 校验 UART6 写入返回长度;短写或失败立即记录通道、期望长度和实际返回值。
  • 南向帧未完整写入时立即取消升级会话,不再错误等待南向ACK超时。
  • 协议板版本寄存器 0x0300 更新为 0x0144。

V1.1.51 - 2026-09-29

南向Boot主动握手

  • 0x20进入命令仅锁定目标通道并立即回码,不再向南向发送进入升级控制帧或等待ACK。
  • 南向Boot每500ms发送的 C 由协议板转发给上位机,收到首个 C 后进入YMODEM元数据阶段。
  • 0x20退出命令立即结束本地升级会话并回码,不再发送南向跳转App帧或等待ACK。
  • 协议板版本寄存器 0x0300 更新为 0x0143。

V1.1.50 - 2026-09-29

南向升级命令回码格式

  • 0x20 进入和退出升级成功后,回显请求前6字节并重新附加Modbus CRC。
  • 成功回码保留功能码、目标通道和进入/退出操作,不再使用4字节 地址+ACK+CRC 格式。
  • 协议板版本寄存器 0x0300 更新为 0x0142。

V1.1.49 - 2026-09-29

南向升级随时退出

  • 南向升级任意阶段均允许接收匹配通道的 0x20 退出命令。
  • 本地会话已经回到空闲状态时,也可重新锁定指定通道并发送退出指令,用于恢复仍停留在Boot的功率板。
  • 退出时仍按 SOUTH_YMODEM_EXIT_APP 配置决定是否发送跳转App帧。
  • 协议板版本寄存器 0x0300 更新为 0x0141。

V1.1.48 - 2026-09-29

南向升级启动等待

  • 进入南向升级模式后等待200ms,再发送进入Boot升级指令,避开功率板重启阶段。
  • 协议板版本寄存器 0x0300 更新为 0x0140。

V1.1.47 - 2026-09-29

南向升级退出跳转开关

  • 新增 SOUTH_YMODEM_EXIT_APP 宏,控制升级退出时是否发送南向跳转App帧。
  • 宏关闭时仅结束本地升级会话并恢复普通轮询。
  • 协议板版本寄存器 0x0300 更新为 0x013F。

V1.1.46 - 2026-09-29

南向YMODEM数据包打印

  • 使用 SOUTH_YMODEM_DEBUG 控制南向升级帧发送内容的十六进制打印。
  • 协议板版本寄存器 0x0300 更新为 0x013E。

V1.1.45 - 2026-09-29

南向YMODEM回码调试开关

  • 新增 SOUTH_YMODEM_DEBUG 宏,统一控制南向 ACK、NAK、C 和 CAN 回码打印。
  • 协议板版本寄存器 0x0300 更新为 0x013D。

V1.1.44 - 2026-09-29

南向YMODEM回码打印

  • 在南向升级模式下打印收到的 ACK、NAK、C 和 CAN 回码。
  • 协议板版本寄存器 0x0300 更新为 0x013C。

V1.1.43 - 2026-09-28

YMODEM升级代理代码清理

  • 删除 chrg_comm.c 中已被独立代理模块替代的旧YMODEM自动重发代码和注释代码。
  • 删除无调用的旧状态枚举和升级查询接口。
  • 补充YMODEM代理状态、会话上下文、校验和超时流程的中文注释。
  • 协议板版本寄存器 0x0300 更新为 0x013B。

V1.1.42 - 2026-09-28

功率板YMODEM北向升级代理

  • 新增独立 chrg_ymodem_proxy 模块,管理指定通道的升级会话、拼帧、校验和超时。
  • 严格区分元数据、数据包、两次EOT和结束空SOH状态。
  • 功率板NAK原样转发给PC,取消协议板对数据帧和EOT的内部自动重发。
  • 退出升级并收到真实ACK后恢复南向轮询,强制刷新目标功率板版本。
  • 协议板版本寄存器 0x0300 更新为 0x013A。

V1.1.41 - 2026-09-28

Sink协议类型切换复位时序

  • Sink协议类型变化并完成低电流确认后,先发送 05 00 01 01 42 并等待相同回码。
  • Reset回码后断开该通道D+/D-和CC继电器100ms,再恢复Sink路径并继续CC/协议设置。
  • 协议组号、协议电压/电流、模式和仅CC变化不触发Reset。
  • 协议板版本寄存器 0x0300 更新为 0x0139。

V1.1.40 - 2026-09-28

清理北向轮询旧状态

  • 删除北向轮询中没有发送处理分支的遗留 sub 枚举。
  • 合并行为相同的 IDX_SET_SINK_PD_ONLY 与 IDX_SET_SINK_PD。
  • Sink手动电压查询及停止后的空闲状态统一使用现有电压查询状态。
  • 协议板版本寄存器 0x0300 更新为 0x0138。

V1.1.39 - 2026-09-24

北向事务隔离逻辑注释

  • 补充通道切换接收清理、内部事务号和回码匹配逻辑的中文注释。
  • 协议板版本寄存器 0x0300 更新为 0x0137。

V1.1.38 - 2026-09-24

北向事务超时与通道切换隔离

  • 北向 0x20 量测回码等待 80ms,协议和CC配置回码等待 150ms。
  • 北向邮箱消息增加物理通道和内部事务号,只接受当前请求对应的回码,不改变北向协议帧。
  • 物理通道切换后清空驱动接收FIFO、环形缓冲区和未完成帧,等待接收线程确认后再发送。
  • 协议板版本寄存器 0x0300 更新为 0x0136。

V1.1.37 - 2026-09-21

Sink功率板角色同步

  • Sink初始化阶段新增 REG_ELOAD=ELOAD_LOAD,在副继电器动作前强制功率板进入负载角色,避免沿用Source角色。
  • 协议板版本寄存器 0x0300 更新为 0x0135。

V1.1.36 - 2026-09-21

南向日志精简

  • 移除命令队列调度日志 [SOU_CMD],保留实际 Modbus 串口下发日志 south write。
  • 协议板版本寄存器 0x0300 更新为 0x0134。

V1.1.35 - 2026-09-21

北向轮询无回码让行

  • 北向请求单次等待 50ms 未收到匹配回码时立即轮转到下一通道;保留原状态,下一次轮到该通道时再继续发送和等待。
  • 协议板版本寄存器 0x0300 更新为 0x0133。

V1.1.34 - 2026-09-21

功率板小电流归零

  • 新增 ELOAD_CURRENT_ZERO_THRESHOLD_MA 宏,功率板采样电流小于 20mA 时按 0mA 发布。
  • 协议板版本寄存器 0x0300 更新为 0x0132。

V1.1.33 - 2026-09-20

Source 初始化事务保护

  • Source处于 INIT 或 INIT_WAIT 时,重复运行请求只继续当前初始化;不同配置返回忙,避免跳过南向初始化批次结果检查。
  • 协议板版本寄存器 0x0300 更新为 0x0131。

V1.1.32 - 2026-09-17

版本号管理

  • 协议板版本寄存器 0x0300 的版本编码移至 chrg_comm.c 管理,当前返回 0x0130(V1.1.32)。
  • 应用启动日志版本更新为 V1.1.32。

V1.1.26 - 2026-09-17

修复Sink角色往返时初始化上下文残留

  • Source切回Sink时清除旧Sink初始化阶段、提交标记和延时计时;重新执行清短路及继电器等完整初始化,避免角色切换回码被误判为旧初始化成功。
  • 应用版本更新为 V1.1.26,对外固件版本寄存器 0x0300 为 0x012A;Bootloader不变。

V1.1.25 - 2026-09-17

修复Sink重复启动及退出Short时初始化卡住

  • 同角色Sink参数生效只复制PC可写配置,不再覆盖实时work_mode、sub、On_work、test_mode_old及量测数据。
  • 初始化/退出Short期间,相同运行请求继续原事务,不重复取消批次;不同配置返回Modbus忙(异常码0x06),PC需等待后重新发送参数生效。停止流程未完成时也拒绝新运行请求。
  • 已开始的初始化收到重复INIT时恢复到INIT_AUX_WAIT,避免被last_state去重卡住;停止和掉电保护允许抢占初始化。
  • 按阶段记录初始化命令是否入队,入队失败或批次失败时重试当前阶段,禁止用上一阶段的成功结果跳过未发送的命令。
  • 重复/拒绝的Sink配置不再无条件递增北向配置版本,避免连续参数生效导致有效回码被反复丢弃。
  • STOP入队失败后由北向轮询继续重试,不依赖On_work或通道使能。
  • 应用版本V1.1.25,对外寄存器0x0300返回0x0129;Bootloader不变。不修改Von门槛、串口超时和南向队列容量。
  • 增加主机回归测试tests/sink_init(运行真实状态机及COM生效函数,模拟南向批次和时钟)。硬件仍需验证单/四通道循环启停、反复Short进入退出、通信超时恢复及停止安全性。

V1.1.24 - 2026-09-15

统一应用版本定义

  • CHRG应用版本统一为 V1.1.24,版本信息集中定义在 chrg_def.h。
  • 上位机读取寄存器 0x0300 返回 0x0128。
  • apps/chrg 各C源文件和头文件的文件头版本统一为 V1.1.24。
  • Bootloader版本保持 V1.0.0 不变。
  • 后续每次修改应用代码时,必须同步更新应用版本号、对外版本编码和本修改日志。

V1.1.31 - 2026-09-16

通道保护代码注释

  • 补充上位机地址解码、非法通道初值、跨通道写保护的中文注释。
  • 补充南向物理选通同步、自动轮询重新选通及电流命令顺序入队的中文注释。
  • 协议板版本号更新为 V1.1.31,固件版本寄存器更新为 0x012F。

V1.1.30 - 2026-09-16

南向通道选择与地址校验

  • 南向物理选通成功后统一记录 chrgsouth.idx,自动轮询每次发送前重新选通目标通道。
  • COM、LCD、升级和控制台发送路径同步更新当前通道,选通失败时禁止继续发送。
  • 单寄存器写初始化通道变量,并通过统一解码函数拒绝非法分区和越界地址。
  • 多寄存器写按每通道50个地址计算通道,并拒绝跨通道写入。
  • SOUTH_COMMAND_DEBUG 日志增加队列通道、实际物理通道、寄存器和值。
  • 协议板版本号更新为 V1.1.30,固件版本寄存器更新为 0x012E。

V1.1.29 - 2026-09-16

取消电流命令覆盖去重

  • 删除南向队列对未发送电流命令的覆盖逻辑。
  • 同一通道新增的电流设置按提交顺序逐条发送,并分别等待功率板回码。
  • 协议板版本号更新为 V1.1.29,固件版本寄存器更新为 0x012D。
  • 待验证:快速连续设置电流时,确认每条电流命令都能在南向日志和功率板侧收到。

V1.1.28 - 2026-09-16

测试态退出结果确认

  • 初始化发送 WORK_STOP 后,通过新的 P1 量测重新读取功率板 status1。
  • 只有确认 status1 不再是 0x05/0x06/0x07,才继续打开辅助继电器和后续初始化命令。
  • 关机流程同样在关闭南向继电器前确认测试态已退出;每连续重发 WORK_STOP 3 次后重新计数,仍未退出时保持安全等待并继续重试。
  • 协议板版本号更新为 V1.1.28,固件版本寄存器更新为 0x012C。

V1.1.27 - 2026-09-16

功率板测试状态退出保护

  • 新增功率板 status1=0x05/0x06/0x07 的 Short、OCP、DYNA 状态定义。
  • 初始化前识别功率板测试状态,优先发送 WORK_STOP 后再继续初始化。
  • 负载关机流程调整为 WORK_STOP 优先,避免测试退出命令被后续启动状态覆盖。
  • 上位机版本寄存器 0x0300 更新为 0x012B(V1.1.27)。

V1.1.23 - 2026-09-11

负载初始化继电器时序调整

  • 负载初始化先单独下发辅助继电器 FU_REL_ON (0x01 0x02)。
  • 只有收到匹配回码后,等待 30ms 才打开北向负载继电器。
  • 北向继电器打开后,再继续下发电流、模式、V_On等初始化参数。
  • 辅助继电器回码失败时只重发当前初始化阶段,不提前打开北向继电器。
  • 协议板版本号更新为 V1.1.23,固件版本寄存器更新为 0x0127。

待验证

  • 上电初始化日志中确认先收到 01 02,约30ms后才出现北向继电器打开。
  • 辅助继电器无回码时确认北向继电器保持关闭。

V1.1.22 - 2026-09-11

增加纹波滤波调试打印

  • 记录每个通道主继电器闭合的 tick 和忽略帧配置。
  • 打印忽略帧的序号、原始纹波值及继电器闭合后的经过时间。
  • 打印实际进入滤波的帧序号、原始值、滤波值及经过时间。
  • 协议板版本号更新为 V1.1.22,固件版本寄存器更新为 0x0126。
  • 待验证:确认宏调整后忽略帧数量和实际进入滤波的时间同步变化。

V1.1.21 - 2026-09-11

继电器切换纹波滤波

  • 主继电器闭合回码成功后,忽略 RIPPLE_RELAY_IGNORE_P1_COUNT 个新P1采样帧;当前值为 2U,可在 chrg_north.h 中调整。
  • 后续纹波持续使用三点中值滤波,滤除单帧尖峰;连续异常纹波仍会正常显示。
  • LCD和上位机纹波寄存器统一使用滤波后的纹波值。
  • 协议板版本号更新为 V1.1.21,固件版本寄存器更新为 0x0125。

验证记录

  • 待硬件验证:继电器闭合瞬间出现约500mV尖峰时,LCD和上位机不显示该尖峰;忽略2帧后再累计3帧并更新为稳定纹波。
  • 待硬件验证:持续三帧以上的高纹波仍能在LCD和上位机显示。

V1.1.20 - 2026-09-10

D+/D-上位机显示单位修正

  • 上位机读取各通道 D+、D- 保持寄存器时,返回值由内部原始值放大 10 倍,适配上位机按 0.001V 解析。
  • LCD显示、北向回码解析及内部控制值保持原有 0.01V 单位,不受影响。
  • 增加16位寄存器上限保护,放大结果超过 65535 时返回 65535。
  • 协议板版本号更新为 V1.1.20,固件版本寄存器更新为 0x0124。

验证记录

  • 待硬件验证:D+或D-内部值为 260 时,LCD继续显示 2.60V,上位机读取值为 2600 并显示 2.600V。

V1.1.19 - 2026-09-10

短路测试绕过 V_ON 门槛

  • 短路测试启动批次增加 Eload_Start_V_ON=500mV,保证5V输入时不因用户设置的6V V_ON而拒绝短路启动。
  • 短路测试期间忽略普通 V_ON 更新,保持功率板使用500mV短路启动门槛。
  • 退出短路测试时由初始化流程恢复用户设定的 V_ON。
  • 协议板版本号更新为 V1.1.19,固件版本寄存器更新为 0x0123。

验证记录

  • 待硬件验证:V_ON=6V、输入PD5V时,短路模式仍能启动并按周期发送 WORK_START。
  • 待硬件验证:退出短路模式后,功率板恢复用户设定的 V_ON。

V1.1.18 - 2026-09-10

修复 CC 切换时 V_ON 丢失

  • 修复 V_ON 与 CC 线同时修改时,V_ON 命令先入队后被完整握手清队列取消的问题。
  • 协议软卸载和完整握手统一按 WORK_STOP -> Eload_Start_V_ON 顺序下发。
  • 握手或命令重试时会重新携带当前 V_ON,避免功率板继续使用旧阈值。
  • 协议板版本号更新为 V1.1.18,固件版本寄存器更新为 0x0122。

验证记录

  • 待硬件验证:同时修改 V_ON 与 CC 线,确认功率板收到 Eload_Start_V_ON。
  • 待硬件验证:确认 CC 切换失败重试、协议电压切换和其他通道调度正常。

V1.1.17 - 2026-09-10

协议切换期间禁止误启动

  • 将 V_On 稳定确认计数提升为通道级状态,并在协议软卸载、完整握手和自动停止时清零。
  • UNLOAD_WAIT、HANDSHAKE_WAIT 以及协议配置未完成前,电压采样只推进安全流程,不允许进入 RUNING 或发送 WORK_START。
  • 协议/模式配置完成并回到 IDX_GET_SINK_VC 后,才重新累计 V_On 稳定确认帧,避免停止后约40ms因旧电压再次启动。
  • 协议板版本号更新为 V1.1.17,固件版本寄存器更新为 0x0121。

验证记录

  • 待硬件验证:协议电压切换时确认 WORK_STOP 后、协议配置完成前不再出现 WORK_START。
  • 待硬件验证:确认协议切换、自动停止恢复和三个通道并行调度不受影响。

V1.1.16 - 2026-09-09

Sink 自动停止后的恢复保护

  • 新增 SINK_LOAD_RESTART_CONFIRM_COUNT,位于 chrg_north.h,当前设为 2U。
  • 功率板电压作为 V_On 判定源时,仅消费新的 P1 采样帧,旧采样不再重复累计稳定次数。
  • 自动停止带载时取消本通道残留南向批次,再单独下发 WORK_STOP,避免残留 WORK_START 在停止后执行。
  • 自动恢复带载前必须收到连续 2 帧新的、满足 V_On 的电压采样。

验证记录

  • 待硬件验证:触发 CH1 自动停止后,确认停止后 2 帧新P1到达前不再出现 WORK_START;同时确认其它通道南向命令正常调度。

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.c
  • apps/chrg/applications/utils/chrg_sink.c
  • apps/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.c
  • apps/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.c
  • apps/chrg/applications/thread/chrg_roll_nor.c
  • apps/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 回码时刻开始计时,包含原有 50ms CC稳定保护。
  • 协议握手、软恢复等待和掉电恢复监控阶段的 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.h
  • apps/chrg/applications/utils/chrg_sink.c
  • apps/chrg/applications/thread/chrg_comm.c
  • apps/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.h
  • apps/chrg/applications/utils/chrg_sink.c
  • apps/chrg/applications/thread/chrg_comm.c
  • apps/chrg/applications/thread/chrg_roll_nor.c
  • apps/chrg/applications/thread/chrg_north.c

编译验证

  • Keil MDK 编译结果:0 Error(s), 0 Warning(s)。
  • 尚未完成硬件验证,需重点观察南向命令顺序、北向协议握手时刻、掉电恢复和协议电压软切换。

后续记录格式

后续每次修改按以下格式追加:

## Vx.y.z - YYYY-MM-DD

### 修改主题
### 主要修改
### 涉及文件
### 编译验证
### 硬件验证