做电机驱动的同行应该都有过这种经历:明明MCU那边的控制算法写得挺顺,结果一到功率级就翻车。栅极驱动要配、死区时间要调、电流采样要自己搭运放、过流保护靠软件硬扛,最后PCB上一堆分立元件,调试时示波器一夹全是振铃。最近Microchip放出的两款高集成电机驱动新品,正好打在这些痛点上——一颗芯片把H桥/栅极驱动、电流检测运放、保护逻辑和PWM调理全装进去,外围元件大幅缩减,对做空心杯电机、机器人小车、泵阀和低压BLDC的工程师来说,是个值得认真看看的方案。这篇文章会把这两款新品的技术思路、核心电路细节和配套软件策略拆开讲清楚,同时也聊聊和L298N、TB6612这些常见模块的差异,适合正在做电机驱动选型、或者想把手上的分立方案换成集成方案的工程师参考。
1. 产品定位与整体设计思路
1.1 两颗芯片各自瞄向什么场景
先说结论:这次Microchip的布局非常清楚,一颗管“小功率有刷”,一颗管“中功率无刷/步进”。小功率这颗,目标就是空心杯电机、微型泵、电动玩具、手持工具里的微型电机,工作电压基本在2V到12V之间,封装小,能塞进空间受限的板子。它的核心是把一个完整H桥、电流采样运放、PWM逻辑和过流/过温保护全部集成进去,MCU只需要输出两路PWM或者一路PWM加方向信号,电机就能转起来。
另一颗则瞄准中功率三相无刷电机和步进电机应用,集成度更高,内部有三相栅极驱动、电荷泵、电流检测放大器和比较器,可以直接搭配外部MOSFET使用,适合电池供电的BLDC工具、小型风机、工业泵这类需要持续运行又对功耗敏感的场合。两颗芯片形成了清晰的搭配关系:小功率的做简单驱动,中功率的配合外部功率管做更大电流输出,客户从低压微电机一直做到几十瓦的电机,都能用同一家方案。
从Microchip自己的产品线逻辑来看,这两颗芯片补上了“MCU到功率级”之间最麻烦的那段。因为很多工程师在选STM32、PIC或者AVR做控制时,驱动部分常常要另外找供应商,不同芯片之间的电平、时序、保护逻辑都要自己去对接。现在驱动芯片和MCU做成一家方案,至少在参考设计、代码库和调试工具上能少踩很多坑。
1.2 为什么选择“高集成”而不是分立MOSFET方案
之前做小型电机驱动,很多人习惯用分立MOSFET搭H桥,觉得成本低、管子可以随便选。这个思路在评估阶段没问题,但到了量产和可靠性验证阶段,分立方案的隐性成本会慢慢浮出来:栅极驱动器的选型要考虑峰值电流和米勒平台,死区时间要自己算,过流保护要额外加比较器,PCB布局稍不注意,母线寄生电感就能让管子炸给你看。集成方案就是把这些“经验活”全部固化到芯片内部,外部需要关心的只剩电源、逻辑输入、采样电阻和电机。
当然,集成方案不是没有代价。首先是灵活性下降,你不能随便换更大电流的MOSFET来硬扛负载;其次是单颗成本通常比分立方案略高。但换个角度算账:省下的PCB面积、调试时间、物料种类和故障率,对大多数中小批量产品来说,综合成本反而更低。尤其是空心杯电机这类低电感、高转速负载,对驱动器的开关速度和过流响应要求很苛刻,自己搭分立电路很难做到芯片内部那种纳秒级关断,这就是高集成方案的核心价值。
2. H桥与电流检测运放:读懂芯片内部的关键电路
2.1 H桥的基本工作逻辑
先说小功率那颗芯片里的H桥。所谓H桥,就是四个开关管接成“H”形状,电机接在中间横臂上。两个上管分别接电源正极,两个下管分别接地,通过对角导通来改变电机电流方向,从而实现正反转。实际工作时不能四个管子全开,否则就是电源到地直通,瞬间烧毁,所以芯片内部必须做死区控制——也就是在切换导通管时,先关断当前导通的管子,等一小段安全时间再打开另一只。
对于使用者来说,你不需要自己去搭那四个管子,但要理解芯片输入的逻辑。典型接法是:一个PWM引脚控制调速,一个方向引脚控制正反转,还有一个使能引脚控制整个桥的通断。有些芯片也支持独立半桥模式,两个输入分别控制左右桥臂,这样可以用一个H桥同时驱动两台直流电机。这些工作模式通常由芯片的输入引脚电平组合决定,选型时要确认是否兼容你MCU上现有的引脚资源。
H桥内部的同步整流也值得注意。电机是感性负载,PWM关断瞬间电流不能突变,必须给续流回路。很多集成芯片用的是同步整流,即PWM关断期间由MOSFET的沟道而非体二极管来续流,这样压降小、发热低。这一特性对空心杯电机特别重要,因为空心杯电机电感量很小,电流纹波大,如果靠体二极管续流,效率会很难看,芯片和电机都会发烫。
2.2 H桥接运算放大电路到底有什么用
不少初学者看到电机驱动芯片内部框图里有个运放,不理解为什么要加这么一块。其实这个运放存在的唯一目的,就是处理电流采样电阻上的微弱信号。H桥底部通常会串联一个毫欧级的采样电阻,电机电流流过这个电阻时会产生一个很小的电压,比如10A电流配5毫欧电阻,压降也只有50mV。这么小的信号直接送给MCU的ADC,一是分辨率不够,二是极易受功率地噪声干扰。
运算放大电路在这里起到三个作用:一是放大,把几十毫伏的小信号放大到ADC适合采集的电压范围,比如0到3.3V;二是滤波,通过外围电容把电流信号中的高频开关噪声滤掉;三是电平平移,有些运放结构还能把双极性的电流信号转换为单极性输出,让MCU可以判断电机是正转还是反转。
用个生活化类比:电流采样就像在一根很细的线上量距离,直接用肉眼读刻度肯定误差巨大,运放就是那把放大镜,把刻度放大到你读得清、记得准。没有这把放大镜,你后面做的所有限流、堵转保护、转矩估算都是空中楼阁。现在很多集成驱动芯片把这个放大镜直接内置了,你只需要在外部放一个采样电阻和两个增益设定电阻,甚至在部分型号里连增益电阻都做好了,直接输出一个与电流成比例的电压。
2.3 采样电阻布局与增益设定的实操细节
虽然芯片集成度高,但采样电阻和运放的增益电阻这些“外围”仍需自己接。这里有一条铁律:采样电阻必须靠近芯片的采样引脚,用开尔文接法单独走线,不能和功率回路共用一根粗线。因为采样电阻两端如果有功率电流流过,PCB铜箔本身的电阻也会产生压降,混入采样信号里,导致电流读数偏高偏低,保护误动作。我曾经见过一个案子,采样电阻和功率地线共用了一段3厘米长的走线,空载电流读数就有0.8A的误差,怎么调增益都拉不回来,最后切开铜皮单独飞线才解决。
增益电阻的选择则取决于你的采样范围和ADC参考电压。比如采样电阻取10毫欧,最大目标电流5A,那么满量程压降是50mV;如果希望满量程时运放输出2.5V(留一点裕量),需要的放大倍数是50倍。有些芯片的运放增益是固定的,有些需要外部电阻设定,后者在量产时就要注意电阻精度和温漂,误差会直接影响过流保护点。我的习惯是先设定一个偏保守的保护阈值,实测带载波形后再微调,而不是一上来就按理论值把增益拉满。
3. 软件侧配合:PWM调速与保护程序的设计思路
3.1 空心杯电机的PWM频率选择
芯片选定之后,软件端第一件事就是定PWM频率。空心杯电机因为有转子惯量小、电感量小的特点,PWM频率不能太低。如果PWM频率在几百赫兹,电流纹波会非常大,电机会发出尖锐的啸叫,而且换向火花会加速电刷磨损。我自己做微型无人机桨叶电机时,一般把PWM频率放在20kHz以上,一是避开人耳可听范围,二来电流纹波明显减小。但同时要注意,MCU的PWM分辨率会随频率升高而下降,比如工作在64MHz的MCU,20kHz PWM下分辨率大约只有12位左右,如果频率升到100kHz,分辨率可能就掉到不够用了。
对于铁芯有刷电机,因为本身电感大,电流连续性好,PWM频率可以适当低一些,8kHz到20kHz之间都能接受。但低频率会让电流纹波变大,对采样电流做滤波时要权衡延迟。这里有一个通用经验:采样电流的滤波时间常数不要超过PWM周期的十分之一,不然电流环响应会滞后太多,容易造成堵转保护不及时。
3.2 电流反馈的读取与软件滤波
不管芯片内置运放有多好,送到MCU ADC的电流信号总会有噪声。ADC采样时机建议与PWM同步,在PWM导通中间点采样,这样采到的是电流纹波的平均值附近。很多MCU支持PWM触发ADC采样,也就是在PWM定时器溢出或匹配事件时自动启动转换,省了中断里反复等待的麻烦。
软件滤波方面,我的做法通常是在同步采样的前提下再加一阶低通滤波,公式大概是filtered_value = filtered_value * 0.9 + raw_value * 0.1,系数可以根据实际噪声调整。如果要做堵转保护,不能直接看瞬时电流,而要看一段时间内的平均电流,比如连续50ms电流超过额定值的150%,就认为堵转,需要进入保护流程。这个时间和阈值不能一刀切,因为电机启动瞬间电流本来就很大,如果把启动电流误判为堵转,设备一上电就保护,也是问题。
3.3 用PIC16F实现过流保护的状态机
驱动芯片内部有硬件比较器,可以快速关断输出,但MCU侧仍然需要一套保护状态机来决定“何时恢复、何时彻底停机”。以PIC16F系列为例,可以先把内部比较器配置为参考电压比较采样电流,一旦超过阈值就触发中断,中断里立刻关闭PWM输出。此时不要立即自动恢复,而应该进入一个故障等待状态,等100ms再尝试重启。如果多次重启仍然过流,就锁死输出,等待人工断电或上位机指令。
一个简化版的伪代码逻辑是这样的:
typedef enum { RUN, FAULT_WAIT, FAULT_LOCK } state_t; void motor_control_isr() { if (overcurrent_flag) { PWM_Disable(); state = FAULT_WAIT; fault_timer = 100; // 100ms后尝试恢复 } } void motor_control_main_loop() { switch (state) { case RUN: PWM_Update_Duty(target_speed); break; case FAULT_WAIT: if (fault_timer == 0) { if (current_reading() < limit_threshold) { PWM_Enable(); state = RUN; } else { retry_count++; if (retry_count >= 3) state = FAULT_LOCK; } } break; case FAULT_LOCK: PWM_Disable(); // 等待外部复位指令 break; } }这段代码里最容易被忽略的是PWM的重新使能时序:重新使能前一定要确认电流已经降下来,而不是时间一到就开。如果电机此时仍然堵转,一开PWM就会再触发过流,反复重启容易把驱动芯片或电机烧坏。另外,故障锁死后最好通过串口或LED给出明确指示,方便现场排查,这个细节在量产设备里特别重要。
4. 从L298N、TB6612到新集成驱动:选型的现实问题
4.1 几类常见驱动方案的特性对比
很多电子爱好者入门时用的都是L298N、L293D或者TB6612模块,这些模块在教学中非常经典,但和新一代高集成驱动芯片放在一起比较,差距就很明显了。
| 方案 | 典型电压 | 最大电流 | 集成度 | 主要痛点 | 适合场景 |
|---|---|---|---|---|---|
| L298N | 5V-35V | 2A(峰值) | 分立功放+H桥 | 压降大、发热严重、开关速度慢 | 教学实验、简单小车 |
| L293D | 4.5V-36V | 0.6A | 双H桥 | 电流小、内置续流二极管压降大 | 小电流玩具、教学 |
| TB6612 | 2.7V-13.5V | 1.2A | 双H桥+逻辑 | 电流有限,无内置保护 | 小型机器人小车 |
| Microchip新集成驱动(小功率) | 2V-12V | 数A级 | H桥+运放+保护 | 货期/价格需确认 | 空心杯电机、手持设备 |
| Microchip新集成驱动(中功率) | 6V-48V | 外部MOSFET决定 | 三相栅驱+运放+保护 | 需自配MOSFET | BLDC、步进、风机、泵 |
从表格里能看出一个趋势:L298N这类方案在工作电压范围上并不差,但它的功率管饱和压降太大,大电流下的发热和损耗是硬伤。TB6612做得小巧,逻辑电平兼容好,但电流规格限制了使用上限。新的集成驱动则把运放、保护、PWM统统做进去,在外围元件数量上至少能少掉十几个电阻电容,这对产品小型化的意义不言而喻。
4.2 替换现有驱动模块时最容易踩的坑
如果你现在用的是TB6612模块,想换成Microchip这颗小功率驱动,有几个地方需要特别核对。一是逻辑电平,老模块很多是3.3V和5V兼容,新芯片虽然也兼容,但输入引脚的拉电流能力可能不同,MCU引脚驱动不足时要加缓冲。二是PWM模式,有的芯片是“一路PWM一路方向”,有的是“两路PWM独立半桥”,代码里的定时器配置和输出逻辑都要改,不能直接把TB6612的库函数搬过来用。三是芯片的休眠/待机引脚,别悬空,按数据手册接法处理好,否则可能出现上电不工作或者静态电流异常。
另一个隐形问题是散热焊盘的处理。小封装芯片底部的散热焊盘不只是一个电气连接点,更是主要的散热通道,PCB上必须有对应的铜皮和过孔阵列。我做样机时就吃过亏,手里这颗芯片第9脚和底部焊盘是同一个网络,结果layout时图省事只连了一个过孔,电机一跑起来芯片热到烫手,电流稍大就触发过温保护,后来重新铺了铜皮和阵列过孔才好转。集成驱动省的是分立元件,但热设计这门功课一点都省不掉。
5. 从零搭建一块驱动板的实操注意点
5.1 最小系统电路的接线步骤
花点时间讲一下如何用这颗小功率集成驱动搭出最小系统,步骤其实不复杂,但每一步都有讲究。
第一步,电源输入。芯片的VM引脚(电机电源)和VCC引脚(逻辑电源)要分开走线,两者之间各放一个10uF陶瓷电容加0.1uF高频电容。陶瓷电容要尽可能靠近芯片引脚,距离超过3mm效果就会打折扣。电机的启动电流瞬间很大,电源电压会被拉低,如果电源离得远,建议在VM引脚再加一个100uF电解电容做储能。
第二步,逻辑接口。把MCU的PWM、方向、使能引脚分别接到芯片对应引脚,中间不需要串联电阻(除非MCU和驱动芯片的电压域不一致,这时候要用电平转换)。注意上电时序:先给逻辑电源,再给电机电源,很多芯片要求逻辑电源先稳定,否则内部逻辑可能进入未知状态。
第三步,采样电阻。按前面说的开尔文接法,采样电阻两端的走线分别引到芯片的采样引脚,不能在电阻下面走功率线。在采样电阻两端并联一个几十皮法的电容做高频滤波,电容太大会让电流信号变圆滑,影响过流保护的响应速度,这个取舍要平衡。
第四步,电机接线。电机两根线可以直接接到芯片的OUT1、OUT2,但电机本身是噪声源,如果电机引线较长,建议在电机端子处并联一个0.1uF瓷片电容和一个小电感做EMC滤波。否则传导发射可能过不了认证,也容易让MCU复位。
5.2 调试时示波器该看哪些点
硬件焊好之后,先别急着写完整代码。上电后先确认逻辑电源电压正常、待机电流在数据手册范围内。然后用示波器同时夹住PWM输入和电机输出,空载点动,看输出波形是否跟随输入。很多集成芯片内部有灌入死区/延时,输出沿会比输入沿略晚,这个正常,但如果输出上升沿出现明显振铃,就要检查电源去耦和地线回路。
接着看电流采样输出。用示波器DC耦合夹住运放输出引脚,在电机堵转时应该能看到电压突然抬高,这个抬升值要和采样电阻、增益的理论计算值吻合。如果实测比理论低很多,多半是采样电阻焊错或者运放增益配置不对;如果比理论高,先怀疑地线噪声耦合。最后再带载测试,把电流波形和速度波形对应起来,确认没有异常的毛刺和振荡。
5.3 常见问题与排查速查表
这里把我在调试集成驱动时遇到过的典型问题整理成一张速查表,方便大家遇到类似现象时快速定位。
| 现象 | 最可能原因 | 排查方向 |
|---|---|---|
| 上电即过流保护 | 电机线短路、H桥直通、使能引脚电平错误 | 断开电机量电压,检查输入逻辑,确认EN引脚状态 |
| 电流采样读数明显偏高 | 采样电阻走线和功率地共用、参考电压不准 | 改用开尔文接法,核对ADC参考电压 |
| 电流采样读数偏低 | 采样电阻阻值不对、增益电阻错焊 | 万用表量电阻,按数据手册重新计算增益 |
| 轻载时芯片发热严重 | 散热焊盘没焊好、PWM频率过低导致开关损耗大 | 检查底部焊盘焊接、提高PWM频率 |
| 电机低速抖动 | 死区时间/换向逻辑问题、PWM分辨率不够 | 调整PWM频率或增加分辨率,确认方向切换逻辑 |
| 一加负载就触发过温 | 散热设计不足、电流超过实际规格 | 增大铜皮面积,检查负载电流是否超标 |
| 偶尔上电不转 | 逻辑电源和电机电源上电时序问题 | 调整上电时序,增加逻辑电源先稳定的延时 |
6. 一些个人体会:这颗芯片真正改变的是什么
如果你过去几年一直用分立元件做电机驱动,第一次用这种高集成度芯片时,最直观的感受不是板子变小了,而是调试过程变得“无聊”了——以前PWM一开就炸管、一堵转就烧驱动的情况变少了。芯片把最危险的功率级部分用内部电路保护起来,让工程师能把精力集中在控制算法和系统行为上。这个变化对产品开发节奏的影响很大,样机从画板到跑通的时间能缩短不少。
不过我也要说句公道话:集成驱动不是万能灵药。它救不了不合理的供电设计,也替代不了对电机本身特性的理解。空心杯电机也好、普通有刷电机也罢,你仍然得知道负载的启动电流、堵转电流和温升曲线,才能设定好保护阈值。芯片给了你一整套“安全网”,但真正决定产品能不能长期可靠运行的,还是你对系统整体的把握程度。
最后分享一个我在评估板阶段经常用的小技巧:新芯片到手后,第一件事不是看数据手册里的绝对最大额定值,而是先找官方的应用笔记里关于“电路板布局建议”那一章,照着里面的推荐布局画一版最小系统板。等板子跑起来再逐步改动,观察参数变化。很多集成驱动芯片的“秘密”都藏在官方参考设计里,比自己埋头琢磨PCB布局省力得多。这次Microchip的两款新品,如果配套的评估板和示例代码到位,应该也能让你少走不少弯路。