feat(V4B): V4.36.3 — 有车断开继电器保持 RELAY_HOLD_MS=500ms
断开前 VD_FLAG=1(有车) → RLY 保持不释放: 500ms 内重连+有车→无缝续持, 重连+无车→vd1_task 判离释放, 超时仍断→强制释放(hold_done 防抖); 无车断开立即释放不变. ISR 5ms 计时, 宏可调(RELAY_HOLD_MS) 审查修复: done 后不加 !hold_done 会 100Hz 继电器抖动 语法0 error, 4测试全绿; spec V2.19 / manual 断开行 / devlog V2.37
This commit is contained in:
@@ -4,6 +4,46 @@
|
||||
|
||||
---
|
||||
|
||||
## 2026-09-03 — 有车断开继电器保持 500ms(固件 V4.36.3)
|
||||
|
||||
> **固件版本:V4.36.3**(cmcng.h:FIRMWARE_VER="4.36.3",REV=3)。devlog 修订 V2.37。
|
||||
|
||||
### 拍板机制(2026-09-03)
|
||||
|
||||
线圈断开前**感应有车且继电器输出中**时,断开后**不立即释放**,改为保持 RELAY_HOLD_MS:
|
||||
- **500ms 内重连 + 感应有车** → 继电器继续有车输出(无缝,从未掉电)
|
||||
- **500ms 内重连 + 感应无车** → 继电器释放(vd1_task 正常离开判定,几十~数百 ms)
|
||||
- **500ms 超时仍断开** → 继电器强制释放(防真故障无限保持)
|
||||
- 无车断开(VD_FLAG=0)→ 立即释放(原行为,安全刚需)
|
||||
|
||||
**宏可调**:`RELAY_HOLD_MS`(TaskLoop.c 前部宏区,ISR 使用)
|
||||
|
||||
### 实现要点
|
||||
|
||||
- 保持计时在 **TMR15 ISR(5ms tick)**:`!LOOP_OK && VD_FLAG && power_up && !hold_done` → RLY1/2 保持 ON + cnt+=5,满 500ms 强制 OFF + hold_done=1(防重复抖动)
|
||||
- loop_task 断开分支:有车断开(VD_FLAG && power_up)不立即 OFF(释放交给 ISR 兜底),无车断开照旧立即 OFF
|
||||
- 重连确认重置(V4.36.2 100ms 窗)后清 cnt/done
|
||||
- **审查修复**:超时释放后若不查 hold_done,每 5ms 会先 ON 再 OFF → 100Hz 继电器抖动 → 已加 `!g_relay_hold_done` 防护
|
||||
|
||||
### 行为时序
|
||||
|
||||
```
|
||||
[运行 有车 VD=1 RLY ON] ──断开──▶ RLY 保持 ON (黄灯快闪照常)
|
||||
├─ <500ms 重连 → 100ms 确认窗 → vd1_task: 有车→续持 / 无车→释放
|
||||
└─ ≥500ms 仍断 → RLY 强制释放 (hold_done=1)
|
||||
```
|
||||
|
||||
### 验证
|
||||
|
||||
- 语法 0 error;4 组单测全 PASS(保持逻辑在 ISR/主循环,无单测耦合;待板级验证)
|
||||
|
||||
### 待板级验证
|
||||
|
||||
1. 车压线圈时拔线:继电器保持 500ms → 仍断则释放(黄灯快闪全程)
|
||||
2. 车压线圈时快速拔插(<500ms):继电器不掉 → 车走正常释放
|
||||
3. 无车断线:继电器立即释放(无变化)
|
||||
4. RELAY_HOLD_MS 改 100/1000 复测节奏
|
||||
|
||||
## 2026-09-03 — 线圈重连确认窗 100ms(固件 V4.36.2)
|
||||
|
||||
> **固件版本:V4.36.2**(cmcng.h:FIRMWARE_VER="4.36.2",REV=2)。devlog 修订 V2.36。
|
||||
@@ -1514,6 +1554,7 @@ if (dev >= dlt_ORG × 4) {
|
||||
|
||||
| 版本 | 时间 | 说明 |
|
||||
|------|------|------|
|
||||
| V2.37 | 2026-09-03 | V4.36.3 有车断开继电器保持 RELAY_HOLD_MS=500ms(ISR计时/宏可调); 无车断开立即释放不变 |
|
||||
| V2.36 | 2026-09-03 | V4.36.2 线圈重连确认窗 100ms(防抖动重复计数/首样本毛刺); 断开判定不加防抖 |
|
||||
| V2.35 | 2026-09-03 | 版本体系增加修订号: 4.36.1 (MAIN/SUB 产品定, 小改只增 REV); 启动打印 fw 行 |
|
||||
| V2.34 | 2026-09-03 | V4.36 频率窗上限: 108→115kHz(43nF板≈44µH, 放行~48µH小线圈) |
|
||||
|
||||
Reference in New Issue
Block a user