feat(adc): 新增变比维 r 三维折算,录波段格式升 v2

采样板注入 Ua=5V/Ia=0.5A 读数偏小,根因是固件只输出引脚电压、
缺「端子→引脚」变比。折算改三维:

工程量 = (code + b) × k[µV/码] × 1e-6 × r

k 保持 ROM 引脚 LSB,b 为零点,r 为端子变比(int32 Q16)。
变比不能并进 k:UA 端子域 k 达 1.5e5 µV/码、Q16 溢出 int32;
r 单独存 Q16 不溢出。两点标定改标 r,k 仍是板级事实。

- 新开单段 [adc_cal_sec](8 键 r_ua..r_in),cfg 段数达 8/8 上限
- 一次变比复用 prot_set 四项,不新开段;r=0 表示本路不折算
- ROM 默认带台架实测变比(电压族 1000、电流族 29.4118),
  烧进固件即显二次值;VALID 仍须两点标定,两者互不派生
- eng 判据改「每路要么已配变比、要么削顶不显示」,不再看 VALID
- 104 地址 0x8050~0x8057 写 r,run_par_cal_r_set 写值与置脏同函数
- 录波 v2:通道表加 int32 r_q16,头 128→160、整段 5250→5282;
  code_to_milli 用余数分解换等价单次圆整,20 万组大整数对拍 0 不符
- 文档同步:采集与算法层/通道映射/故障录波/网络配置/配置文件/
  产品需求/内存台账,历史带日期实测数字按冻结口径不改
- 单测 13 套全绿,/keil-build 0 错误 0 警告(256024/31760/
  2080/152368),RAM 实测回填内存内容分配策略 §6.1
This commit is contained in:
2026-11-11 11:31:34 +08:00
parent 8115fb9a87
commit 3675b89e8e
35 changed files with 1653 additions and 505 deletions
+6 -3
View File
@@ -14,7 +14,7 @@
*
* 覆盖点(用例名写「它自己在验证什么」,不发编号;属主登记处 = 本目录):
* 用例:形态与预算钉死:int16×320×8 = 5120、两半各 160、
* sizeof(wave_seg_meta_t) = 136、sizeof(wave_ch_desc_t) = 12
* sizeof(wave_seg_meta_t) = 172、sizeof(wave_ch_desc_t) = 16
* 用例:init 复位语义:IDLE / 不可读 / 计数与轮转号归零
* 用例:参数守卫:push / request / latch / read / get_stat 的非法入参
* 用例:触发到封段的时序:封段恰在触发后第 160 拍,事件一次性
@@ -162,8 +162,11 @@ int main(void) {
CHECK(((uint32_t)WAVE_RING_PTS * (uint32_t)WAVE_RING_CH * 2u) == WAVE_RING_BYTES, "环长等式");
CHECK(WAVE_RING_PTS == (WAVE_RING_PRE + WAVE_RING_POST), "段长 = 预触发 + 后触发");
CHECK(WAVE_RING_PRE == 160u, "预触发 160 点 = 8 周波 @20 点/周波");
CHECK(sizeof(wave_ch_desc_t) == (size_t)WAVE_ST_CH_BYTES, "通道表一项正好 12 字节");
CHECK(sizeof(wave_seg_meta_t) == 136u, "段头快照 136 字节(本卡静态增量台账用)");
CHECK(sizeof(wave_ch_desc_t) == (size_t)WAVE_ST_CH_BYTES, "通道表一项正好 16 字节(v2 加 r_q16 后)");
/* 段头快照的内存形态 = 固定头 26 + ch[9] × 16 = 170,按 4 字节对齐落到 172
* (v1 是 26 + 9×12 = 134 → 136)。这份数供静态增量台账引用,写死是为了让
* 「结构一改就红」,不是抄某个文档的算术。 */
CHECK(sizeof(wave_seg_meta_t) == 172u, "段头快照 172 字节(本卡静态增量台账用)");
/* ---------- 用例:init 复位 ---------- */
printf("-- 用例:init 复位语义 --\n");