From 69d70af4cf2a9ad63292d454f062f63cb426b508 Mon Sep 17 00:00:00 2001 From: Wanderingss <1624155937@qq.com> Date: Tue, 27 Oct 2026 18:33:18 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E9=9B=B6=E7=82=B9=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=E8=A1=A8=E6=94=B9=E4=B8=BA=E4=B8=8E=20adc=20=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E5=90=8C=E5=BA=8F=EF=BC=8C=E8=A1=A5=E5=AE=9E=E6=B5=8B=E6=95=B0?= =?UTF-8?q?=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 台架首次实测暴露一处抄数陷阱:adc: 日志列序是 UA UB UC UN IA IB IC IN,而记录表按语义分组排成 UA UN IA / UB UC IB IC IN。 照日志从左往右抄进表格从上往下,UN/IA 就填成了 STM32 的 ~1000、 UB/UC 填成了 TPAFE 的 ~11450 —— 而 UN/IA 属 TPAFE、UB/UC 属 STM32,这两个量级在物理上不可能,看起来像"数据全错"。 - 记录表行序改为与 adc: 日志完全一致,并加"转换器"列,量级对不上 时一眼能看出来 - 表前加警示,把这次踩坑的经过写成具体例子(不写"注意顺序"这种 空话,写清错在哪、错成什么样) - 补"怎么抄短接后的数":只抄该路那一列,别贴整行;塌到 0 的不是 你以为那一路,属映射问题转 §5.4,不是零点问题 - 补一句"短接后读到 0 是短接到位,不是取数失败" - 记 2026-10-27 首次实测空载值(按日志列序归位):UA 11429 / UB 1044 / UC 954 / UN 11453 / IA 11451 / IB 1040 / IC 1062 / IN 980,与 18:04 烧录后开机日志一致 §8 已知坑按属主决定删除,不再保留。 --- docs/测试说明/ADC前端注入验证流程.md | 49 +++++++++++++++------------- 1 file changed, 27 insertions(+), 22 deletions(-) diff --git a/docs/测试说明/ADC前端注入验证流程.md b/docs/测试说明/ADC前端注入验证流程.md index 346736ac..b4c507ad 100644 --- a/docs/测试说明/ADC前端注入验证流程.md +++ b/docs/测试说明/ADC前端注入验证流程.md @@ -127,20 +127,37 @@ STM32 侧 ≈4 mV。 **记录**(现场填;判据只看"短接后"那一列,"空载"列是留证用): -| 通道 | 空载码值(浮空) | 短接 AGND 后码值 | 判据 | -| --- | --- | --- | --- | -| UA | | | ≤ 10 | -| UN | | | ≤ 10 | -| IA | | | ≤ 10 | -| UB | | | ≤ 5 | -| UC | | | ≤ 5 | -| IB | | | ≤ 5 | -| IC | | | ≤ 5 | -| IN | | | ≤ 5 | +> ⚠ **本表行序 = `adc:` 日志的列序**(UA UB UC UN IA IB IC IN),照着日志**从左往右**抄, +> 不要按"TPAFE 三路 / STM32 五路"重新分组。2026-10-27 现场实测就栽在这里:按语义分组抄, +> 结果 UN/IA 填成了 STM32 的 ~1000、UB/UC 填成了 TPAFE 的 ~11450——而 UN/IA 属 TPAFE、 +> UB/UC 属 STM32,这两个量级在物理上不可能。**"转换器"列就是给这一眼准备的**。 + +| 通道 | 转换器 | 空载码值(浮空) | 短接 AGND 后码值 | 判据 | +| --- | --- | --- | --- | --- | +| UA | TPAFE | | | ≤ 10 | +| UB | STM32 | | | ≤ 5 | +| UC | STM32 | | | ≤ 5 | +| UN | TPAFE | | | ≤ 10 | +| IA | TPAFE | | | ≤ 10 | +| IB | STM32 | | | ≤ 5 | +| IC | STM32 | | | ≤ 5 | +| IN | STM32 | | | ≤ 5 | + +**怎么抄短接后的数**:短接一路时日志仍然打 9 路,只抄**该路**那一列,不要把整行贴进来。 +顺手记下"哪一路塌到 0"——**若塌的不是你以为的那一路,那不是零点问题,是注入点标签与 +固件通道名对不上,转 §5.4 逐通道映射去查**。另外:**短接后读到 0 是短接到位,不是取数失败** +(取数失败只在**没短接**时表现为恒 0,那种情况同一份心跳里 `frames` 仍在涨)。 空载列的量级参考:TPAFE 三路(UA/UN/IA)≈ 11430 码,STM32 五路 ≈ 1000 码。两列都记下来, 是因为"空载高两个数量级、短接后塌回 0"本身就是一个结论;只记短接后的数,看不出这件事。 +**2026-10-27 首次实测(空载,已按日志列序归位)**: +UA 11429 · UB 1044 · UC 954 · UN 11453 · IA 11451 · IB 1040 · IC 1062 · IN 980。 +与 18:04 烧录后那次开机日志(11428 / 1087 / 953 / 11452 / 11450 / 999 / 1016 / 987)一致, +两次都落在 TPAFE ≈11430、STM32 ≈1000 的量级。 +短接列本轮仅 TPAFE 三路有效:UA −14、UN −15、IA −13(均 ≈2 mV);STM32 五路当时记的是 +整行日志、无法归属到具体通道,待重测。 + **为什么这一步最关键**:空载(输入浮空)读数比判据高两个数量级,最可能的解释是输入悬空后 漏电流在滤波电容上建立的平衡点——短接 AGND 后应塌回 0。但如果**短接后仍读 11430**,那就是 真实偏置,且超过零点补偿上限 `ADC_CAL_B_MAX`(8192 码)——`adc_cal_set()` 会直接拒掉、 @@ -242,15 +259,3 @@ TPAFE 是双极性、二进制补码,可以注负压;STM32 是单极性, 与"加压试保护"是两件事,后者要等变比确认(`docs/任务规划/数据可信.md` 卡 0b)之后单独排。 4. **引脚侧注入必须外串 10 k**,且先接线后上电、先断电后拆线。 5. 注入源与板子**共地**;电位器一端接 3.3 V、一端接 AGND、中间抽头串 10 k 到注入点。 - -## 8. 已知坑 - -| 现象 | 原因 | 处置 | -| --------------------------- | ------------------------------------ | ------------------------------- | -| 空载读数 11430 / 1000 码,跨开机稳定 | 输入浮空后的漏电平衡点(推测,待步骤 1 证实) | 短接 AGND 后应塌回 0;不塌则按 §5.2 处理 | -| `cl=0xe6` 恒不变 | `UB/UC/IB/IC/IN` 五路单极性削顶,是 V0.1 硬件缺陷 | 正常;这五路只验直流,不验交流 | -| `vl=0x00` 恒不变 | 从未做过两点标定,`VALID` 未置位 | 正常;标定后才会变 | -| `meas: ua_mv=0` | 基波有效值,直流注入下本就为 0 | 正常;验交流要等信号源 | -| `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) |