From 00f9958cbb56ab30abcda135aa21ffd421fd6995 Mon Sep 17 00:00:00 2001 From: Wanderingss <1624155937@qq.com> Date: Tue, 27 Oct 2026 17:57:11 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20ADC=20=E6=B3=A8=E5=85=A5=E6=B5=81?= =?UTF-8?q?=E7=A8=8B=E8=AE=B0=E5=BD=95=E8=A1=A8=E5=B9=B6=E5=85=A5=E5=90=84?= =?UTF-8?q?=E6=AD=A5=EF=BC=8C=E5=88=A0=20=C2=A79=20=E4=B8=8E=E5=8F=98?= =?UTF-8?q?=E6=9B=B4=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 原来"§5 步骤"只给判据、表格集中在 §9,台架现场要来回翻页; 现在每步末尾就是该步的填表处,边做边填。 - §5.2 零点:参考表与记录表合成一张,8 路逐行留空 - §5.3 三点线性:目标/实测/码值/反算 + 两片转换器期望码同表 - §5.4 逐通道映射:8 行,含"是否符合预期"列 - §5.5 极性:三路 × 正负两点 + 对称性偏差 - 删 §9「记录表」整节与「变更记录」小节,章节回到 1~8 - §4 与 §5.4 里指向 §9 / 附录表的引用改为"本节记录表" - docs/README.md 目录描述同步为"每步自带现场记录表" 变更记录虽按 docs/文档规范.md 表格属"建议"保留项,但本文是台架 作业指导书,历史沿革查 git log 即可,正文只留当前有效动作。 --- docs/README.md | 2 +- docs/测试说明/ADC前端注入验证流程.md | 135 +++++++++++---------------- 2 files changed, 54 insertions(+), 83 deletions(-) diff --git a/docs/README.md b/docs/README.md index 0c47e8db..66a354da 100644 --- a/docs/README.md +++ b/docs/README.md @@ -122,7 +122,7 @@ docs/ | [`链路延迟测试说明.md`](测试说明/链路延迟测试说明.md) | 网络链路时延分段定义、判定基线、执行流程 | | [`模拟器差距清单.md`](测试说明/模拟器差距清单.md) | **PC 模拟器 vs 真机差距登记册**(L3 门禁可信度依据;改动涉及网络/日志/硬件层前必查 §3 决策规则) | | [`实机测试实施指南.md`](测试说明/实机测试实施指南.md) | **上板(真机)测试执行流程**(按顺序:环境预检 → `@test`+自检判定 → IWDG 注入/长跑 → 堆告警 → GD5F 错误通道 → 网络基线 → 工程卫生;每步含判据/命令/状态);已完成事项证据去向见 §10 | -| [`ADC前端注入验证流程.md`](测试说明/ADC前端注入验证流程.md) | **ADC 前端与两片转换器的台架注入验证**(`docs/任务规划/数据可信.md` 卡 0 的执行侧):注入点清单 / 期望码值表 / 零点·线性·映射·极性·节奏五步 / 现场记录表;**不需示波器与信号源**,一块万用表即可 | +| [`ADC前端注入验证流程.md`](测试说明/ADC前端注入验证流程.md) | **ADC 前端与两片转换器的台架注入验证**(`docs/任务规划/数据可信.md` 卡 0 的执行侧):注入点清单 / 期望码值表 / 零点·线性·映射·极性·节奏五步(每步自带现场记录表,边做边填);**不需示波器与信号源**,一块万用表即可 | **主机侧单元测试(L0.5)** diff --git a/docs/测试说明/ADC前端注入验证流程.md b/docs/测试说明/ADC前端注入验证流程.md index 039240c4..346736ac 100644 --- a/docs/测试说明/ADC前端注入验证流程.md +++ b/docs/测试说明/ADC前端注入验证流程.md @@ -93,7 +93,8 @@ ![两把刻度尺:TPAFE5160 16 位双极性 −32768~+32767、1 码 152.59 µV、11430 码≈1.744 V;STM32 ADC1 12 位单极性 0~4095、1 码 805.66 µV、1000 码≈0.806 V](../images/ADC码值刻度.svg) **两把尺子不能混用**:同样是"1000",在 TPAFE 上是 0.153 V,在 STM32 上是 0.806 V,差 5.3 倍。 -所以 §9 记录表里每一格都必须写明是哪一路(UA/UB/… 属 TPAFE,T 属 STM32),抄错一行全盘结论作废。 +所以 §5 各步的记录表里每一格都必须写明是哪一路(UA/UB/… 属 TPAFE,T 属 STM32), +抄错一行全盘结论作废。 本文一律用"码"而不是"伏",有两个理由:① 固件 `adc:` 行打印的就是码,抄数不用心算; ② **标定还没做,把码换成伏正是本次要验证的事**——先换算再用,等于默认了尚未验证的系数。 @@ -121,15 +122,24 @@ STM32 侧 ≈4 mV。 1. 断电,把该路**注入点短接到 AGND**(短接线之前先用 0 Ω 档确认该点与 AGND 直通); 2. 上电,等 `adc:` 行出现(每 10 s 一行,9 路码值都在里面); -3. 把该路码值抄进 **§9.1 的零点记录表**; +3. 把该路码值抄进**下面的零点记录表**; 4. 断电拆短接线,换下一路。 -> 本节只给**判据**,要填的表在 §9.1。下表两列是参考值,不是待填字段。 +**记录**(现场填;判据只看"短接后"那一列,"空载"列是留证用): -| 通道 | 空载(浮空)当前实测 | 短接 AGND 后应满足 | -|---|---|---| -| UA / UN / IA(TPAFE) | ≈ 11430 码 | 码值绝对值 ≤ 10 | -| UB / UC / IB / IC / IN(STM32) | ≈ 1000 码 | 码值绝对值 ≤ 5 | +| 通道 | 空载码值(浮空) | 短接 AGND 后码值 | 判据 | +| --- | --- | --- | --- | +| UA | | | ≤ 10 | +| UN | | | ≤ 10 | +| IA | | | ≤ 10 | +| UB | | | ≤ 5 | +| UC | | | ≤ 5 | +| IB | | | ≤ 5 | +| IC | | | ≤ 5 | +| IN | | | ≤ 5 | + +空载列的量级参考:TPAFE 三路(UA/UN/IA)≈ 11430 码,STM32 五路 ≈ 1000 码。两列都记下来, +是因为"空载高两个数量级、短接后塌回 0"本身就是一个结论;只记短接后的数,看不出这件事。 **为什么这一步最关键**:空载(输入浮空)读数比判据高两个数量级,最可能的解释是输入悬空后 漏电流在滤波电容上建立的平衡点——短接 AGND 后应塌回 0。但如果**短接后仍读 11430**,那就是 @@ -142,11 +152,18 @@ STM32 侧 ≈4 mV。 3.3 V 轨经 10 k 电位器分压作源,逐点注入。**每点同时记两个数**:万用表读注入点实际电压、 `adc:` 行读对应码值。 -| 注入(实测电压) | TPAFE 期望码 | STM32 期望码 | -| -------- | --------- | --------- | -| ≈ 0.3 V | 1966 | 372 | -| ≈ 1.0 V | 6554 | 1241 | -| ≈ 2.0 V | 13107 | 2482 | +**记录**(UA 一路,三点;"目标"列是调电位器的靶子,"实测"列填万用表读数): + +| 目标注入 | 实测电压(万用表) | 码值 | 反算 µV/码 | TPAFE 期望码 | STM32 期望码 | +| -------- | --------- | -- | ------- | --------- | --------- | +| ≈ 0.3 V | | | | 1966 | 372 | +| ≈ 1.0 V | | | | 6554 | 1241 | +| ≈ 2.0 V | | | | 13107 | 2482 | + +拟合 R² = \______ 斜率 = \______ 码/V 偏差 = \______ % + +期望码两列并列,是因为同样的三个注入点也可能拿去复验 STM32 侧某一路(UA 对不上时换路交叉验证); +两列数值差 5.3 倍,一眼能确认手上这支表笔当前接的是哪一片转换器。 判据:三点线性拟合 **R² ≥ 0.999**,斜率与期望值偏差 **≤ 2 %**。 @@ -162,20 +179,36 @@ STM32 侧 ≈4 mV。 任何"注入 A 路、B 路动"都是映射错。这一条比斜率更重要——映射错时斜率可能完全正常。 -> 记录时把"注入路 → 实际变动路"写进附录表;`ADC通道映射说明.md` §3 的映射表如有不符, -> 以实测为准并当场记下来。 +**记录**(8 路各一次): + +| 注入路 | 注入 1.0 V 后实际变动的路 | 码值 | 是否符合预期 | +| --- | --- | --- | --- | +| UA | | | | +| UN | | | | +| IA | | | | +| UB | | | | +| UC | | | | +| IB | | | | +| IC | | | | +| IN | | | | + +`ADC通道映射说明.md` §3 的映射表如有不符,以实测为准并当场记在本表"是否符合预期"列。 ### 5.5 步骤 4:极性(只 TPAFE 三路) TPAFE 是双极性、二进制补码,可以注负压;STM32 是单极性,负半周测不了。给 UA/UN/IA 各加一个 -**−1.0 V** 点: +**−1.0 V** 点。 -| 注入 | 期望码 | -| ------ | --------- | -| −1.0 V | **−6554** | +**记录**(三路各两个点): -码值为负、幅值与 +1.0 V 点对称(差值 ≤ 2 %)→ 符号位与补码解释正确。 -这一步专门补"连极性都没证过"这个缺口。 +| 通道 | +1.0 V 码值 | −1.0 V 码值 | 对称性偏差 | +| -- | --------- | --------- | ----- | +| UA | | | | +| UN | | | | +| IA | | | | + +判据:−1.0 V 点码值为**负**且落在 **−6554** 附近,幅值与 +1.0 V 点对称(差值 ≤ 2 %) +→ 符号位与补码解释正确。这一步专门补"连极性都没证过"这个缺口。 ### 5.6 步骤 5:节奏(注入期间顺带看) @@ -221,65 +254,3 @@ TPAFE 是双极性、二进制补码,可以注负压;STM32 是单极性, | `adc:` 行某路恒 0 而 `frames` 在涨 | 该路取数失败 | 查该路是否真的接线/短路 | | 斜率恰好差一倍 | 误用了 2:1 分压口径(305.18 / 1611.3) | 本板无分压,见 §2;按 152.59 / 805.66 重算 | | 端子对 AGND 量到 ~1 MΩ,以为串阻没焊 | 串阻与芯片 1 MΩ 输入阻抗是**串联**,不是并联;1 kΩ 只在串阻两端成立 | 改量串阻 1 脚↔2 脚,≈1 kΩ 即正常(§5.1) | - -## 9. 记录表(台架现场填) - -### 9.1 零点 - -填法:`空载码值` = 不接任何东西时 `adc:` 行读到的数;`短接 AGND 后码值` = 把注入点短到 AGND -之后读到的数。判据只看后者。 - -| 通道 | 空载码值(浮空) | 短接 AGND 后码值 | 判据 | 结论 | -|---|---|---|---|---| -| UA | | | ≤ 10 | | -| UN | | | ≤ 10 | | -| IA | | | ≤ 10 | | -| UB | | | ≤ 5 | | -| UC | | | ≤ 5 | | -| IB | | | ≤ 5 | | -| IC | | | ≤ 5 | | -| IN | | | ≤ 5 | | - -### 9.2 三点线性(UA) - -| 注入电压(万用表) | 码值 | 反算 µV/码 | -| --------- | -- | ------- | -| | | | -| | | | -| | | | - -拟合 R² = \______ 斜率 = \______ 码/V 偏差 = \______ % - -### 9.3 逐通道映射 - -| 注入路 | 注入 1.0 V 后变动的路 | 码值 | 是否符合预期 | -| --- | -------------- | -- | ------ | -| UA | | | | -| UB | | | | -| UC | | | | -| UN | | | | -| IA | | | | -| IB | | | | -| IC | | | | -| IN | | | | - -### 9.4 极性 - -| 通道 | +1.0 V 码值 | −1.0 V 码值 | 对称性偏差 | -| -- | --------- | --------- | ----- | -| UA | | | | -| UN | | | | -| IA | | | | - ---- - -## 变更记录 - -| 日期 | 内容 | -| ---------- | ---------------------------------------------------------------------------------------------------------------------------- | -| 2026-10-27 | 建档。承接 `docs/任务规划/数据可信.md` 卡 0 的执行侧;固化"前端无分压"的网表结论、端子侧注入点清单、期望码值表与五步流程。同日 `App/task/adc_task.c` 心跳新增 `adc:` 行(9 路原始码值),使全程免复位 | -| 2026-10-27 | §2 的 ASCII 拓扑图换成 SVG(`docs/images/ADC前端电路.svg`,生成器 `tools/arch_diagram/gen_adc_frontend_svg.py`)。ASCII 版把 C44 / R32 画成挂在 ADC7 下的一根竖线,读起来像 2:1 分压——正是本节要否掉的结论;新图把 `ADC7` 与 `ADC7_GND` 画成两个节点,并加 STM32 侧对照面板 | -| 2026-10-27 | **§5.1 步骤 0 判据更正**:原写"端子侧应量到 1 kΩ 量级(串阻 + 转换器输入阻抗**并联**)"两处错——① 端子到 AGND 是**串联**通路(1k + 芯片 1 MΩ + 1k ≈ 1.002 MΩ),1 kΩ 只在**串阻两端**成立;② 芯片输入阻抗是 **1 MΩ 恒定**(`docs/芯片手册/TPAFE5160.md` "Analog Input Impedance" 节),不是可与 1 kΩ 并联出 1 kΩ 的量级。改为三行分测表(串阻两端 / TPAFE 侧对 AGND / STM32 侧对 AGND),并写明本步**只排除短路、不验收正确性**;§8 已知坑补对应一行。`docs/硬件平台/ADC通道映射说明.md` §7"前端偏置"行同步补 1 MΩ 与源阻抗匹配依据 | -| 2026-10-27 | **§5.2 表格可读性修正**:原表单元格里写了 `\|码\|`(未转义竖线),被 GFM 当成列分隔符,整表渲染成乱码;改为"码值绝对值 ≤ 10 / ≤ 5"(§6 判据汇总同病同修)。同时 §5.2 补"做什么"四步(断电短接 → 上电读 `adc:` → 抄进 §9.1 → 断电换下一路),并明确**本节只给判据、要填的表在 §9.1**;§9.1 记录表新增"空载码值(浮空)"列与填法说明,使空载与短接两个数都被记下来 | -| 2026-10-27 | **§4 补「码」的定义**:用户反馈"码这个单位第一次见"。补 16 位双极性(−32768~+32767、1 码 152.59 µV)与 12 位单极性(0~4095、1 码 805.66 µV)两个刻度对照表、换算示例(11430 码 ≈ 1.744 V,与 `cal:` 行的 1743 mV 自洽),并写明本文为何一律用码而不用伏:固件打印的就是码,且**把码换成伏正是本次要验证的事** | -| 2026-10-27 | §4 的「码」定义表配刻度尺图(`docs/images/ADC码值刻度.svg`,生成器 `tools/arch_diagram/gen_adc_code_scale_svg.py`):上下两张刻度尺分别标出 `11430 码 ≈ 1.744 V` 与 `1000 码 ≈ 0.806 V`,把"同一个整数在两片转换器上代表不同电压"画出来;正文补一句两把尺子差 5.3 倍、§9 每格必须写明所属通道,防止台架抄数时混用两套 LSB |