4、信号调理电路:运放选型、滤波电路设计、偏置与增益

信号调理电路,说白了就是给MCU的ADC“喂”干净、合适的信号。无感启动时,电流采样信号里全是高频PWM噪声和电机反电动势的尖刺,直接送ADC?那结果根本没法用。

我刚开始做无感FOC时,就吃过这个亏。当时随便搭了个运放,结果启动瞬间过流保护乱跳,查了三天才发现是运放输出饱和了。嗯,从那以后,我对信号调理这块再也不敢马虎。

4.1 运放选型:别只看价格,要看“脾气”

运放是信号调理的核心。选型时,我一般会盯着几个关键参数看:

  • 失调电压(Vos):这个参数决定了你能分辨多小的电流。无感启动时,电流可能只有几十毫安,Vos要是超过5mV,小电流区域基本就废了。
  • 压摆率(SR):电机电流变化很快,尤其是堵转或短路瞬间。SR太低,运放输出跟不上,过流保护就形同虚设。
  • 共模输入范围:单电源供电时,输入信号不能太靠近地或电源轨。我习惯选轨到轨输入输出的运放,省心。
  • 带宽(GBW):对于几百kHz的PWM噪声,GBW不用太高,但也不能太低。10MHz左右比较合适。

我个人常用的运放型号对比:

型号 Vos (max) SR (V/µs) GBW (MHz) 供电 典型场景
LMV321 3 mV 1.0 1.0 2.7-5.5V 低成本、低速电流检测
MCP6002 4.5 mV 0.6 1.0 1.8-5.5V 低功耗、电池供电
OPA2376 0.5 mV 2.0 5.5 2.2-5.5V 精密电流采样、过流保护
AD8606 0.65 mV 5.0 10 2.7-5.5V 高速、低噪声、无感FOC

你想想看,如果选LMV321做无感启动的过流保护,Vos就有3mV。假设采样电阻1mΩ,那3mV对应的电流误差就是3A!这还怎么保护?所以,我建议至少用OPA2376或AD8606这个级别的。

4.2 滤波电路设计:把噪声“掐死”在源头

电机驱动板上,PWM开关噪声是最大的干扰源。滤波电路的目的,就是把这些高频成分滤掉,只留下我们想要的电流基波。

常用的滤波结构有两种:

  1. 一阶RC低通滤波:简单、便宜,但衰减斜率只有-20dB/dec。适合噪声频率远高于信号频率的场景。
  2. 二阶有源低通滤波:用运放+RC构成,衰减斜率-40dB/dec。滤波效果更好,但会引入额外功耗和成本。

我个人习惯在采样电阻输出端先加一级RC滤波,再进运放。这样能先把大部分共模噪声干掉。

经验值参考:

对于20kHz的PWM频率,我一般取截止频率fc = 1/10的PWM频率,也就是2kHz左右。

R取1kΩ,C = 1/(2π × 1k × 2k) ≈ 80nF。实际取100nF,效果不错。

为什么会这样选?因为截止频率太低,电流信号的相位延迟会变大,影响FOC的控制精度;太高了,又滤不干净噪声。2kHz是个折中点。

4.3 偏置与增益:把信号“搬”到ADC的舒适区

MCU的ADC输入范围通常是0-3.3V或0-5V。但电流采样信号是双极性的(正负电流),而且幅值很小。所以我们需要做两件事:

  • 偏置:把双极性信号抬升到ADC的中间电平。比如0-3.3V的ADC,偏置到1.65V。
  • 增益:把小信号放大到ADC能分辨的范围。

我常用的电路结构是差分转单端+偏置。用一个运放同时完成差分放大和偏置叠加。

// 增益与偏置计算示例
// 假设:采样电阻 Rs = 1mΩ,最大电流 Imax = ±50A
// 采样电阻两端电压:Vrs = ±50mV
// ADC输入范围:0-3.3V,偏置到1.65V

// 目标:满量程输出 0.1V ~ 3.2V(留余量)
// 有效摆幅:3.1V
// 所需增益:G = 3.1V / (100mV) = 31

// 偏置电压:Vbias = 1.65V
// 实际电路:用电阻分压产生1.65V,再通过运放同相端输入

// 运放输出:Vout = G * (V+ - V-) + Vbias
// 其中 V+ 和 V- 是采样电阻两端电压

我曾经踩过的坑:

偏置电压的噪声会被增益放大!如果你用MCU的3.3V直接分压做偏置,那3.3V上的纹波(比如50mV)会被放大31倍,变成1.55V的噪声!

解决办法:用独立的基准电压源(比如REF3033),或者用运放缓冲后的分压。

4.4 完整信号调理电路结构

把上面几部分串起来,一个完整的信号调理链路是这样的:

信号调理电路完整链路 采样电阻 一阶RC滤波 差分运放+偏置 二阶有源滤波 ADC 关键设计要点: 1. 采样电阻靠近电机相线,走线要短而粗,减少寄生电感。 2. RC滤波放在运放之前,先滤除共模噪声,再放大信号。 3. 偏置电压必须低噪声,建议用独立基准源或LDO供电。 4. 二阶有源滤波的运放带宽要足够,避免引入额外相移。

这个链路里,每一级都有它的作用。采样电阻把电流变成电压;RC滤波干掉高频噪声;差分运放把微弱信号放大并叠加偏置;二阶有源滤波进一步平滑信号;最后送ADC。

我见过不少工程师为了省成本,把二阶有源滤波省了,结果ADC采样值跳得厉害,过流保护阈值只能设得很高,保护效果大打折扣。说白了,滤波电路是“花小钱办大事”的地方。

4.5 实战中的避坑指南

最后,分享几个我在项目中踩过的坑:

  • 运放输出摆幅不够:有些运放号称轨到轨,但输出离电源轨还有几十mV。如果ADC满量程是3.3V,运放输出只能到3.25V,那你就损失了1.5%的动态范围。选型时一定要看数据手册里的“Output Voltage Swing”参数。
  • PCB布局不当:采样电阻的走线如果太长,寄生电感会产生额外的压降,导致电流测量不准。我习惯把采样电阻紧挨着运放放置,走线控制在5mm以内。
  • 偏置电压的温漂:如果偏置电压随温度变化,那ADC的零点就会漂移。无感启动时,电流很小,零点漂移可能直接导致误触发过流保护。所以,偏置电压的温漂系数要控制在50ppm/°C以内。

一个小技巧:

调试时,可以用信号发生器模拟电机电流波形,从采样电阻端注入,然后逐级测量运放输出。这样能快速定位是哪一级出了问题。我每次做新板子,都会先这么测一遍,心里才有底。