3、ADC与信号调理:ADC分辨率与采样率的选择、信号调理电路设计(偏置、滤波)、采样噪声的来源与抑制
做伺服驱动这么多年,我越来越觉得ADC这块是电流环的「咽喉」。你算法写得再漂亮,如果ADC采回来的信号是脏的,那一切都是白搭。说白了,电流环的带宽上限,有一半是被ADC和前端电路卡死的。
今天咱们就掰开揉碎,聊聊ADC选型、信号调理电路怎么搭,还有那些烦人的噪声到底从哪来、怎么治。
3.1 ADC分辨率与采样率——别盲目堆参数
先问个问题:你选ADC时,第一眼看什么?
很多人上来就盯着分辨率,觉得位数越高越好。我刚开始做项目时也这么干过,选了个16位的ADC,结果发现噪声大得离谱,有效位数连12位都不到。嗯,这就是典型的「参数幻觉」。
核心原则:采样率决定带宽上限,分辨率决定控制精度。两者要匹配,不是越高越好。
3.3.1 采样率怎么定?
电流环的带宽目标,直接决定了ADC的最低采样率。我个人习惯用这个经验公式:
f_adc ≥ 10 × f_bandwidth
举个例子,你想把电流环带宽做到2kHz,那ADC采样率至少20kHz。为什么是10倍?因为还要留出给数字滤波、过采样、以及系统延迟的余量。我在一个高速主轴项目里试过5倍采样,结果相位裕度根本不够,电流环一跑就抖。
| 目标带宽 | 推荐最低采样率 | 典型应用 |
|---|---|---|
| 500 Hz | 5 kHz | 通用伺服 |
| 1 kHz | 10 kHz | 中高速伺服 |
| 2 kHz | 20 kHz | 高速主轴 |
| 5 kHz | 50 kHz | 超高速/精密 |
小技巧:如果MCU的ADC采样率不够,可以用过采样技术。比如用4倍过采样,等效分辨率能提升1位。但要注意,过采样会增加CPU负担,别把主循环拖死了。
3.3.2 分辨率选多少?
分辨率这事,得看你的电流检测范围和控制精度要求。我一般这样算:
有效位数 ≥ log2(电流范围 / 最小可分辨电流)
比如电流范围±10A,要求分辨到1mA,那至少需要log2(20000) ≈ 15位。但注意,这是「有效位数」,不是ADC标称位数。
我曾经在一个项目里踩过坑——用了12位ADC,标称分辨率4096,但实际噪声把低3位全淹了,有效位数只剩9位。结果电流环在低速时抖得像筛子。后来换了14位ADC,配合前端调理,才把问题压住。
避坑指南:别只看datasheet上的「有效位数(ENOB)」参数。很多ADC在低频下ENOB不错,但一跑到几十kHz采样率,ENOB直接掉2-3位。一定要看采样率-ENOB曲线。
3.2 信号调理电路设计——前端决定成败
ADC本身只是「翻译官」,真正决定信号质量的,是它前面的调理电路。我见过太多人花大价钱买高端ADC,结果前端用个通用运放随便搭一下,信号进来全是毛刺。
3.2.1 偏置电路——把信号拉到ADC的「舒适区」
电流传感器的输出,通常是双极性的(比如±5V)。但很多ADC的输入范围是0-3.3V或0-5V。所以你得先把信号「抬」到正半轴。
最简单的做法是用加法器:
Vout = Vin × R2/R1 + Vref × R4/R3
我个人习惯用这个拓扑:
R1
Vin ——/\/\/\——+——
|
/ \
| | R2
\_/
|
/ \
| | R3
\_/
|
Vref
|
——+—— Vout
|
/ \
| | R4
\_/
|
GND
嗯,画得有点丑,但意思到了。关键点是:R1=R2,R3=R4,这样偏置电压刚好是Vref的一半。
经验之谈:Vref一定要用低噪声基准源,别直接从电源分压。我吃过这个亏——用电阻分压做Vref,结果电源纹波直接耦合进信号,电流环上全是50Hz的工频干扰。
3.2.2 滤波电路——把高频毛刺挡在门外
电流环里最怕什么?PWM开关噪声。IGBT或MOSFET一开一关,di/dt大得吓人,会在采样电阻和线路上感应出尖峰。这些尖峰如果不滤掉,ADC采到的就是一堆乱码。
我常用的方案是二阶低通滤波,截止频率设在采样率的1/5左右:
截止频率: fc = 1 / (2π × √(R1×R2×C1×C2))
推荐取值: R1=R2=10kΩ, C1=C2=1nF → fc ≈ 16kHz
注意,滤波器的群延迟会影响电流环的相位。你想想看,如果延迟太大,电流环的相位裕度就没了。所以滤波器的阶数不是越高越好,二阶通常够用。
我的习惯:在运放前后各放一级RC滤波。前级滤掉共模噪声,后级滤掉差模噪声。两级之间用运放做缓冲,阻抗匹配好,信号不衰减。
3.3 采样噪声的来源与抑制——知己知彼
噪声这东西,你找不到源头,就永远治不好。我总结了三类最常见的噪声源:
3.3.1 电源噪声
ADC和运放的供电如果不干净,信号上全是纹波。我曾经在一个项目里,用示波器看ADC输入,发现有个200mV的100kHz纹波。查了半天,发现是DC-DC的开关频率串进来了。
解决办法:
- 模拟电路和数字电路分开供电
- 用LDO给模拟部分供电,别用DC-DC
- 每个运放和ADC的电源脚旁路电容不能省——0.1μF+10μF组合
3.3.2 地回路噪声
这是最隐蔽的噪声。电流采样回路和功率回路共用一段地线,大电流一过,地电位就跳变。ADC采到的信号里就多了个「地弹」分量。
我的做法是:
- 模拟地和功率地单点连接
- 采样电阻用开尔文接法,把电流路径和电压检测路径分开
- PCB上铺模拟地铜皮,别让大电流从下面走
3.3.3 采样时刻抖动
ADC的采样时钟如果不稳定,每次采样的时间点都在变。对于高频电流信号来说,时间抖动就等于幅度噪声。
这个问题在MCU内置ADC上尤其常见。MCU的时钟可能来自PLL,PLL的抖动在几十到几百皮秒。对于1kHz的电流信号,100ps的抖动引起的误差可以忽略。但如果电流频率到了10kHz以上,这个误差就不能忽视了。
避坑指南:我曾经在一个项目里用MCU内置ADC做电流采样,采样时钟来自PLL。结果电流环带宽跑到3kHz时,噪声突然变大。查了三天,才发现是PLL抖动引起的。后来改用外部独立ADC,带专用采样时钟,问题才解决。
3.4 知识体系总览
下面这张图,是我自己总结的ADC与信号调理的知识框架。你看一眼,心里就有数了:
你看,这三个模块是环环相扣的。ADC选型决定了你能看到什么,信号调理决定了你看到的是不是真的,噪声抑制决定了你看到的是不是干净的。哪一环出问题,电流环的带宽都上不去。
好了,这一章的内容就到这。记住一句话:ADC和信号调理,是电流环的「地基」。地基不牢,地动山摇。
公众号:蓝海资料掘金营,微信deep3321