feat(adc): UN 标定完成、标定脚本归集到 test/host/cal/
CI / 静态门禁 (pre-commit) (push) Failing after 4m15s
CI / 主机侧单测 (MSVC) (push) Failing after 1m41s

- UN 通道 5 点最小二乘标定完成:r=555.382141, b=-1, 残差 0.038%, R²=0.99999967
- UA/IA/UN 三路 VALID 置位,保护解卡
- ROM 默认值更新为当前标定值(ADC_CAL_R_Q16_VOLT=555.144958)
- UB/UC/UN 通过 104 写入 ROM 默认值,config.ini 同步
- cal_fit.py 新增 ROLD 表自动读取,不再需要手传 --r-old
- 执行卡精简至 126 行,新增 cal_collect.py 采集脚本与 ROLD 填表
- 标定脚本(cal_fit/cal_write/cal_collect)归集到 test/host/cal/
- 全库文档路径引用同步更新(8 文件)
- UN 当前态文档改写:明确零序电压 U0 语义、本台架未接线状态
- 删除已失效的外部知识底座文档链接
This commit is contained in:
2026-11-13 11:26:36 +08:00
parent 7c505b2457
commit 40a2816a99
23 changed files with 327 additions and 331 deletions
+8 -8
View File
@@ -282,10 +282,10 @@ static void tc_104_read(void)
"TC-RUNPAR-004 k echo last channel (IN, STM32 ROM)");
CHECK((run_par_104_read(0x8048u, &v) == 0) && (v == 0.0f),
"TC-RUNPAR-004 b echo factory zero");
CHECK((run_par_104_read(0x8050u, &v) == 0) && (fabsf(v - 1000.0f) <= 1e-3f),
"TC-RUNPAR-004 r echo first slot = ROM voltage family 1000.0");
CHECK((run_par_104_read(0x8054u, &v) == 0) && (fabsf(v - 29.4118f) <= 1e-3f),
"TC-RUNPAR-004 r echo current family = 29.4118");
CHECK((run_par_104_read(0x8050u, &v) == 0) && (fabsf(v - 555.144958f) <= 1e-3f),
"TC-RUNPAR-004 r echo first slot = ROM voltage family 555.144958");
CHECK((run_par_104_read(0x8054u, &v) == 0) && (fabsf(v - 29.610748f) <= 1e-3f),
"TC-RUNPAR-004 r echo current family = 29.610748");
CHECK(run_par_104_read(0x8058u, &v) == -1, "TC-RUNPAR-004 above r block not owned");
}
@@ -420,14 +420,14 @@ static void tc_104_ratio(void)
/* 选择段:只粗守(NaN/Inf),0.5 这类"执行段会拒"的值在选择段返 0 */
CHECK(run_par_104_write(0x8051u, 0.5f, 1u) == 0,
"TC-RUNPAR-009 select only guards finiteness (0.5 passes)");
CHECK((run_par_104_read(0x8051u, &v) == 0) && (fabsf(v - 1000.0f) <= 1e-3f),
CHECK((run_par_104_read(0x8051u, &v) == 0) && (fabsf(v - 555.144958f) <= 1e-3f),
"TC-RUNPAR-009 select did not touch the ratio");
CHECK(run_par_104_write(0x8051u, 0.5f, 0u) == -1, "TC-RUNPAR-009 execute rejects the same 0.5");
CHECK((run_par_104_read(0x8051u, &v) == 0) && (fabsf(v - 1000.0f) <= 1e-3f),
CHECK((run_par_104_read(0x8051u, &v) == 0) && (fabsf(v - 555.144958f) <= 1e-3f),
"TC-RUNPAR-009 rejected execute left the ratio intact");
/* 段边界:0x8057 是 r 块末地址,0x8058 起非本段 */
CHECK(run_par_104_write(0x8057u, 29.4118f, 0u) == 0, "TC-RUNPAR-009 last r slot writable");
CHECK(run_par_104_write(0x8057u, 29.610748f, 0u) == 0, "TC-RUNPAR-009 last r slot writable");
CHECK(run_par_104_write(0x8058u, 2.0f, 0u) == -2, "TC-RUNPAR-009 0x8058 passes through to prot_set");
CHECK(run_par_104_read(0x8058u, &v) == -1, "TC-RUNPAR-009 0x8058 not owned on read");
@@ -438,7 +438,7 @@ static void tc_104_ratio(void)
"TC-RUNPAR-009 save cleared dirty and wrote file");
CHECK(strstr((const char *)s_vfs, "r_ua=131072000") != NULL,
"TC-RUNPAR-009 file carries r_ua=131072000 (= 2000 x 65536)");
(void)run_par_104_write(0x8050u, 1000.0f, 0u); /* 覆盖内存态 */
(void)run_par_104_write(0x8050u, 555.144958f, 0u); /* 覆盖内存态 */
CHECK(cfg_file_load() == 0, "TC-RUNPAR-009 engine reload ok");
CHECK((run_par_104_read(0x8050u, &v) == 0) && (fabsf(v - 2000.0f) <= 0.01f),
"TC-RUNPAR-009 reload restores saved ratio");