直流电机H桥驱动选型:从压降效率账到分立MOS管方案 简介这份文档面向制作智能小车、从事电子工程与机器人制作的读者围绕有刷直流电机 H 桥驱动方案的选择展开重点解答为何采用分立元件搭建 H 桥、为何不选 L298 集成桥、为何优先使用 MOS 管等常见困惑。文中先简述 H 桥正反转、刹车与惰行的基本原理再以 2A 驱动电流、512V 供电为统一条件对比 D772/D882 双极性晶体管、2301/2302 MOS 管与 L298 的桥臂压降和自身损耗并给出效率估算与散热、供电电压方面的实际约束还提醒注意 L298 逻辑电平与驱动电压的配合条件。资源包共 1 个 doc 文件约 212KB内容紧凑适合作为选型对照与器件手册阅读的参考。目前已有 289 人学习可帮助读者理解不同桥臂器件的性能差异在小型低功耗项目中做出更合适的驱动方案取舍。1. 从一次“电机只抖不转”说起这套 H 桥选型方案要解决什么小车调试到一半电机不转只有轻微抖动供电明明写着 5V代码也没问题。拆开一看驱动板上焊的是 L298电机是 4.5V 的 N20。这个场景在课程设计和毕设里出现频率极高翻车点不在程序而在驱动桥臂的压降把电机该拿到的电压吃掉了。关于直流电机 H 桥驱动方案的选择本质上是一道效率账同样 2A 电流桥臂上多掉 1V电机就少 2W启动转矩直接塌下去。这套方案面向做小车、做毕设、要交一份完整驱动设计的人把“为什么用分立 MOS 管、为什么不用 L298、桥臂怎么算”讲成一条能照着走的选型链路从需求指标一路落到验收数据。2. 需求先立住H 桥要盯住的四个指标与工况界定2.1 把效率、安全、电压、电流拆成可算的量H 桥的原理不复杂四个桥臂两两导通实现正反转同侧导通做刹车全断开做惰行。真正决定方案好坏的是四个指标效率、安全性、耐压、通流。安全性禁止同侧直通通常归到控制逻辑和死区时间属于驱动之外的事耐压和通流靠选合适参数的器件就能覆盖小车场景电压 512V、电流 2A 上下可选范围很宽。剩下唯一由器件本身决定、且运行中持续起作用的就是效率也就是桥臂导通压降。我一般会把分析口径固定下来驱动电流按 2A 算供电 4.512V只比较四个桥臂带来的损耗不展开 PWM 实现和过流保护。口径固定了后面三组器件的对比才有意义否则拿 0.5A 的轻载数据去否定一个方案结论是站不住的。2.2 三种候选器件的定位差异候选就三类双极性晶体管 D772/D882、MOS 管 2301/2302、集成桥 L298。双极性管靠饱和压降说话手册给的是 Vce(sat)基本是固定值电流变化时压降变化不大MOS 管靠导通电阻 Rds(on) 说话压降等于电流乘电阻小电流时优势明显大电流时按线性涨L298 是把两只双极性管串成一路桥臂压降是上下桥臂之和还要额外考虑逻辑供电。这三类的差别不是“先进与落后”而是压降模型不同选型就是把模型代进自己的工况算一遍。2.3 2A 工况下的压降换算以 4.5V 控制电压为基准把手册参数换算成实际压降器件组合上桥臂压降下桥臂压降合计压降2A 时桥臂损耗D772 / D882约 0.5V约 0.5V约 1.0V约 2W2301 / 23022×0.130.26V最大2×0.060.12V最大约 0.38V约 0.76WL298——约 4.9V约 9.8WMOS 管的换算要写清楚2301 在 4.5V 栅压下 Rds(on) 约 0.093Ω2A 时压降 0.186V取最大值 0.13Ω 则是 0.26V2302 约 0.045Ω2A 时 0.09V最大 0.12V。这里用最大值是保守估计实际板子散热好、栅压足会更接近典型值。L298 那一行 4.9V 看着夸张但它是上下桥臂串联压降的实测口径不是笔误后面 2.4 节会用它解释为什么 5V 供电带不动 2A 电机。2.4 效率账算完选型结论自己浮出来驱动一台 4.5V、2A 的电机电机本身要 9W。用 D772/D882电源得给到 5.5V效率 9/(5.5×2)81%用 2301/2302电源 4.88V 就够效率 92%用 L298电源要顶到 9.4V效率只有 48%。这组数字同时解释了三件事为什么早期用双极性管的小车只能配 3V 的 130 电机4 节电池 4.85V桥臂吃掉 1V只剩 3.8V 余量为什么换 MOS 管后敢直接上 4.5V 的 N20压降不到 0.4V为什么 L298 在 5V 供电、2A 启动电流的场合必然“只抖不转”。选型不是拍脑袋是把压降代进供电电压减一遍看剩下的够不够电机启动。3. 总体方案设计桥臂器件选型与驱动链路划分3.1 分立 MOS 管方案的分工方案主体是四只 MOS 管搭成分立 H 桥上桥臂两只 P 沟道 2301下桥臂两只 N 沟道 2302电机架在中间。P 管做上桥臂的好处是栅极拉低即导通配合 NPN 三极管做电平转换就能被 3.3V/5V 单片机直接控制不需要自举电路代价是 P 管 Rds(on) 通常比同规格 N 管大所以上桥臂压降略高于下桥臂这和 2.3 节表格里 0.26V 对 0.12V 的差异是对应的。如果换成全 N 管上桥臂效率还能再压一点但要多一路自举或隔离电源课程设计阶段通常不划算我一般建议先把 P/N 组合跑通把效率账算明白再谈升级。3.2 控制侧与功率侧的边界方案里要明确一条边界H 桥只负责通断和换向PWM 频率、死区、过流保护归控制侧。这样划分的好处是桥臂选型可以独立验证——拿直流电源直接给栅极加固定电平测桥臂压降和温升不用等程序调通。控制侧输出四路信号经电平转换送到栅极同侧上下管的信号在硬件上做互锁一路经反相器取反软件里再留死区双保险。这条边界不写清楚调试时很容易把“电机抖”归到程序上实际是桥臂压降或栅极驱动不足。3.3 关键参数表与器件替换规则把选型依据固化成一张表换器件时按表核对不靠记忆参数2301P 上桥2302N 下桥替换时看什么Vds 耐压≥12V 档≥12V 档必须大于电池最高电压并留 1.5 倍余量Rds(on) 4.5V约 0.093Ω最大 0.13Ω约 0.045Ω最大 0.06Ω越小越好直接决定压降连续漏极电流满足 2A 并留余量满足 2A 并留余量看封装散热SOT-23 别硬扛持续大电流栅极阈值4.5V 栅压下充分导通同左3.3V 单片机直驱要选逻辑电平管替换规则一句话耐压够、4.5V 栅压下 Rds(on) 足够低、封装散热扛得住持续电流。三条缺一条效率账就白算了。3.4 刹车与惰行在方案里的位置正反转之外刹车和惰行也要在桥臂层面留出状态刹车是下桥臂两只同时导通或上桥臂两只同时导通把电机惯性电势短路惰行是四管全关电势无处泄放。方案里通常把这两个状态做成控制侧的两个宏桥臂硬件不用改但要注意刹车时电流会灌进下桥臂选管时下桥臂的通流余量要比上桥臂更宽一点这也是 2302 参数比 2301 更“富余”的原因之一。4. 模块实现从栅极驱动到压降实测的落地细节4.1 单路桥臂的栅极驱动写法以一路半桥为例P 管上桥臂需要一个 NPN 三极管做电平反相N 管下桥臂直接由单片机引脚经限流电阻驱动。下面是一段用于验证桥臂通断的测试代码跑在控制侧只做静态电平输出不涉及 PWM# 单路 H 桥静态测试验证四只 MOS 管的通断与换向 # 引脚映射左上、左下、右上、右下 PIN_LU, PIN_LD, PIN_RU, PIN_RD 4, 5, 6, 7 def setup(): for p in (PIN_LU, PIN_LD, PIN_RU, PIN_RD): pin_mode(p, OUTPUT) digital_write(p, LOW) # 上电默认全关防止直通 def forward(): # 左上 右下导通电机正转 digital_write(PIN_LU, LOW) # P 管栅极拉低导通 digital_write(PIN_RD, HIGH) # N 管栅极高电平导通 digital_write(PIN_LD, LOW) digital_write(PIN_RU, HIGH) # P 管栅极高电平关断 def reverse(): digital_write(PIN_RU, LOW) digital_write(PIN_LD, HIGH) digital_write(PIN_LU, HIGH) digital_write(PIN_RD, LOW) def brake(): # 两只下桥臂同时导通短路电机惯性电势 digital_write(PIN_LU, HIGH) digital_write(PIN_RU, HIGH) digital_write(PIN_LD, HIGH) digital_write(PIN_RD, HIGH) def coast(): for p in (PIN_LU, PIN_LD, PIN_RU, PIN_RD): digital_write(p, LOW if p in (PIN_LU, PIN_RU) else LOW)这段代码的关键不在逻辑而在上电默认全关和换向时先关后开。P 管栅极低电平导通、高电平关断N 管相反写反一个电平就是直通。forward()里先把对侧上管拉高关断再开本侧下管顺序不能颠倒。实际产品里这层互锁会做到硬件反相器上软件这层只是兜底。参数上限流电阻一般取 100Ω1kΩ太大开关变慢、桥臂在切换瞬间损耗上升太小则栅极电流冲击大我一般从 470Ω 起调。4.2 压降实测的接线与读数方法算出来的压降要实测验证方法很朴素直流电源设 4.5V电机换成大功率电阻或直接堵转万用表直流电压档跨在整条桥臂两端电源正到电机一端电机另一端到地两段相加就是总压降。测的时候让桥臂持续导通读稳定值别在切换瞬间读。2A 工况下 2301/2302 组合读到 0.30.4V 属于正常读到 0.8V 以上先查栅极电压够不够、管子有没有焊反。这一步是后面验收数据的来源别跳过。4.3 散热与封装的选择依据桥臂损耗 0.76W 听起来不大但分摊到四只 SOT-23 封装上每只接近 0.2W持续跑起来壳温会明显上升。方案里通常按“损耗除以封装热阻”估温升SOT-23 热阻在 200℃/W 量级0.2W 就是 40℃ 温升夏天车内环境很容易顶到限值。所以持续 2A 的场景下桥臂建议换 SO-8 或更大封装或者两只并联分流。L298 那 9.8W 的损耗更是必须上散热片这也是它体积大、外围多的直接原因——不是设计者不想做小是损耗逼着它做大。4.4 与 L298 方案的接口对照如果手头已有 L298 模块方案里要留一条对照路径L298 的逻辑供电 Vs 和电机供电分开手册要求电机驱动电压比逻辑高电平高 2.5V 以上逻辑 5V 时电机供电至少 7.5V否则高电平无法保证。很多“5V 供电带 L298”的板子就是卡在这条上电机只抖不转。对照实验可以这样做同一台电机先用 L298 在 9V 供电下跑记录转速和电流再换分立 MOS 桥在 4.8V 下跑对比同样转速下的输入功率。数据摆出来选型结论不用争。5. 避坑与排查五条最容易翻车的点5.1 电机只抖不转先查供电和压降现象上电后电机轻微抖动不连续转。原因供电电压减去桥臂压降后落到电机上的电压低于其启动所需L298 在 5V 供电、2A 启动电流下尤其典型。解决先量桥臂压降再核对电机额定电压供电不够就抬电压或换低损耗桥臂别急着改程序。5.2 同侧直通烧管查互锁和上电默认态现象一上电或换向瞬间管子发烫甚至炸管。原因同侧上下管同时导通或者上电时引脚处于浮空/默认高。解决硬件加反相互锁软件上电第一件事全关换向严格“先关后开”死区时间按管子开关时间留足。5.3 栅极电压不足MOS 管“半开”现象压降实测远大于手册换算值管子温热。原因3.3V 单片机直驱非逻辑电平 MOS 管4.5V 栅压下的 Rds(on) 根本没达到管子工作在放大区。解决选逻辑电平管或加一级栅极驱动把栅压抬到 4.5V 以上实测栅极电压再下结论。5.4 只看典型值不看最大值批量翻车现象样机效率很好做几块板子后有的发热严重。原因手册 Rds(on) 有典型值和最大值按典型值算余量离散性一上来就顶不住。解决压降和损耗一律按最大值算散热按最坏情况留余量这是血泪经验。5.5 忽略逻辑供电约束L298 带不动现象L298 方案电机不转测电机两端电压很低。原因电机供电没有比逻辑高电平高 2.5V 以上芯片内部高边驱动打不开。解决读手册的 ViH 与 Vs 关系表逻辑 5V 就把电机供电抬到 7.5V 以上或者降低逻辑电平别在 5V 单电源上硬撑。6. 验收与答辩用一组压降数据把方案讲圆验收这套 H 桥方案不需要复杂仪器一台可调直流电源、一块万用表、一个能堵转的电机就够。我一般按三步走第一步静态压降测试电源设 4.5V桥臂持续导通分别测上桥臂、下桥臂和总压降记录三组数据第二步效率换算用实测总压降反推输入功率和电机功率和 2.4 节的理论值对照偏差超过 20% 就回去查栅压和焊接第三步温升测试2A 持续跑 10 分钟红外测温或手背试温小心烫记录壳温。三步数据填进下面这张表答辩时直接投测试项理论值实测值判定标准总压降 2A约 0.38V填实测≤0.5V 合格驱动效率约 92%填换算值≥85% 合格连续 2A 温升估 40℃填实测壳温不超器件限值换向无直通—示波器看死区同侧无重叠导通答辩时最容易被问的是“为什么不用 L298”别背结论直接把 2A 下的压降和效率两组数摆出来再补一句 L298 的逻辑供电约束问题就闭环了。还有一个技巧把“电机只抖不转”的排查过程做成一张流程图贴在 PPT 里评委看到你从现象追到压降、再追到手册参数比讲十句原理都管用。从那以后我每次带小车项目都强制要求先测桥臂压降再写控制代码压降账算不平后面的调试全是玄学。希望帮到你。本文还有配套的精品资源点击获取