H桥的“死亡禁区”:死区时间救了你的MOS管
H桥电路中的"死亡禁区"问题源于MOS管开关延迟导致的上下桥臂同时导通,造成电源直接短路。解决方法是设置"死区时间"——在切换状态时短暂关闭所有MOS管,确保完全关断后再导通。ARM32高级定时器内置硬件死区发生器,可自动处理这一过程。死区时间需根据MOS管特性精确设置(通常几百纳秒),过短会导致烧管,过长影响性能。互补PWM配合死区时间实现了电机安全调速,

你有没有遇到过这种情况:搭了一个H桥电路驱动电机,上电一瞬间,冒烟了。检查电路,没短路。检查程序,逻辑对。检查MOS管,烧了。换一个,又烧。你百思不得其解,最后发现——上下两个MOS管,同时导通了。电源直接对地短路,电流无穷大,管子瞬间烧毁。这就是H桥的“死亡禁区”。而解决这个问题的,是一个叫“死区时间”的东西。

那个“H”形的桥,H桥,就是4个MOS管(或三极管)搭成一个H形。上面两个叫“上桥臂”,下面两个叫“下桥臂”。电机接在中间。想让电机正转:
- 左上桥臂导通,右下桥臂导通
- 电流从电源→左上→电机→右下→地
想让电机反转:
- 右上桥臂导通,左下桥臂导通
- 电流从电源→右上→电机→左下→地
想让电机刹车:
- 两个下桥臂导通,电机两端短路,产生反向制动
想让电机滑行:
- 所有桥臂关断,电机自由停止
这就是H桥的四种状态。

那个“死亡禁区”,但这里有一个致命的问题:MOS管不是理想开关。它从导通到关断,需要时间。当你切换方向时,比如从正转切换到反转:
- 你关断左上和右下(正转的管子)
- 你导通右上和左下(反转的管子)
但问题是:关断需要时间,导通也需要时间。如果右上还没来得及完全关断,左上就已经导通了——上下两个管子同时导通,电源直接对地短路。这就是“直通”,也叫“穿通”。电流瞬间飙升到几百安培,MOS管在微秒级的时间内烧毁。这就是H桥的“死亡禁区”。
那个“微秒级”的缓冲,怎么解决?加一个“时间窗口”。当你切换方向时,先关断所有管子,等一段时间,再导通新的管子。这个等待时间,就叫死区时间。它像一个安全缓冲,确保上一个管子完全关断了,下一个管子才开始导通。
死区时间通常只有几百纳秒到几微秒。但就是这微秒级的延迟,救了你的MOS管。它不参与控制,但它保证了控制的安全性。那个“高级定时器”的恩赐ARM32的高级定时器(TIM1、TIM8),专门为电机控制设计。它们有硬件死区发生器。你只需要配置一个寄存器,设置死区时间。硬件会自动在互补PWM输出中插入死区,你不用担心上下桥臂直通。不需要软件干预,不需要额外代码,不需要小心翼翼。硬件代劳,安全可靠。那个“互补PWM”的魔法
H桥控制电机,通常用互补PWM。一个通道输出PWM,另一个通道输出它的“反相信号”,中间加死区。比如,上桥臂PWM占空比70%,下桥臂就是30%(加上死区)。这样,电机两端电压平均值 = (70% - 30%) × VCC = 40% × VCC。通过调节占空比,就能连续调节电机速度。这就是H桥调速的底层原理。

那个“烧管子”的真实案例,我有个朋友做一款机器人,用的就是H桥驱动。第一次上电,电机没转,但冒烟了。查了三天,发现是死区时间没设够。他用的MOS管是100ns关断时间,但死区只设了50ns。关断还没完成,另一个管子就导通了,瞬间短路。后来他把死区时间改到200ns,问题解决。那50ns的差距,就是生死之别。
这个故事给我们的启示,为什么H桥需要死区时间?因为物理世界不是数字世界。数字世界里,开关是瞬间完成的。物理世界里,开关需要时间。MOS管有导通延迟、关断延迟、上升时间、下降时间。这些时间虽然短,但足以让上下桥臂同时导通。死区时间,就是给物理世界留的“面子”。它承认:管子不是理想的,世界不是完美的。然后,用一个微小的延迟,把“理想”和“现实”之间的鸿沟填平。
写在最后,下次你再设计H桥电路,别只想着PWM占空比怎么算。想想那个叫“死区时间”的东西。它不参与调速,但它保证调速能安全进行。它不产生扭矩,但它保证管子不会烧。它是最不起眼,却最重要的参数。设短了,烧管子;设长了,性能差;设对了,安全又高效。那个微秒级的窗口,就是H桥的“安全气囊”。

(本文灵感源于于振南《新概念ARM32单片机》教程中对H桥与死区时间的深刻讲解,感谢作者将电机驱动的安全机制讲得如此通透。)
如果您觉得这个故事对您有启发,欢迎点赞、转发,让更多工程师看到这个藏在H桥里的“死亡禁区”。关注我,一起探索嵌入式世界里那些“慢一点才安全”的硬核真相。

更多推荐



所有评论(0)