3. 驱动电路设计:H桥与MOSFET驱动电路、续流二极管与保护电路、电源滤波与去耦设计
好,咱们直接进入正题。气泵的PWM控制,光有软件算法是不够的,硬件电路才是真正干活的。这一节我重点讲驱动电路,说白了就是怎么用弱电信号去控制强电负载。你想想看,单片机出来的3.3V信号,怎么可能直接驱动一个12V、电流好几安的气泵电机?中间必须有个「功率放大器」,这就是驱动电路存在的意义。
3.1 H桥与MOSFET驱动电路
座椅按摩气泵,本质上是个直流有刷电机。要控制它正转、反转、停止,最经典的就是H桥电路。为什么叫H桥?四个开关管摆成「H」形状,电机在中间横杠上。Q1和Q4导通,电机正转;Q2和Q3导通,电机反转。就这么简单。
但在实际项目中,我很少用分立元件搭H桥。为什么?四个MOS管的栅极驱动、死区时间控制、过流保护,这些细节太容易出问题了。我踩过最大的坑就是——死区时间没设好,上下管直通,MOS管瞬间冒烟。嗯,那味道,一辈子忘不了。
我个人习惯用集成H桥驱动芯片,比如DRV8837、L9110S这类。它们内部集成了电荷泵、死区控制、过流保护,外围只需要几个电容电阻。对于座椅按摩这种对成本敏感、但对可靠性要求高的场景,集成方案比分立方案靠谱得多。
关键参数选择:
- MOS管耐压:至少2倍电源电压。12V系统选30V以上的管子。
- 导通电阻Rds(on):越小越好,一般选50mΩ以下,否则发热严重。
- 栅极电荷Qg:影响开关速度。Qg越小,开关损耗越低。
如果你非要自己搭分立H桥,我建议用N沟道MOS管做下管,P沟道做上管。但P管的选择少、价格贵,所以很多设计用N管做上下管,上管需要自举电路。嗯,这里要注意,自举电容的容量和耐压要算好,我见过有人用10μF的电容,结果频率一高,自举电压掉下来,上管驱动不足,发热严重。
// 典型H桥PWM控制逻辑(伪代码)
void motor_forward() {
// Q1和Q4导通
GPIO_HIGH(PIN_Q1_GATE);
GPIO_LOW(PIN_Q2_GATE);
GPIO_LOW(PIN_Q3_GATE);
GPIO_HIGH(PIN_Q4_GATE);
}
void motor_reverse() {
// Q2和Q3导通
GPIO_LOW(PIN_Q1_GATE);
GPIO_HIGH(PIN_Q2_GATE);
GPIO_HIGH(PIN_Q3_GATE);
GPIO_LOW(PIN_Q4_GATE);
}
void motor_stop() {
// 全部关闭,或者低边制动
GPIO_LOW(PIN_Q1_GATE);
GPIO_LOW(PIN_Q2_GATE);
GPIO_LOW(PIN_Q3_GATE);
GPIO_LOW(PIN_Q4_GATE);
}
3.2 续流二极管与保护电路
电机是个感性负载。你关断MOS管时,电流不能突变,会产生一个反向电动势。这个电压可能高达几十伏,如果不处理,直接击穿MOS管。续流二极管就是给这个反向电流提供一个回路。
我见过有人图省事,用MOS管内部的体二极管当续流管。行不行?应急可以,但体二极管恢复速度慢、压降大,高频PWM下发热严重。我建议外接肖特基二极管,比如SS34、SS54这类。肖特基管正向压降只有0.3V左右,反向恢复时间几乎为零,非常适合高频开关场合。
选型建议:
- 续流二极管的额定电流至少是电机峰值电流的1.5倍。
- 反向耐压至少是电源电压的2倍。
- 尽量靠近MOS管放置,走线要短粗。
除了续流二极管,保护电路还包括:
- 过流保护:在电源输入端串一个采样电阻,检测电流。超过阈值就关断PWM。我曾经在一个项目中没加这个,结果气泵堵转,电流飙到5A,MOS管直接烧了。
- 欠压保护:电源电压低于某个值,关断驱动,防止MOS管工作在放大区。
- 温度保护:在MOS管附近放一个NTC热敏电阻,温度过高就降频或停机。
警告:千万不要在电机两端并联TVS管来吸收反向电动势!TVS管是瞬态抑制用的,不能持续吸收能量。正确做法是用续流二极管+RC吸收电路。
3.3 电源滤波与去耦设计
气泵电机启动瞬间,电流冲击很大。如果电源滤波没做好,整个系统的电压都会被拉低,单片机可能复位,触摸屏可能乱跳。我遇到过最离谱的一次,气泵一启动,蓝牙音箱就断连——就是因为电源纹波太大,干扰了蓝牙模块。
电源滤波分两级:
- 前级滤波(大电容):在电源入口放一个大电解电容,比如470μF/25V。这个电容负责储能,应对电机启动时的电流冲击。
- 后级去耦(小电容):在每个芯片的电源引脚附近放一个0.1μF的陶瓷电容。这个电容负责滤除高频噪声,保证芯片供电干净。
| 电容类型 | 容量 | 作用 | 放置位置 |
|---|---|---|---|
| 电解电容 | 100~1000μF | 储能、滤除低频纹波 | 电源入口 |
| 陶瓷电容 | 0.1μF | 去耦、滤除高频噪声 | 每个IC电源引脚 |
| 钽电容 | 10~47μF | 中频滤波、ESR低 | 电源输出端 |
布局上有个原则:电容离负载越近越好。我见过有人把去耦电容放在板子角落,走线绕了大半个板子才到芯片引脚——那基本等于没放。正确的做法是:电容放在芯片背面,通过过孔直接连到电源和地引脚,走线长度不超过5mm。
另外,电源走线要加粗。电机驱动部分的电源线,我一般用2mm以上的宽度,或者直接铺铜。地线也一样,最好用大面积地平面,减少回路电感。你想想看,回路电感大了,开关瞬间会产生电压尖峰,干扰整个系统。
我的个人习惯:在电源入口加一个磁珠,串联在电源线上。磁珠能抑制高频噪声,但要注意磁珠的额定电流要大于电机峰值电流,否则磁珠会饱和,失去作用。
最后说一个容易被忽略的点——电源的「地」要分开。电机驱动部分的地(功率地)和单片机、传感器部分的地(信号地)要单点连接,或者用0Ω电阻/磁珠隔开。否则,电机的大电流会在地线上产生压降,干扰信号地的电位。我吃过这个亏,ADC采样值一直跳,查了两天才发现是地线干扰。
嗯,这一节内容不少。驱动电路是硬件的基础,基础不牢,后面PWM调得再好也没用。下一节我们讲PWM频率选择和占空比控制策略,到时候会结合具体的噪声测试数据来讲,更有意思。