硬件设计要点:参考电压、模拟通道与抗混叠滤波器

ADC 性能好不好,一半看布局布线。这话不是我说的,是吃过亏之后才懂的。当年我调试一块四层板,软件怎么折腾都只有 10 位有效精度,最后发现是参考电压引脚上有个 100nF 电容离得太远。嗯,从那以后,我画板子第一件事就是先伺候好 ADC 的电源和参考。

参考电压选择:精度从这里开始

STM32 的 ADC 参考电压有两种来源:内部 VREF 和外部 VREF+。别小看这个选择,它直接决定了你的测量天花板。

参考源 典型精度 温漂 适用场景
内部 VREF(VDDA) ±2% ~ ±5% 大 对精度要求不高的通用采样
外部 VREF+(专用引脚) ±0.1% ~ ±0.5% 小 精密测量、传感器采集
内部 VREFINT(校准用) ±1% 中等 仅用于校准补偿,不能直接做参考

我的经验法则:如果 ADC 分辨率用到 12 位,且要求有效位数(ENOB)≥ 10 位,必须上外部参考。别指望 VDDA 能扛住,电源纹波和负载变化会让你怀疑人生。

外部参考芯片怎么选?我个人习惯用 REF3030(3.0V)或 REF5050(5.0V),温漂 3~5 ppm/°C,够用又不贵。布局时注意:

  • 参考输出到 VREF+ 引脚走线尽量短,线宽 ≥ 10 mil
  • 在 VREF+ 引脚旁边放 10µF + 100nF 去耦电容
  • 参考芯片的 GND 和 ADC 的 AGND 单点连接,别串到数字地回路里

注意:STM32 的 VREF+ 输入阻抗不是无穷大。采样率越高,瞬间抽取电流越大。如果参考源驱动能力不足,采样值会抖动。我曾经用普通三端稳压器当参考,结果 1MSPS 下跳动超过 5 个 LSB——换 REF 芯片后立刻降到 1 LSB 以内。

模拟输入通道布局:别让噪声搭便车

模拟信号最怕两件事:串扰和共模噪声。你想想看,一个 3.3V 系统里,1 LSB 对应 0.8 mV(12 位)。随便一个数字信号跳变,都能通过寄生电容耦合进来。

布局时我遵循三条铁律:

  1. 模拟区与数字区物理隔离。在 PCB 上划一条清晰的“楚河汉界”,模拟信号和数字信号不要交叉走线。
  2. 输入走线短而直。ADC 输入引脚到传感器输出引脚的距离尽量控制在 20 mm 以内。实在绕不开,用包地线保护。
  3. 每个模拟输入通道加 RC 滤波。这不光是为了抗混叠,也是为了防止外部静电或浪涌直接打坏 ADC 引脚。

小技巧:如果有多路模拟输入,把高频通道和低频通道分开布局。比如音频信号和温度传感器不要挨着走,否则温度通道的缓慢变化会被音频的开关噪声调制,出现奇怪的周期性偏差。

下面这张图是我常用的单通道模拟输入布局结构:

单通道模拟输入布局结构 单通道模拟输入布局结构 传感器 RC 抗混叠 R=1k C=10nF ESD 保护 TVS 管 ADC 输入 PA0/PA1... 布局要点: 1. 传感器 → RC → ESD → ADC 引脚,路径尽量直线,不要绕弯 2. RC 滤波器的电容靠近 ADC 引脚放置,电容另一端直接打过孔到 AGND 3. TVS 管的寄生电容要小(≤ 5pF),否则会影响信号带宽 4. 所有元件放在同一层,不要跨层走模拟信号

抗混叠滤波器设计:别让高频信号“伪装”成低频

混叠是什么?说白了就是采样率不够,高频信号折叠到低频段,变成假数据。你明明采的是 50 Hz 工频,结果因为混叠,波形上多了一个莫名其妙的 300 Hz 分量——查半天发现是开关电源的噪声。

根据奈奎斯特定理,采样率必须 ≥ 2 倍信号最高频率。但实际工程中,我一般留 3~5 倍余量。比如信号最高 1 kHz,采样率设 5 kHz 以上,然后在前端加一阶 RC 低通滤波。

核心公式:截止频率 fc = 1 / (2πRC)。选择 R 和 C 时注意:R 不能太大,否则会与 ADC 采样电容形成分压,导致增益误差。一般 R 取 100Ω ~ 10kΩ,C 取 1nF ~ 100nF。

不同场景的滤波器推荐参数:

应用场景 信号带宽 采样率 推荐 RC 截止频率
温度传感器(NTC/PT100) DC ~ 10 Hz 100 Hz 10kΩ + 1µF 16 Hz
音频信号 20 Hz ~ 20 kHz 96 kHz 1kΩ + 10nF 16 kHz
电机电流采样 DC ~ 1 kHz 10 kHz 1kΩ + 100nF 1.6 kHz
高速数据采集 DC ~ 100 kHz 1 MHz 100Ω + 1nF 1.6 MHz

避坑指南:我曾经在一个电机驱动项目里,为了省成本,把 RC 滤波的电阻从 1kΩ 换成了 10kΩ。结果 ADC 采样值偏小 5%,查了两天才发现——电阻太大,采样电容充电时间不够,每次转换都没充到最终值。换成 1kΩ 后问题消失。记住:RC 的时间常数必须远小于 ADC 采样时间。

最后说一句:抗混叠滤波器不是万能的。如果信号本身信噪比就很差,滤波只能改善,不能根治。先保证模拟前端干净,再谈滤波算法。硬件上的每一分投入,都会在软件调试时加倍回报。