From 8c35cc05223f6ee8775c29386f2aa2f2d2076ee5 Mon Sep 17 00:00:00 2001 From: wangfq Date: Thu, 3 Sep 2026 17:15:47 +0800 Subject: [PATCH] =?UTF-8?q?feat(V4B):=20V4.36=20=E2=80=94=20=E9=A2=91?= =?UTF-8?q?=E7=8E=87=E7=AA=97=E4=B8=8A=E9=99=90=20108=E2=86=92115kHz=20(43?= =?UTF-8?q?nF=E6=9D=BF=E2=89=8844=C2=B5H,=20=E6=94=BE=E8=A1=8C~48=C2=B5H?= =?UTF-8?q?=E5=B0=8F=E7=BA=BF=E5=9C=88)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit test_coil_range 边界 115/116 全绿; 语法 0 error 文档: devlog V2.34 / spec V2.15 / manual V2.12 --- docs/devlog.md | 28 +++++++++++++++++++ docs/product-manual.md | 2 +- docs/technical-spec.md | 3 +- tests/test_coil_range.c | 16 +++++------ .../at32f421_freertos_demo/inc/TaskLoop.h | 2 +- utilities/at32f421_freertos_demo/inc/cmcng.h | 4 +-- 6 files changed, 42 insertions(+), 13 deletions(-) diff --git a/docs/devlog.md b/docs/devlog.md index 346e569..432ad73 100644 --- a/docs/devlog.md +++ b/docs/devlog.md @@ -4,6 +4,33 @@ --- +## 2026-09-03 — 频率窗上限 108→115kHz(固件 V4.36) + +> **固件版本:V4.36**(cmcng.h:FIRMWARE_VER="4.36" + MAIN=4/SUB=36)。devlog 修订 V2.34。 + +### 拍板(2026-09-03) + +**COIL_F_OK_MAX_KHZ:108 → 115**(43nF 三极管板口径) + +- 115kHz @ C_eff43 ≈ **L 44µH** +- 放行 ~48µH 小线圈(43nF 板理论 f≈111kHz,此前 108k 会误报) +- 合理窗:20 ~ 115kHz + +### 改动 + +- TaskLoop.h:COIL_F_OK_MAX_KHZ 108→115(注释同步) +- tests/test_coil_range.c:镜像宏 115,边界 115/116(115 正常、116 → L偏小) +- 版本 V4.35→V4.36;spec V2.15 / manual V2.11→V2.12 / devlog V2.34 + +### 验证 + +- test_coil_range 5 场景 ALL PASS(边界 19/20/115/116) +- 语法 0 error + +### 待现场验证 + +- 各典型线圈(LCR 40~1000µH 矩阵)在 43nF 三极管板扫 f 对照窗判定 + ## 2026-09-03 — 频率窗上限复核:92→108kHz(固件 V4.35,43nF 板口径) > **固件版本:V4.35**(cmcng.h:FIRMWARE_VER="4.35" + MAIN=4/SUB=35)。devlog 修订 V2.33。 @@ -1418,6 +1445,7 @@ if (dev >= dlt_ORG × 4) { | 版本 | 时间 | 说明 | |------|------|------| +| V2.34 | 2026-09-03 | V4.36 频率窗上限: 108→115kHz(43nF板≈44µH, 放行~48µH小线圈) | | V2.33 | 2026-09-03 | V4.35 频率窗上限复核: 92→108kHz(43nF板口径≈50µH, 92@43nF≈70µH过严) | | V2.32 | 2026-09-03 | V4.34 产品基准回到三极管库存板: COIL_CAL_C_NF 68→43; 0Ω改动仅机理验证 | | V2.31 | 2026-09-03 | V4.33 线圈频率窗上限 COIL_F_OK_MAX_KHZ 120→92kHz | diff --git a/docs/product-manual.md b/docs/product-manual.md index 266cd52..c340cb3 100644 --- a/docs/product-manual.md +++ b/docs/product-manual.md @@ -177,7 +177,7 @@ DLD154V4B 是一款基于 ARM Cortex-M4 微控制器的**单通道环形线圈 | 故障类型 | 红灯 | 绿灯 | 黄灯 | 说明 | |---------|------|------|------|------| | 线圈断开(当前) | 呼吸 | 灭 | **快闪** (200ms) | 检查线圈连接 | -| 线圈电感量不合理(V4.26/V4.33) | 呼吸 | 灭(无车) | **一长一短** (300ms亮/100ms灭/100ms亮/700ms灭 循环) | 空场频率出 20~108kHz(默认低频档):L偏大(f<20k)/L偏小(f>108k),检查线圈匝数/尺寸 | +| 线圈电感量不合理(V4.26/V4.33) | 呼吸 | 灭(无车) | **一长一短** (300ms亮/100ms灭/100ms亮/700ms灭 循环) | 空场频率出 20~115kHz(默认低频档):L偏大(f<20k)/L偏小(f>115k),检查线圈匝数/尺寸 | | 线圈重连,断开 1 次 | 呼吸 | 正常 | **1 短闪** + 1.2s 灭 | 发生过 1 次断开,已恢复 | | 线圈重连,断开 2 次 | 呼吸 | 正常 | **2 短闪** + 1.2s 灭 | 发生过 2 次断开,已恢复 | | 线圈重连,断开 3+ 次 | 呼吸 | 正常 | **3 短闪** + 1.2s 灭 | 多次断开,建议检查接头 | diff --git a/docs/technical-spec.md b/docs/technical-spec.md index 78c26b7..667eebb 100644 --- a/docs/technical-spec.md +++ b/docs/technical-spec.md @@ -1,6 +1,6 @@ # DLD154V4B 技术规格书 -> 单路线圈车辆检测器 | 固件版本: V4.35 | 文档版本: V2.14 +> 单路线圈车辆检测器 | 固件版本: V4.36 | 文档版本: V2.15 > 本文档面向工程开发、系统集成及故障深度分析 --- @@ -780,3 +780,4 @@ DLD154V4B V1.4 起实现该专利的整数化版本,用于大车通行时的 | V2.12 | 2026-09-03 | 更新至 V4.33:线圈频率合理窗上限 COIL_F_OK_MAX_KHZ 120→92kHz(>92k → L偏小告警) | | V2.13 | 2026-09-03 | 更新至 V4.34:产品基准回到三极管库存板(不改电路),COIL_CAL_C_NF 68→43;0Ω 改动仅机理验证 | | V2.14 | 2026-09-03 | 更新至 V4.35:频率窗上限 92→108kHz(43nF 板口径 ≈50µH,V4.33 的 92@68nF 实验板→43nF 过严复核修正) | +| V2.15 | 2026-09-03 | 更新至 V4.36:频率窗上限 108→115kHz(43nF 板口径 ≈44µH,放行 ~48µH 小线圈) | diff --git a/tests/test_coil_range.c b/tests/test_coil_range.c index fe36342..44db358 100644 --- a/tests/test_coil_range.c +++ b/tests/test_coil_range.c @@ -2,8 +2,8 @@ * test_coil_range.c — 线圈电感量合理范围监视 gcc 隔离单测 (DLD154V4B V4.26) * * 验证对象: TaskLoop.c coil_monitor() (V4.26 拍板规格) - * 默认低频档口径(43nF 三极管板): 空场频率合理窗 20~108kHz, 出界即判定电感量不合理 - * g_coil_fault: 0=正常 1=L偏大(f<20kHz) 2=L偏小(f>108kHz) + * 默认低频档口径(43nF 三极管板): 空场频率合理窗 20~115kHz, 出界即判定电感量不合理 + * g_coil_fault: 0=正常 1=L偏大(f<20kHz) 2=L偏小(f>115kHz) * 防抖: 越界/恢复均连续 100tick(=1s) 才置位/清除 (调用点=稳定无车空闲) * * 镜像宏与固件一致 (改 COIL_* 时同步此处!) @@ -14,7 +14,7 @@ #include #define COIL_F_OK_MIN_KHZ 20 -#define COIL_F_OK_MAX_KHZ 108 +#define COIL_F_OK_MAX_KHZ 115 #define COIL_DEF_C_NF 66 static uint8_t g_coil_fault = 0; @@ -86,11 +86,11 @@ static void test_boundaries(void) { g_coil_fault = 0; g_coil_bad_cnt = 0; run_ticks(19, 100); assert(g_coil_fault == 1); /* 19 → 偏大 */ - run_ticks(62, 100); assert(g_coil_fault == 0); /* 20~108 正常 */ + run_ticks(62, 100); assert(g_coil_fault == 0); /* 20~115 正常 */ run_ticks(20, 100); assert(g_coil_fault == 0); /* 边界 20 正常 */ - run_ticks(108, 100); assert(g_coil_fault == 0); /* 边界 108 正常 */ - run_ticks(109, 100); assert(g_coil_fault == 2); /* 109 → 偏小 */ - printf("4. 边界 19/20/108/109 OK\n"); + run_ticks(115, 100); assert(g_coil_fault == 0); /* 边界 115 正常 */ + run_ticks(116, 100); assert(g_coil_fault == 2); /* 116 → 偏小 */ + printf("4. 边界 19/20/115/116 OK\n"); } static void test_jitter_no_alarm(void) @@ -111,6 +111,6 @@ int main(void) test_recover(); test_boundaries(); test_jitter_no_alarm(); - printf("\nALL PASS (窗口 20~108kHz, 防抖 1s)\n"); + printf("\nALL PASS (窗口 20~115kHz, 防抖 1s)\n"); return 0; } diff --git a/utilities/at32f421_freertos_demo/inc/TaskLoop.h b/utilities/at32f421_freertos_demo/inc/TaskLoop.h index fed6009..75cc13d 100644 --- a/utilities/at32f421_freertos_demo/inc/TaskLoop.h +++ b/utilities/at32f421_freertos_demo/inc/TaskLoop.h @@ -49,7 +49,7 @@ #define ENV_WARN_WAIT 200 // 环境预判 (V4.31): dev>+4dlt 高位连续 ~2s → 黄灯预判锁存(回摆保持) #define ENV_RECOVER_WAIT 200 // 恢复确认 (V4.31): 新基线替换后 环境空闲连续 ~2s 才解除预判, 黄灯灭 #define COIL_F_OK_MIN_KHZ 20 // 线圈频率合理窗 (V4.26): 默认低频档口径, <20kHz → L偏大 -#define COIL_F_OK_MAX_KHZ 108 // 线圈频率合理窗 (V4.35): >108kHz → L偏小 (43nF板口径, ≈50µH; 原92@68nF实验板→92@43nF≈70µH过严, 2026-09-03复核) +#define COIL_F_OK_MAX_KHZ 115 // 线圈频率合理窗 (V4.36): >115kHz → L偏小 (43nF板口径, ≈44µH; 放行 ~48µH 小线圈) #define COIL_CAL_C_NF 43 // 标定等效谐振电容 nF (V4.34): 三极管库存板 低频档(66nF名义, R19在/R27空)实测 C_eff≈43 (41.3~45.5; 0Ω板68仅实验口径, 产品不用) // 旧43 = 5.1K电阻旧板带病特性(三极管开关未饱和导通, 第二颗33nF未全量并入), 作废 #define COIL_CAL_C_NF_33 34 // 高频档(33nF名义)标定值: 实测 C_eff≈34.4 (33.8~35.0, 3组) — 用33nF档时改 COIL_CAL_C_NF 为34 diff --git a/utilities/at32f421_freertos_demo/inc/cmcng.h b/utilities/at32f421_freertos_demo/inc/cmcng.h index 78ad2e0..2306408 100644 --- a/utilities/at32f421_freertos_demo/inc/cmcng.h +++ b/utilities/at32f421_freertos_demo/inc/cmcng.h @@ -14,10 +14,10 @@ #define __CMCNG_H__ #define PRODUCT_MODEL "DLD154" -#define FIRMWARE_VER "4.35" +#define FIRMWARE_VER "4.36" #define HARDWARE_VER "3.00" #define FIRMWARE_VER_MAIN 4 -#define FIRMWARE_VER_SUB 35 +#define FIRMWARE_VER_SUB 36 #define HARDWARE_VER_MAIN 3 #define HARDWARE_VER_SUB 0