fix(V4B): V4.36.17 — 修复上电无线圈黄灯不闪

V4.36.16 去掉 !power_up 后裸奔: 断开分支置位条件含 power_up,
上电 phase(power_up=0) 故意不置 disconnect_active → 无线圈黄灯哑
改: 黄灯模式1 = !loop1_LOOP_OK || g_reconn_stab
- 上电无线圈 LOOP_OK=0 快闪恢复(需求1); 有线圈/判稳中不闪(需求2 保持)
- 运行中断开黄灯反应 150ms→5ms(ISR 实时读载波)
语法0 error, 4测试全绿; spec V2.33 / devlog V2.51
This commit is contained in:
wangfq
2026-09-04 16:37:04 +08:00
parent 13876be54c
commit edd4e7b6c4
4 changed files with 40 additions and 8 deletions
+30
View File
@@ -4,6 +4,35 @@
--- ---
## 2026-09-03 — 修复上电无线圈黄灯不闪(固件 V4.36.17)
> **固件版本:V4.36.17**cmcng.hFIRMWARE_VER="4.36.17"REV=17)。devlog 修订 V2.51。
### 用户板测反馈(V4.36.16
- 上电未接线圈:期望黄绿双闪 → 接线圈自检黄绿双闪 → 自检完同灭;**实际黄灯全程没闪**
- 上电已接线圈:绿灯闪黄灯不闪 ✓ 通过
### 根因
断开分支置位条件 `if (g_loop_power_up_state && !g_disconnect_active)`——
**上电 phasepower_up=0,判稳未完成)故意不置 disconnect_active**(断开计数不记上电前)。
V4.36.16 把黄灯模式1 的 `!power_up` 兜底去掉后,上电无线圈黄灯失去触发源。
### 改动
黄灯模式1 条件 → **`!loop1_LOOP_OK || g_reconn_stab`**(ISR 5ms 实时读载波状态):
- 上电无线圈 LOOP_OK=0 → 快闪 ✓(需求1 黄绿双闪恢复)
- 上电有线圈/判稳中 LOOP_OK=1 → 不闪 ✓(需求2 保持)
- 接线圈 LOOP_OK=1 → 黄灯灭 ≤ 绿灯判稳时长 ✓
- 运行中断开:载波缺失 5ms 即闪(原依赖 loop_task 150ms 置位 → 黄灯反应加快)
- 运行中重连判稳 g_reconn_stab → 闪(需求3 不变)
### 验证
- 语法 0 error4 组单测全 PASS
- 待板级复测:上电无线圈应黄绿双闪;插线圈黄灯即停绿灯慢闪;有线圈上电黄灯全程不闪
## 2026-09-03 — 上电自检与线圈重连灯语义分离(固件 V4.36.16) ## 2026-09-03 — 上电自检与线圈重连灯语义分离(固件 V4.36.16)
> **固件版本:V4.36.16**cmcng.hFIRMWARE_VER="4.36.16"REV=16)。devlog 修订 V2.50。 > **固件版本:V4.36.16**cmcng.hFIRMWARE_VER="4.36.16"REV=16)。devlog 修订 V2.50。
@@ -1854,6 +1883,7 @@ if (dev >= dlt_ORG × 4) {
| 版本 | 时间 | 说明 | | 版本 | 时间 | 说明 |
|------|------|------| |------|------|------|
| V2.51 | 2026-09-03 | V4.36.17 修复上电无线圈黄灯不闪: 黄灯模式1 改 !LOOP_OK(5ms 实时) |
| V2.50 | 2026-09-03 | V4.36.16 上电自检与重连灯语义分离: 黄灯去!power_up, 判稳门控限运行中(stable=1) | | V2.50 | 2026-09-03 | V4.36.16 上电自检与重连灯语义分离: 黄灯去!power_up, 判稳门控限运行中(stable=1) |
| V2.49 | 2026-09-03 | V4.36.15 重连判稳门控: 值稳定(600ms无漂移)+回带才放行, Origin 自动对齐, 强车8×dlt例外, 5s兜底 | | V2.49 | 2026-09-03 | V4.36.15 重连判稳门控: 值稳定(600ms无漂移)+回带才放行, Origin 自动对齐, 强车8×dlt例外, 5s兜底 |
| V2.48 | 2026-09-03 | V4.36.14 重连确认窗漏网路径修复: 主循环拍级上升沿检测替代 ISR LOOP_OK0 | | V2.48 | 2026-09-03 | V4.36.14 重连确认窗漏网路径修复: 主循环拍级上升沿检测替代 ISR LOOP_OK0 |
+2 -1
View File
@@ -1,6 +1,6 @@
# DLD154V4B 技术规格书 # DLD154V4B 技术规格书
> 单路线圈车辆检测器 | 固件版本: V4.36.16 | 文档版本: V2.32 > 单路线圈车辆检测器 | 固件版本: V4.36.17 | 文档版本: V2.33
> 本文档面向工程开发、系统集成及故障深度分析 > 本文档面向工程开发、系统集成及故障深度分析
--- ---
@@ -798,3 +798,4 @@ DLD154V4B V1.4 起实现该专利的整数化版本,用于大车通行时的
| V2.30 | 2026-09-03 | **V4.36.14 重连确认窗漏网路径修复**:主循环拍级自身上升沿检测(g_prev_ok)替代 ISR LOOP_OK0——插头抖动致 LOOP_OK0 卡 1 时恢复不再漏触发确认窗(现场 21µH 无窗直接 Car_In 复现);LO 抑制窗仍 1500ms(用户临时 3000 未入库) | | V2.30 | 2026-09-03 | **V4.36.14 重连确认窗漏网路径修复**:主循环拍级自身上升沿检测(g_prev_ok)替代 ISR LOOP_OK0——插头抖动致 LOOP_OK0 卡 1 时恢复不再漏触发确认窗(现场 21µH 无窗直接 Car_In 复现);LO 抑制窗仍 1500ms(用户临时 3000 未入库) |
| V2.31 | 2026-09-03 | **V4.36.15 重连判稳门控**:无车断开重连后值稳定才放行动作——200ms 步进漂移≤dlt/2 连续 600ms + dev 回带(≤dlt) → Origin 对齐当前空场(消新旧基线差);不稳黄灯续闪;强车 8×dlt 例外即时放行;5s 兜底。低Q 窗末假车(21µH 蠕变 ~2.2s > 固定窗)根治 | | V2.31 | 2026-09-03 | **V4.36.15 重连判稳门控**:无车断开重连后值稳定才放行动作——200ms 步进漂移≤dlt/2 连续 600ms + dev 回带(≤dlt) → Origin 对齐当前空场(消新旧基线差);不稳黄灯续闪;强车 8×dlt 例外即时放行;5s 兜底。低Q 窗末假车(21µH 蠕变 ~2.2s > 固定窗)根治 |
| V2.32 | 2026-09-03 | **V4.36.16 上电自检与重连灯语义分离**:黄灯模式1 去 !power_up(上电有线圈黄灯不闪,自检归绿灯慢闪);无线圈由 disconnect_active 覆盖仍双闪;判稳门控触发加 g_loop_stable(上电/安全复位不判稳);运行中重连仍黄灯接管 | | V2.32 | 2026-09-03 | **V4.36.16 上电自检与重连灯语义分离**:黄灯模式1 去 !power_up(上电有线圈黄灯不闪,自检归绿灯慢闪);无线圈由 disconnect_active 覆盖仍双闪;判稳门控触发加 g_loop_stable(上电/安全复位不判稳);运行中重连仍黄灯接管 |
| V2.33 | 2026-09-03 | **V4.36.17 修复上电无线圈黄灯不闪**:断开分支置位条件含 power_up(上电 phase 故意不置 disconnect_active),V4.36.16 去 !power_up 后裸奔 → 黄灯模式1 改 `!LOOP_OK || g_reconn_stab`(5ms 实时载波缺失判定,同时让运行中断开黄灯反应从 150ms 加快到 5ms) |
+2 -2
View File
@@ -14,11 +14,11 @@
#define __CMCNG_H__ #define __CMCNG_H__
#define PRODUCT_MODEL "DLD154" #define PRODUCT_MODEL "DLD154"
#define FIRMWARE_VER "4.36.16" // 主.子.修订 (2026-09-03 起: 小改动只增 REV; MAIN/SUB 由产品定) #define FIRMWARE_VER "4.36.17" // 主.子.修订 (2026-09-03 起: 小改动只增 REV; MAIN/SUB 由产品定)
#define HARDWARE_VER "3.00" #define HARDWARE_VER "3.00"
#define FIRMWARE_VER_MAIN 4 #define FIRMWARE_VER_MAIN 4
#define FIRMWARE_VER_SUB 36 #define FIRMWARE_VER_SUB 36
#define FIRMWARE_VER_REV 16 #define FIRMWARE_VER_REV 17
#define HARDWARE_VER_MAIN 3 #define HARDWARE_VER_MAIN 3
#define HARDWARE_VER_SUB 0 #define HARDWARE_VER_SUB 0
@@ -357,11 +357,12 @@ void poll_yellow_led(void)
g_fault_tick++; g_fault_tick++;
/*--- 模式1: 快闪 — V4.36.16 起仅"载波问题"接管 (上电自检不闪, 归绿灯): /*--- 模式1: 快闪 — 载波缺失/重连判稳接管 (V4.36.16/17):
* (disconnect_active) / (reconn_stab) / 线 * !loop1_LOOP_OK: 线 + (5ms , loop_task 150ms
* (LOOP_OK=0 loop_task disconnect_active) * disconnect_active; phase power_up=0 , )
* 线/: , 绿 ---*/ * g_reconn_stab:
if (g_disconnect_active || g_reconn_stab) { * 线/: LOOP_OK=1 , 绿 ---*/
if (!loop1_LOOP_OK || g_reconn_stab) {
if (g_fault_tick >= FLT_FAST_HALF) { if (g_fault_tick >= FLT_FAST_HALF) {
g_fault_tick = 0; g_fault_tick = 0;
LED_YELLOW_GPIO->odt ^= LED_YELLOW_PIN; // toggle LED_YELLOW_GPIO->odt ^= LED_YELLOW_PIN; // toggle