3. 电流检测电路设计:采样电阻选型、运放电路设计、ADC接口设计、PCB布局注意事项
各位同学好,我是老张。今天咱们聊一个非常实在的话题——电流检测电路。说白了,就是怎么把电机里流过的电流,变成单片机能够读懂的电压信号。
你可能会问,为什么要单独讲这个?我在做按摩仪项目时吃过亏。有一次样机测试,电机堵转保护总是不灵,查了两天才发现是电流检测电路在高频噪声下直接"罢工"了。从那以后,我对这部分电路的设计就格外上心。
3.1 采样电阻选型:别小看这颗小电阻
采样电阻,也叫检流电阻。它的任务很简单:电流流过它,产生一个微小的压降,我们测量这个压降就知道电流大小了。
选型时,我一般关注四个参数:
- 阻值:按摩仪电机正常工作电流在几百毫安到2安培之间。阻值选大了,发热严重;选小了,信号太弱。我个人习惯选10mΩ到50mΩ之间。
- 功率:这个容易算,P = I²R。比如2A电流、20mΩ电阻,功率就是0.08W。但我会留2倍余量,选0.25W或0.5W的。
- 精度:堵转检测对精度要求没那么苛刻,±1%足够了。但温漂要注意,我建议选±50ppm/℃以内的。
- 封装:2512或1206都行。太小了散热不好,太大了占地方。
3.2 运放电路设计:把微小信号放大
采样电阻上的压降通常只有几十毫伏,ADC直接读肯定不行。我们需要一个运放来放大。
这里我推荐用差分放大电路。为什么?因为电机驱动是PWM波,共模电压很高,差分结构能有效抑制共模干扰。
一个经典的电路是这样的:
V+ ----[R1]----+----[R3]---- Vout
|
[R2]
|
GND
V- ----[R4]----+
|
[R5]
|
Vref
放大倍数由电阻比值决定:Gain = R3 / R1。我一般设放大倍数在20到50倍之间。举个例子,20mΩ电阻、2A电流产生40mV压降,放大50倍就是2V,刚好在3.3V ADC的量程内。
运放选型时,注意三点:
- 轨到轨输入输出:这样信号能接近电源轨,不浪费ADC量程
- 低失调电压:最好小于1mV,否则零点漂移会让你怀疑人生
- 带宽:按摩仪电机PWM频率一般在20kHz左右,运放带宽有1MHz就够用了
3.3 ADC接口设计:信号进单片机前的最后一道关
运放输出信号送到ADC之前,还有几个细节要注意。
第一,加RC低通滤波。 电机电流里有很多高频毛刺,不滤掉的话ADC读数会跳来跳去。我一般用100Ω电阻加0.1μF电容,截止频率大约16kHz,够用了。
第二,加钳位二极管。 万一运放输出超过ADC的耐压范围,二极管能把电压钳在安全范围内。两个BAV99对地和对VCC,成本几分钱,但能保护几百块的单片机。
第三,ADC采样时机。 这个很多人会忽略。PWM导通和关断时电流波形不一样,你如果在关断时刻采样,读到的电流是0,那堵转检测就失效了。我习惯在PWM导通中间时刻触发ADC采样,这样最稳定。
// 伪代码示例:在PWM中间时刻触发ADC
void PWM_IRQHandler(void) {
static uint8_t count = 0;
count++;
if (count == PWM_PERIOD / 2) {
ADC_StartConversion(); // 在PWM导通中间采样
count = 0;
}
}
3.4 PCB布局注意事项:细节决定成败
电路设计好了,PCB布局搞砸了,一切白搭。我见过太多这样的案例了。
布局时,我遵循几个原则:
- 采样电阻靠近电机:电流回路越短越好,减少寄生电感
- 运放靠近采样电阻:差分信号线要短,而且要等长、平行走线
- 模拟地和功率地分开:在ADC芯片下方单点连接,避免大电流干扰小信号
- 远离电感类器件:电机驱动电感、DC-DC电感都会产生强磁场,尽量把电流检测电路放在PCB边缘
另外,铺铜也很重要。采样电阻下面的铜皮要足够宽,保证散热。但注意,铜皮不要延伸到运放输入引脚附近,否则热电势会影响精度。
好了,关于电流检测电路,我就讲这么多。说白了,采样电阻选对、运放搭好、ADC接稳、PCB布好,这四个环节环环相扣,哪个都不能马虎。下一节咱们聊聊软件层面的堵转检测算法,到时候你会看到,硬件和软件配合好了,才能真正做到万无一失。