2. 硬件设计要点:采样电路布局、差分走线、抗混叠滤波器设计

好,咱们直接进入正题。电流采样搞不好,后面算法调得再漂亮也是白搭。我见过太多工程师,软件滤波写了一堆,结果发现是硬件上进来的噪声早就把信号淹没了。这一节,我就把硬件设计上几个最关键的要点掰开揉碎了讲。

2.1 采样电路布局:别让大电流欺负小信号

采样电路布局,说白了就是「强弱分离」。强电回路和弱电信号回路,必须物理上隔开。我早期一个项目,电机跑起来电流波形全是毛刺,查了三天,最后发现采样电阻的走线跟功率管驱动走线并行了5厘米。嗯,这就是教训。

核心原则:采样电阻的Kelvin连接(开尔文连接)必须做。采样电阻两端各走两根线,一根走大电流,一根专门用来测电压。千万别图省事只拉两根线。

具体怎么做?我建议你记住这几点:

  • 采样电阻尽量靠近电机相线输出端,离功率管近一点。走线越短,寄生电感越小。
  • 模拟地和功率地要单点连接。我习惯在采样电阻的GND端附近,用一个0欧电阻或磁珠把两地连起来。别搞成大面积铺铜直接连通,那样噪声会串得到处都是。
  • 运放供电要加去耦电容。每个运放引脚旁边放一个0.1μF的陶瓷电容,再并一个10μF的钽电容。别问我为什么,高频噪声就是这么滤掉的。
一个小技巧:采样电阻底下不要走其他信号线。我见过有人为了省空间,在采样电阻底下走了PWM信号线,结果采样出来的波形跟心电图似的。

2.2 差分走线:让共模噪声无处可逃

电机驱动环境里,共模噪声是最大的敌人。你想想看,功率管开关瞬间,dV/dt能到几十V/μs,这些噪声会通过寄生电容耦合到采样线上。如果只用单端走线,那基本等于在噪声里捞信号。

差分走线的核心是什么?等长、等距、紧耦合。我个人的习惯是:

  1. 差分对的两根线走在一起,间距控制在3倍线宽以内。比如线宽10mil,间距就控制在30mil以内。
  2. 两根线长度差不超过5mm。长度不匹配会导致共模噪声转成差模噪声,这个转换出来的噪声你后面怎么滤都滤不掉。
  3. 差分对两侧不要走其他高速信号。如果实在避不开,中间至少要隔一个地线。

我曾经在一个伺服驱动器项目里,差分走线长度差了12mm,结果采样出来的电流在过零点附近一直有毛刺。后来把走线调成等长,问题直接消失。你想想看,就这么一点长度差,能让你多调三天软件。

差分走线阻抗计算参考(4层板,外层走线):
线宽 (mil)线距 (mil)差分阻抗 (Ω)
88约100
1010约90
1212约85

注意:这只是参考值,实际阻抗跟板材、层叠结构有关。建议用阻抗计算工具算一下。

2.3 抗混叠滤波器设计:别让高频噪声混进来

抗混叠滤波器,名字听着高大上,其实作用很简单——在ADC采样之前,把高于奈奎斯特频率的信号干掉。为什么?因为一旦高频信号混叠到低频段,你后面再怎么处理也分不清哪些是真实信号,哪些是假信号。

我建议用二阶低通滤波器,结构是Sallen-Key拓扑。为什么不用一阶?一阶的衰减斜率只有-20dB/十倍频,对于电机驱动这种噪声环境,根本不够用。二阶能到-40dB/十倍频,基本够用了。

具体参数怎么选?我给你一个我常用的设计流程:

  • 截止频率f_c:一般取ADC采样频率的1/5到1/10。比如采样频率是10kHz,f_c就设在1kHz到2kHz之间。
  • 电阻电容值:我习惯用10kΩ电阻和0.1μF电容组合,f_c ≈ 1/(2πRC) ≈ 159Hz。这个值偏低?别急,电机电流变化频率一般也就几百赫兹,够用了。
  • 运放选型:带宽要够,至少是f_c的100倍。我常用的是OPA2188或MCP6002,便宜又好用。
注意:滤波器会引入相位延迟。如果你要做高速电流环(比如10kHz以上带宽),这个延迟可能会影响系统稳定性。这时候可以考虑用有源滤波器或者数字滤波器替代。

这里给一个我常用的二阶低通滤波器电路参数:

// Sallen-Key 二阶低通滤波器
// 截止频率: 约1.6kHz
// 增益: 1 (单位增益)

R1 = R2 = 10kΩ
C1 = 0.01μF
C2 = 0.022μF

// 实际截止频率计算:
// f_c = 1 / (2 * π * sqrt(R1 * R2 * C1 * C2))
// f_c ≈ 1 / (2 * 3.14 * sqrt(10k * 10k * 0.01μ * 0.022μ))
// f_c ≈ 1.6kHz

嗯,这里要注意一点:电容要用C0G或NP0材质的,别用X7R。X7R的电容值会随电压变化,你想想看,采样电压变了,滤波器截止频率也跟着变,这还怎么玩?

2.4 布局走线检查清单

最后,我把自己平时检查硬件设计时用的清单分享给你。每次画完板子,对着这个清单过一遍,能省掉很多调试时间:

检查项要求常见问题
采样电阻Kelvin连接4线制,电压检测线独立只用了2线,引入接触电阻误差
差分走线等长长度差 < 5mm长度差过大,共模转差模
模拟地/功率地单点连接0欧电阻或磁珠连接大面积直接连通,噪声串扰
抗混叠滤波器二阶以上,f_c合理用一阶或没加,高频混叠
运放去耦电容0.1μF + 10μF没加或离引脚太远
采样电阻底下无信号线保持净空底下走了PWM或时钟线

好了,硬件设计这部分就讲到这里。下一节我们会聊软件校准方法,到时候你会发现,硬件做得好,软件校准就轻松一大半。反过来,硬件一塌糊涂,软件再怎么折腾也是事倍功半。

最后一句:画板子之前,先把采样电路这部分单独画出来,反复检查。我吃过这个亏,所以特别啰嗦。别嫌烦,等你一次点亮、波形干净的时候,你会感谢现在的自己。