ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

微型双路H桥驱动板设计实战:从MOS管选型到堵转保护

2026/8/30 23:48:56 拓冰建站 浏览量
微型双路H桥驱动板设计实战:从MOS管选型到堵转保护 有刷直流电机Brushed DC Motors的驱动绕不开一个名字H-Bridge。这个概念看着简单真正做一块“Tiny”级的双路驱动板时体积、发热、死区、堵转保护全都会找上门。我最近一直在折腾一个小型双轮机器人电机选的是N20减速电机供电是单节锂电加升压到6V底盘留给驱动板的位置只有两个拇指甲盖大小。起初以为买两块现成模块焊上去就行结果被模块的排针高度和杜邦线接触电阻折磨得够呛干脆自己画了一块双路H桥驱动板。这篇文章从方案选型、器件参数、PCB布局到控制策略、故障复盘完整记录我踩过的坑和最终跑通的方案给同样喜欢从零焊板子的朋友做个参考。1. 设计指标怎么定微型双路H桥到底要“多小才算小”很多人一上来就找驱动芯片、画原理图结果板子画到一半发现电机接口、电源输入、控制排针怎么都塞不下。我第一版就是吃了这个亏。所以先别急着画图第一步是明确这块驱动板到底要放进什么样的空间、驱动什么样的电机。1.1 缩小体积的真正瓶颈是什么体积这个指标不是由芯片封装决定的而是被“发热”和“接线”卡死的。集成H桥芯片本身可以做得很小比如4mm×4mm的QFN封装但如果你在板子上排了四个大电流接线端子、两个电解电容、一个逻辑电源稳压器那板子再怎么优化也小不到哪去。我最初的目标是整块板不超过22mm×25mm双路电机接口用2.54mm间距的插针电源和控制信号从同一侧引出。这个尺寸下所有电容必须用贴片封装电解电容只能放在侧面或者干脆用聚合物钽电容。接线端子更是要砍到最少一路电源输入、一路正负极电机输出控制信号直接用软排线或插针接MCU不要再加防反接插座。1.2 从电机参数反推电路指标设计驱动板之前必须先拿到电机的真实参数不能只看额定电压和空载转速。我用的N20 6V电机官方标称空载电流约60mA但堵转电流能到1A以上。这个堵转电流才是设计H桥时真正的“锚点”。电机的等效模型是电感串联电阻再串联一个反电动势源。电机静止时反电动势为零启动瞬间输入电压几乎全加在绕组电阻上所以堵转电流大概等于供电电压除以绕组电阻。比如6V供电、绕组电阻5Ω堵转电流就是1.2A。电机反转时情况更恶劣因为要先克服原有反电动势电流峰值往往比堵转电流还高。所以驱动板的热设计和限流保护都得按2A这个量级准备而不是按额定电流算。1.3 把指标写下来后面所有选型才不会跑偏我最后定下的指标是这样的参数设计指标备注输入电压3.7V ~ 8.4V兼容单节/双节锂电单路持续电流0.8A按电机正常负载留余量单路峰值电流2A对应堵转和启动PWM频率20kHz避开音频兼顾开关损耗待机电流 20uA电池供电必须考虑保护功能过流、堵转、欠压软件硬件配合板面积22mm × 25mm双路完整驱动这个表格是我在Excel里反复调出来的不是拍脑袋。持续电流0.8A是因为N20正常工作时电流大概在100mA到300mA但地面对轮子的阻力变化会带来瞬态负载峰值2A则覆盖了堵转和反向冲击。有了这个表后面选芯片、画PCB、写固件都有了依据。2. 分立MOS管方案Vgs(th)才是低压选型的第一道门槛第一版我其实没有直接用集成驱动芯片而是想“既然是微型H桥那自己搭四个MOS管应该最可控”。这个想法本身没错但低压小尺寸场景下分立MOS管的选型坑远比你想象得多。2.1 低压H桥的拓扑选择H桥有几种常见搭法全N沟道、全P沟道、PN混合。全N沟道导通电阻最低但上管需要自举电路或者电荷泵把栅极电压抬到比电源高低压系统里这本身就占不少面积和成本。全P沟道倒是驱动简单但P沟道MOS的同电压等级下导通电阻普遍比N沟道大发热更明显而且可选的低压小封装型号少。PN混合是比较实际的方案上管用P沟道MOS管下管用N沟道MOS管。这样栅极不需要电荷泵输入高电平就能关断下管、通过反相逻辑控制上管。我最初选的是AO3401A做上管、AO3400A做下管都是SOT-23封装最大漏极电流在4A左右看起来足够2A峰值。2.2 低压选型先看Vgs(th)再看Rds(on)很多人选MOS管第一眼看最大电流和导通电阻但在3.3V到5V这种低压控制系统里最关键的参数是栅极阈值电压Vgs(th)和栅极驱动电平下的通态电阻Rds(on)。以AO3400A为例它的Vgs(th)典型值在0.7V左右在Vgs4.5V时Rds(on)约40mΩAO3401A P沟道在Vgs-4.5V时Rds(on)约55mΩ。这两个值听着不错但如果你用3.3V单片机直接驱动实际Vgs只有3.3VRds(on)可能上升到70到90mΩ甚至更高。如果选了一颗Vgs(th)标称2.5V的“逻辑电平MOS”3.3V驱动它就非常危险可能工作在放大区MOS管变成电阻一通电就烫手。2.3 Rds(on)和Qg对小型化的影响怎么算MOS管的导通损耗公式很简单P I² × Rds(on)。以一个H桥为例上管和下管各有一个导通电阻电流1A时上下管合计按100mΩ算损耗就是1²×0.10.1W。听起来不多但堵转2A时损耗变成0.4W集中在两个SOT-23封装里热量就明显了。开关损耗容易忽略。MOS管栅极电荷Qg决定了开关需要的驱动能力AO3400的Qg大概在10nC量级20kHz频率下平均栅极驱动电流只有0.2mA似乎很小。但开关瞬间需要在几十纳秒内把栅极电荷充满MCU的GPIO灌电流能力通常只有几毫安到十几毫安这会让开关时间拉长到几百纳秒MOS管长时间工作在放大区开关损耗急剧增加。实际表现就是板子能转但驱动IC或者MCU发热严重波形一塌糊涂。2.4 体二极管续流能用但别让它“过度加班”有刷直流电机是强感性负载PWM关断瞬间电流不能突变必须给电流一个续流回路。分立H桥里通常靠MOS管的体二极管续流。体二极管压降大反向恢复时间也不算理想但低压小电流场景下确实能用。问题是死区时间如果不够两个管子同时导通电源直接短路那电流根本不是流过电机而是流过MOS管沟道。我在测试中出现过上下管同时导通板子上的铜箔都能看见颜色变暗。所以自己搭分立方案死区处理非常关键而这个问题在集成驱动芯片里基本被内部逻辑解决了。3. 转到集成双H桥芯片之后最小外围电路与旁路电容的摆放被分立方案折腾了两版之后我决定把H桥部分交给集成芯片。这不是“认输”而是“Tiny”尺寸下最务实的做法集成芯片把两个H桥、死区时间、过流保护都封装在一个小封装里外围元件能少到极致。3.1 为什么集成芯片最终胜出我对比了市面上几款常用的小型双H桥驱动芯片重点候选是DRV8833和TB6612。DRV8833支持2.7V到10.8V每通道能到1.5A RMS、2A峰值内部自带防直通和过流保护TB6612电压范围更高但待机电流稍大外围也多一点。对于我的项目DRV8833系列的QFN封装尺寸和低待机特性更合适所以第一版集成方案就选了它。后来做堵转保护时我换成了带电流镜像输出的驱动芯片。这类芯片会在芯片内部采样低边MOS管的电流通过IPROPI引脚输出一定比例的电流外部接一个电阻就能转成电压给ADC。相比外置采样电阻加运放这种方式省掉了一个运放和一堆反馈电阻板面积和BOM都大幅下降。这就是集成方案在“Tiny”项目里最有价值的地方你不是在买一个功能而是在买一个已经替你处理好工程细节的模块。3.2 最小外围电路具体长什么样集成双H桥芯片的外围电路非常精简。以一颗带电流输出的双H桥芯片为例我会列出这几颗元件元件作用选型建议芯片VM引脚旁路电容吸收开关瞬间脉冲电流10uF X7R 0805 100nF C0G 0402逻辑电源去耦电容滤除逻辑电源毛刺100nF 0402电源输入大电容吸收电机启动/反转浪涌100uF 聚合物电容或钽电容IPROPI采样电阻把镜像电流转换成ADC电压按目标限流值计算TVS管吸收电源尖峰按最高工作电压选择IN/EN下拉电阻防止MCU未上电时引脚悬空10kΩ 0402IPROPI电阻的计算方式不算复杂芯片数据手册会给出电流镜像比例K采样电阻Rsense上的电压等于I_motor × K × Rsense。如果你希望1.2A时ADC读到1V而比例是1/1000那么Rsense就是1V / (1.2A / 1000) ≈ 833Ω。实际取820Ω或910Ω再在固件里做校准。3.3 VM引脚旁的旁路电容不是随便放的这是我在集成方案里踩过最隐蔽的坑。原理图画对了芯片型号也没问题但PWM一跑起来VM电压就出现明显的振铃严重时能砸到芯片内部稳压器的极限。原因就是10uF旁路电容离VM引脚太远中间走线形成的寄生电感在开关瞬间产生了谐振。旁路电容的摆放原则是电容靠近芯片电源引脚连线要短而粗并且VM电容的接地端要直接回到芯片的PGND引脚附近而不是先绕到远处的地平面。芯片每一次PWM开关都要从VM电容抽取脉冲电流如果回路电感太大电容就像没有一样。实际布局中10uF电容放在芯片VM引脚同一侧距离不超过1.5mm100nF小电容贴着VM引脚放置这两个电容共同组成宽带去耦。逻辑电源和VM电源建议分开走避免功率开关噪声串进逻辑部分。4. 20mm见方PCB的功率回路、地平面与散热铜皮确定用集成芯片后PCB布局成了决定成败的关键。20mm×25mm的板子不大但要把双路H桥、采样、控制信号都装进去每一毫米走线都值得斟酌。4.1 让功率回路面积最小H桥的功率电流回路是VM引脚进入经过高边MOS管从OUT1流出到电机再从OUT2回到低边MOS管最后经过PGND回到电源负极。这个回路面积越小寄生电感越小开关尖峰就越低。我在布局时把VM走线放在板子一侧GND走线在另一侧中间穿过两条电机输出线方向和电流方向尽量平行避免让功率回路绕过MCU区域。如果板子上同时有两路电机两路的功率回路最好相互对称不要你走上面我走下面否则会形成超大的差分环路不仅EMI难看还会通过地平面相互干扰。4.2 地平面不是铺块铜就有用双层板底层铺大面积地是最常见的做法但铺地也要讲究。驱动芯片的PGND是功率地承载的是电机的大电流逻辑地和采样地是小信号地承载的是模拟电压。如果功率地电流经过采样电阻旁边的模拟地ADC读数就会跟着电机电流波动堵转保护完全没法用。我的处理方式是底层大面积铺GND但把芯片的PGND引脚、VM电容地、TVS地、电流采样地都单独画一小块功率地铜皮功率地和逻辑地通过板子电源入口处的一个点连接。这样功率电流只在功率地平面流动不会串进模拟信号。样引脚采用开尔文连接也就是采样电压的两根细线直接从采样电阻两端引出尽量不要经过其他功率走线。4.3 热设计没有散热片铜皮就是散热片集成H桥芯片的热量主要是MOSFET的导通损耗和开关损耗。以持续0.8A、上下管总电阻约0.8Ω计算单路导通损耗约0.5W双路同时跑就是1W。这个功耗对4mm×4mm的封装来说不小必须靠PCB散热。芯片底部的散热焊盘PowerPad要焊接到PCB焊盘下方打一排过孔到背面铜皮。过孔孔径我用了0.3mm孔间距1mm一共打了8个背面整片铺铜。实测下来持续负载5分钟芯片表面温度稳定在62℃左右比第一次没打过孔散热时的85℃好了很多。如果板子空间允许还可以在芯片侧面多留一点铜皮因为热量会先沿着PCB平面扩散再通过空气对流散掉。5. PWM频率、死区与堵转保护让驱动板聪明地活下来硬件能转只是第一步。驱动板要真正可用控制策略要跟上尤其是PWM频率、死区设置和堵转保护这三件事。5.1 有刷电机里的电流纹波与PWM频率选择有刷直流电机由电阻、电感和反电动势组成。PWM频率越高电流纹波越小但开关损耗越大频率过低电机会发出尖锐的啸叫而且电流会断续换向火花也大。工程上常选16kHz到20kHz正好超过人耳敏感上限。计算依据是电机的电气时间常数τL/R。N20电机绕组电感大约几十微亨电阻5Ωτ大概在10μs量级。20kHz的PWM周期是50μs电流已经能维持在连续模式纹波不会过大。如果电机更小电感更低可以把频率提高到32kHz但要确认驱动芯片的开关能力和死区时间是否跟得上。5.2 死区到底谁来管如果是全分立MOS管方案死区必须自己做否则上下管直通。集成驱动芯片内部已经处理了这一点但你仍然需要了解外部输入信号的含义。以最常见的双输入逻辑为例IN11、IN20是一个方向转IN10、IN21是另一个方向IN10、IN20是滑行IN11、IN21可能是刹车不同芯片定义不同。我自己写固件时会让PWM和方向分开一个引脚负责PWM占空比另一个负责方向。这样不会出现两个输入同时跳变的情况而且从“正转PWM”切到“反转PWM”之前软件里要先把这个通道的输出置为滑行状态延时几十微秒再反转。这个软件延时能显著减少反转瞬间的电流尖峰虽然牺牲了一点响应速度但对电池和驱动芯片都很友好。5.3 堵转保护电流采样加上分级动作堵转是微型电机驱动最危险的场景。电机被卡住时反电动势消失电流直奔堵转电流而去如果只靠芯片的过流保护容易在恢复后继续冲击。我的方案是用采样电阻和ADC实时监测电机电流固件做分级处理if (adc_current OVER_CURRENT_HIGH) { high_count; if (high_count 200) { disable_driver(); // 持续大电流超过200ms直接关闭 } else { set_pwm(0); // 短时过流先切断PWM } } else if (adc_current OVER_CURRENT_LOW) { low_count; if (low_count 50) { set_pwm(max_duty / 2); // 中等过流持续50ms先降半速 } } else { low_count 0; high_count 0; }这个状态机看起来简陋但避免了一个常见错误一检测到过流就立刻关断。因为电机启动瞬间也会有短暂的大电流如果保护太敏感机器人一动就保护完全没法跑。必须区分“瞬态过流”和“持续性过流”瞬态可以容忍持续才判定为堵转。5.4 待机与休眠电池供电必须抠细节小车用电池供电驱动芯片即使空载也会有静态电流。让H桥进入睡眠模式能把静态电流从毫安级降到微安级。我的板子利用MCU的一个GPIO控制驱动芯片的EN/睡眠引脚平时所有电机通道都置为高阻只有需要运动时才唤醒。有一点容易踩坑电机停止时不要直接让芯片休眠要先把两个输入都拉成滑行状态再让芯片进入睡眠。如果带着电机的反电动势进入休眠外部电动势可能通过体二极管反向灌进芯片的电源脚时间长了会损坏驱动器。正确顺序是先停PWM、确认输出为高阻、再休眠。6. 实测波形复盘从直通炸管到反转尖峰的三次教训前前后后烧了七八块板子每次故障都有不同的“病根”。下面按顺序梳理三次最典型的故障给遇到类似问题的朋友一个排查参照。6.1 直通炸管第一次上电发烫的根因第一版分立MOS板子上电后电机没转板子却开始烫手。我用示波器同时测量上管和下管的栅极电压发现开关切换的几十纳秒窗口里两个管子同时处于导通状态。这就是典型的直通故障电源通过两个MOS管直接短路电流瞬间很大管子迅速发热后来直接把一颗AO3401击穿了。排查过程不是直接换芯片而是先确认驱动信号时序。用逻辑分析仪查看MCU输出的两路信号发现固件里只是简单地把两个GPIO写成反相没有做死区延时。修正方法是在固件里加入切换延时或者在MCU定时器里使用带死区插入的互补PWM输出。对于集成驱动芯片芯片内部已经做了死区插入所以后续版本没有再出现这个问题。6.2 栅极振铃示波器探头的地线也别太长分立方案优化完死区后栅极波形看起来还是很糟糕上升沿有一串振铃幅度接近Vgs阈值的振荡。一开始以为是布局问题后来接了一根“地线弹簧”在探头尖端振铃幅度立刻降了不少。原来一部分振铃来自示波器探头接地夹的长引线电感属于测量伪像。真正的栅极振铃来自驱动环路的寄生电感。解决方法是给栅极串联一个10Ω到22Ω的电阻阻尼LC谐振。串联电阻会增大开关时间所以要用示波器观察上升沿找到一个振铃消失但开关速度还能接受的值。我用的是18Ω开关时间大约120ns20kHz下完全没有问题。6.3 电机反转瞬间的尖峰TVS和电容的配合有一次测试时发现电机正转急停再快速反转驱动芯片的VM脚电压能冲到输入电压的1.5倍以上。这是因为电机是感性负载反电动势通过H桥的续流二极管向电源电容充电如果电源电容不够大、TVS反应速度不够尖峰就会直接打在芯片上最终把芯片的稳压器打坏。解决方案有三层第一在VM引脚附近增加足够容量的储能电容比如100uF聚合物电容吸收一部分反向能量第二在电源输入端加一个TVS管选击穿电压比最高工作电压高一点、但比芯片绝对最大额定电压低很多的型号第三软件上在正反转切换时加入短暂的滑行时间让电机电流先衰减再反向。这三层配合下来反转尖峰从8V多降到了6.5V以内芯片再也没有因为这个坏过。6.4 热成像带来的最后一轮优化最后版本用热成像检查双路同时满载的温升发现芯片旁边一小块铜皮温度特别高。原因不是铜皮面积不够而是芯片散热过孔打得太少热量堆积在PowerPad附近无法有效导到背面。后来把过孔数量从4个加到8个孔径保持0.3mm铜皮加宽到覆盖整个底层温升下降了20℃以上。这件事告诉我热设计不能只看热阻公式要看实际铜箔面积和过孔导热能力。最后说一个我自己养成的习惯每次板子回样先不焊电机驱动部分只焊电源和逻辑电路用信号发生器给PWM测量所有关键点位的默认电平确认无误后再焊功率管。这个流程已经帮我拦下至少三次原理图笔误也让后续故障定位快了很多。微型双路H桥控制这件事真正难的不是“转起来”而是“转得稳、坏不了”。希望上面的过程能给想在同样方向上做尝试的人省下几块烧掉的板子。