From 1ce5a36f80e6c095c9900fbfe87896730d1d8e91 Mon Sep 17 00:00:00 2001 From: wangfq Date: Mon, 7 Sep 2026 14:26:54 +0800 Subject: [PATCH] =?UTF-8?q?diag(V4B):=20V4.36.27=20=E8=AF=8A=E6=96=AD?= =?UTF-8?q?=E7=89=88=20=E2=80=94=20DBG=20=E5=A2=9E=E5=8A=A0=E9=87=8A?= =?UTF-8?q?=E6=94=BE=E8=B7=AF=E5=BE=84=E7=8E=B0=E5=9C=BA=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 日志 DLD154V4-20260907a 分析 (22µH/低Q/163kHz, cycle3 卡死 146s): - Origin=130556 全程恒定 → Origin 漂移假说排除(本样本) - 卡死态 CAPVD 130519~130530 稳态, 模拟: 低Q 平滑线130522 应在样本4释放; 快值线130533 永不满足 → 现场像低Q 释放路径未生效, 但静态代码链全通(g_q_lo 每样本=1) - DBG 每 2s 一行不阻塞 → 本次日志=禁打印等效数据 (打印不再屏蔽复现) - 加 QLO/RSM/RLN/RCN 四字段(每2s) 取证卡死现场实际 g_q_lo/平滑值/释放线/确认计数 语法0 error, 4测试全绿 --- utilities/at32f421_freertos_demo/inc/cmcng.h | 4 +-- .../at32f421_freertos_demo/src/TaskLoop.c | 27 ++++++++++++------- 2 files changed, 20 insertions(+), 11 deletions(-) diff --git a/utilities/at32f421_freertos_demo/inc/cmcng.h b/utilities/at32f421_freertos_demo/inc/cmcng.h index ce87af1..7902905 100644 --- a/utilities/at32f421_freertos_demo/inc/cmcng.h +++ b/utilities/at32f421_freertos_demo/inc/cmcng.h @@ -14,11 +14,11 @@ #define __CMCNG_H__ #define PRODUCT_MODEL "DLD154" -#define FIRMWARE_VER "4.36.26" // ..޶ (2026-09-03 : СĶֻ REV; MAIN/SUB ɲƷ) +#define FIRMWARE_VER "4.36.27" // ..޶ (2026-09-03 : СĶֻ REV; MAIN/SUB ɲƷ) #define HARDWARE_VER "3.00" #define FIRMWARE_VER_MAIN 4 #define FIRMWARE_VER_SUB 36 -#define FIRMWARE_VER_REV 26 +#define FIRMWARE_VER_REV 27 #define HARDWARE_VER_MAIN 3 #define HARDWARE_VER_SUB 0 diff --git a/utilities/at32f421_freertos_demo/src/TaskLoop.c b/utilities/at32f421_freertos_demo/src/TaskLoop.c index 5ed884f..00891ae 100644 --- a/utilities/at32f421_freertos_demo/src/TaskLoop.c +++ b/utilities/at32f421_freertos_demo/src/TaskLoop.c @@ -1639,15 +1639,24 @@ void loop_task_function(void *pvParameters) uint32_t _t_ms = _dbg_cnt * 10; // V4.20: 先取时间再归零 _dbg_cnt = 0; uint32_t _fk = calc_freq_khz(loop1_CAPVD, loop1_LPCNT); - PRINT("DBG|t=%ums f=%dkHz L=%luuH Xn=%d LPCNT=%d Value=%d CAPVD=%d slow=%d " - "Origin=%d dlt=%d SENS=%d VD=%d FRZ=%d/%d LIM=%d LOOP=%d STBL=%d\n", - _t_ms, - _fk, - coil_l_uH(_fk), - loop1_Xn, loop1_LPCNT, loop1_Value, loop1_CAPVD, loop1_CAPVD_slow, - loop1_Origin, loop1_dlt_ORG, loop1_SensLevel, loop1_VD_FLAG, - loop1_freeze_cnt, loop1_freeze_ref, g_slope_limit_cnt, - loop1_LOOP_OK, g_loop_stable); + /* V4.36.27 诊断: 释放路径现场 — QLO=低Q档 RSM=释放平滑 RLN=低Q释放线 RCN=释放确认计数 + * (每 2s 一行, 不阻塞 10ms tick, 不屏蔽低Q 抖动复现) */ + { + uint32_t _rln = loop1_Origin - loop1_dlt_ORG; + if (g_q_lo) + _rln = loop1_Origin - ((loop1_dlt_ORG * REL_BAND_LO_MULT) / 100); + PRINT("DBG|t=%ums f=%dkHz L=%luuH Xn=%d LPCNT=%d Value=%d CAPVD=%d slow=%d " + "Origin=%d dlt=%d SENS=%d VD=%d FRZ=%d/%d LIM=%d LOOP=%d STBL=%d " + "QLO=%d RSM=%d RLN=%d RCN=%d\n", + _t_ms, + _fk, + coil_l_uH(_fk), + loop1_Xn, loop1_LPCNT, loop1_Value, loop1_CAPVD, loop1_CAPVD_slow, + loop1_Origin, loop1_dlt_ORG, loop1_SensLevel, loop1_VD_FLAG, + loop1_freeze_cnt, loop1_freeze_ref, g_slope_limit_cnt, + loop1_LOOP_OK, g_loop_stable, + g_q_lo, g_rel_smooth, _rln, loop1_cnt_release); + } g_slope_limit_cnt = 0; // 限幅计数按周期清 (统计最近 2s) } }