信号串扰:线缆寄生电容
ADC 通道 1~4 全是悬空,没有接传感器。板载 10 kHz 测试方波却出现在波形上;把红端子从 ADC 引脚拔掉后,四路又一起变平。这组对照把干扰源指向外部线缆的寄生电容,并排除了板内串扰作为主要来源。
步骤一:接线实物
测试板输出 10 kHz 方波,业务采集侧用 ADC Stream Scope 同时看 ADC 通道 1~4 四路。四路 ADC 引脚都悬空。测试线一端是黑、红两个香蕉端子,另一端线芯外露、什么也没接。
测试工程:github.com/createskyblue/STM32L496_ADC_DMA_MuChannel_Sample
- 黑端子 → 板上 10 kHz 测试信号
- 红端子 → 业务 ADC1(悬空引脚)
- 线缆远端悬空

步骤二:耦合波形
红端子接到悬空的通道 1 后,通道 1 出现与测试信号同频的方波,游标处约 2.733 V,幅度接近满量程。悬空引脚本身不产生信号,作为高阻抗节点却容易通过寄生路径拾取外部信号;这里的方波来自黑端子上的 10 kHz 经线缆寄生电容耦合。通道 2~4 同样悬空,也在波形上露出同相位的残余小波。

| 通道 | 现象 | 视窗统计 |
|---|---|---|
| ADC 通道 1 | 完整 10 kHz 方波 | min 0.000 V / max 2.823 V |
| ADC 通道 2 | 同步残余小波 | min 0.361 V / max 1.070 V |
| ADC 通道 3 | 台阶起伏更弱 | min 0.438 V / max 0.567 V |
| ADC 通道 4 | 近平坦,仍有细小起伏 | 约 0.516 V |
通道 2~4 上的小波,是单 ADC 规则组切换留下的。MCU 里通常只有一个 ADC,按通道 1→2→3→4 分时采样。通道 1 被耦合方波充到对应电平后,切到后面几个悬空通道,内部采样电容还带着上一通道的残余电荷,转换结果里就留下同相位的小波形。越靠后,残余幅度越小。悬空通道上的小波,是电荷被带到下一通道的结果,并非它们也直接吃到了方波。
步骤三:断开对照接线
只改一处:红端子从 ADC 引脚拔掉,黑端子仍接 10 kHz,线缆其余接法不变。

步骤四:断开后波形
四路同时变平,游标附近都在 0.503 V 附近,视窗统计几乎没有起伏。

| 通道 | 断开前 | 断开后 |
|---|---|---|
| ADC 通道 1 | 0~2.823 V 方波 | 约 0.503 V 平线 |
| ADC 通道 2 | 0.361~1.070 V 残余 | 约 0.503 V 平线 |
| ADC 通道 3 | 0.438~0.567 V 起伏 | 约 0.503 V 平线 |
| ADC 通道 4 | 细小起伏 | 约 0.503 V 平线 |
线缆寄生电容路径
通道 1 上的方波从线缆进来:四路 ADC 引脚都悬空。两根导线并行走线时存在寄生电容,黑端子上的 10 kHz 方波经这层电容送进红端子连接的悬空通道 1。万用表粗测线间电容约 0.389 nF,量级与寄生耦合相符。红端子一拔,耦合路径断开,四路一起归平。

结论
经对照,四路悬空 ADC 上的 10 kHz 方波属实,板内串扰并非主要来源。原因分两层:外层是测试线缆两根导线之间的寄生电容,把黑端子上的方波送进了红端子连接的悬空通道 1;内层是单 ADC 规则组分时切换,后续悬空通道因采样电容残余电荷留下同相位小波。
验证方式是断开红端子后波形归平。后续用这根线做信号注入时,应把远端悬空、通道间距和走线长度当作可控变量;板级排查若只见业务通道异常,先断外部引线再查 PCB 走线,可以把板内串扰和线缆耦合分开。