
1. 为什么我要用IR2104搭H桥而不是买现成模块做电机控制这行的朋友绕不开一个经典电路——H桥。不管是驱动直流有刷电机做正反转还是搞单相逆变、PWM整流H桥都是最基础的功率拓扑。市面上现成的H桥模块确实多十几块钱就能买一个但如果你真想把电机驱动这件事吃透自己用IR2104加MOS管搭一遍收获是完全不一样的。我第一次接触IR2104是在一个24V直流电机正反转项目上。当时图省事买了个成品模块结果电机一启动就烧了上管查了半天才发现模块用的是自举电容方案但电容选型不对加上死区时间没控制好上下管直通直接把MOS管炸了。从那以后我就决定自己搭把每个环节都搞清楚。IR2104这颗芯片说白了就是一个半桥栅极驱动芯片内部集成了自举电路、死区逻辑和驱动输出。一片IR2104驱动一个半桥上下各一只MOS管两片就能组成一个完整的H桥。它的核心价值在于把高边MOS管的栅极驱动电压问题给解决了。高边MOS管源极浮空栅极电压必须比源极高10V以上才能完全导通普通光耦或者三极管驱动根本做不到而IR2104靠自举电容就能轻松实现。这篇文章我会从电路原理、元器件选型、参数计算、PCB布局到实际调试完整走一遍。适合有基本模电基础、想自己动手做电机驱动的朋友。如果你连MOS管的三个极都还没分清建议先补一下MOS管工作原理和导通条件的基础知识再来看这篇会顺畅很多。2. H桥驱动电路的整体设计思路拆解2.1 H桥为什么需要专用驱动芯片H桥的本质是四个开关管组成一个“口”字形电机接在中间。对角导通时电机正转另一组对角导通时反转。听起来简单但实际操作中有一个致命问题上下管不能同时导通。一旦直通电源直接短路MOS管瞬间炸裂。用分立三极管搭H桥死区时间靠RC延时来控制温漂大、一致性差批量生产基本不可行。而IR2104内部集成了死区逻辑只要输入信号不是极端情况它自己会保证上下管不会同时输出高电平。这是它比三极管方案强的地方。另一个关键点是高边驱动。低边MOS管源极接地栅极给10V以上就能导通很简单。但高边MOS管源极接的是电机端电压在0到VCC之间浮动栅极驱动电压必须“骑”在源极上面。IR2104的自举电容方案就是解决这个问题的经典做法低边导通时给自举电容充电高边导通时电容把电压“顶”上去。2.2 两片IR2104如何组成完整H桥一片IR2104驱动一个半桥两片组成H桥。具体接法是这样的第一片IR2104的HO接左上MOS管栅极LO接左下MOS管栅极VS接左上MOS管源极也就是电机左端第二片IR2104的HO接右上MOS管栅极LO接右下MOS管栅极VS接右上MOS管源极也就是电机右端两片的VCC共用12V驱动电源COM接地HIN和LIN分别接单片机的PWM输出这里有个细节两片IR2104的输入信号必须配合好。正转时第一片HIN给高电平、LIN给低电平第二片HIN给低电平、LIN给高电平。反转时反过来。刹车时两片LIN都给高电平下管同时导通电机两端短接。停止时全部给低电平。注意IR2104的HIN和LIN不能同时给高电平虽然芯片内部有死区但长期这样操作会加速芯片老化。2.3 为什么选IR2104而不是IR2110IR2110是IR2104的“大哥”驱动能力更强还带使能脚和故障反馈。但对于中小功率电机驱动24V/5A以下IR2104完全够用而且外围电路更简单。IR2110需要额外的使能逻辑PCB面积也更大。我实测下来IR2104驱动IRF3205在24V/3A工况下芯片温度只有40度左右加个小散热片就很稳。如果你要驱动更大功率的电机比如48V/10A以上那确实该上IR2110或者隔离驱动方案。但作为学习和中小功率应用IR2104是性价比最高的选择。3. 核心元器件选型与参数计算3.1 MOS管怎么选从耐压到导通电阻MOS管选型主要看四个参数耐压VDS、导通电阻RDS(on)、栅极电荷Qg、封装。耐压方面电源电压24V考虑电机反电动势和尖峰至少选55V以上的管子。IRF3205是55V/110A/8mΩ的经典管子价格便宜量又足我用了很多年。如果想留更大余量IRF1404是40V的不行IRF540是100V/33A/44mΩ导通电阻偏大大电流下发热明显。导通电阻直接决定发热。假设电机电流3AIRF3205的RDS(on)是8mΩ导通损耗是3×3×0.0080.072W几乎不发热。如果用IRF54044mΩ损耗是3×3×0.0440.396W需要加散热片。所以低导通电阻比高耐压更重要在满足耐压的前提下尽量选RDS(on)小的。栅极电荷Qg影响开关速度。IRF3205的Qg是63nCIR2104的驱动电流是130mA/270mA拉/灌开关时间大概在几百纳秒级别对于20kHz的PWM完全够用。如果你要用到100kHz以上就得选Qg更小的管子比如IRF3710Qg47nC或者直接上氮化镓器件。型号耐压电流RDS(on)Qg适用场景IRF320555V110A8mΩ63nC24V以下中小功率首选IRF540100V33A44mΩ71nC48V以上但电流小IRF140440V162A4mΩ120nC低压大电流IRF3710100V57A18mΩ47nC高频开关3.2 自举电容和自举二极管的选择自举电容是IR2104方案的核心。它的作用是低边导通时充电到VCC12V高边导通时把VS电压“顶”上去让HO输出比VS高10V以上。电容容量怎么算经验公式是C ≥ 2×Qg/(VCC-10)。以IRF3205为例Qg63nCVCC12VC ≥ 2×63nC/2V 63nF。实际选100nF到1μF之间。我一般用1μF的陶瓷电容留足余量。但也不能太大太大会导致充电时间过长高频时自举电压建立不起来。自举二极管必须用快恢复二极管反向恢复时间要短。1N4148是首选75V/200mAtrr4ns便宜好用。千万别用1N4007它是低频整流管反向恢复时间微秒级高频下自举电容根本充不上电。实操心得自举电容要选X7R或X5R材质的陶瓷电容不要用Y5VY5V容量随电压变化太大12V下可能只剩一半容量。3.3 栅极电阻和死区时间的计算栅极电阻Rg决定开关速度。太小则开关快但EMI大太大则开关慢但发热少。IR2104的输出电流是130mA拉、270mA灌配合10Ω到33Ω的Rg比较合适。开关时间计算公式t Qg × Rg / VCC。以IRF3205为例Qg63nCRg22ΩVCC12Vt 63nC × 22Ω / 12V ≈ 115ns。这个速度对于20kHz PWM周期50μs来说绰绰有余。死区时间IR2104内部已经固定了典型值520ns。这个时间足够避免直通但也会造成一点输出失真。如果你对波形要求极高可以在单片机PWM输出时再插入额外的死区但一般应用不需要。4. 完整电路图与实操搭建过程4.1 主功率回路接线主功率回路的接线顺序很重要接错了轻则不工作重则炸管。我按信号流向一步步说电源正极先接一个100μF以上的电解电容到地这是母线滤波电容吸收电机换向时的尖峰。然后电源正极分两路分别接左上MOS管漏极和右上MOS管漏极。左上MOS管源极接电机左端同时接第一片IR2104的VS脚。左下MOS管漏极接电机左端源极接地。右边同理。这里有个容易犯的错误自举电容要接在VB和VS之间不是VCC和VS之间。VB是自举后的高边驱动电压输出VS是高边浮动地。自举二极管从VCC接到VB方向是VCC正、VB负。自举电容从VB接到VS。电机两端各并一个续流二极管方向是阴极接电源正、阳极接电机端。这个二极管的作用是释放电机电感在开关瞬间产生的反电动势保护MOS管。用肖特基二极管如SS34或MBR20100反向恢复时间极短。4.2 控制信号与单片机接口IR2104的HIN和LIN是标准CMOS/TTL电平输入3.3V和5V单片机都能直接驱动。我一般用STM32或者ArduinoPWM频率设20kHz避开人耳听觉范围。正转逻辑第一片HIN1、LIN0第二片HIN0、LIN1。反转逻辑反过来。调速时固定HIN1、LIN0然后对HIN脚给PWM占空比决定转速。注意不能对LIN脚给PWM同时HIN1那样会变成刹车模式。注意单片机刚上电时IO口默认是高阻态IR2104输入悬空可能输出乱跳。建议在HIN和LIN脚各加一个10k下拉电阻到地确保默认状态是关断。4.3 PCB布局的五个关键点PCB布局对H桥的稳定性影响极大我踩过的坑基本都在这第一功率回路面积要最小。电源正极到上管漏极、上管源极到电机、电机到下管漏极、下管源极到地这个环路面积越小寄生电感越小尖峰越低。我一般把四个MOS管摆成一条线电机接口放中间。第二自举电容紧贴IR2104的VB和VS脚。走线超过1cm就会引入寄生电感导致自举电压不稳。我都是把1μF电容直接放在芯片引脚旁边走线不超过3mm。第三栅极电阻紧贴MOS管栅极。Rg的作用是限制栅极充电电流如果走线太长栅极电感会和Rg形成LC振荡导致栅极电压振铃。我一般把Rg放在MOS管栅极焊盘旁边。第四地线要分功率地和信号地。功率地走大电流信号地走小电流最后在电源入口处单点汇合。混在一起会导致开关噪声串入控制信号轻则PWM抖动重则误触发直通。第五散热焊盘要足够大。IRF3205的漏极焊盘就是散热面PCB上要铺铜并打过孔到背面。我一般铺2cm×2cm的铜皮打9个过孔3A电流下温升不超过20度。5. 调试过程中遇到的典型问题与排查方法5.1 上电就炸管直通问题的排查第一次搭这个电路上电瞬间“啪”一声管子炸了。排查下来是HIN和LIN同时给了高电平。IR2104虽然有死区但输入同时为高时内部逻辑会优先输出高边低边关断但高边导通时如果低边MOS管还没完全关断就会瞬间直通。排查方法先用示波器看HIN和LIN的波形确保没有重叠。然后在IR2104输出端看HO和LO确认死区时间存在。如果死区不够可以在单片机程序里插入额外的死区一般500ns到1μs。另一个原因是自举电容没充电。如果低边从来没导通自举电容就是空的高边永远驱动不起来。上电时先给低边一个短脉冲充电再启动高边。5.2 电机不转或转速慢驱动电压不足电机能转但没力测HO对VS的电压只有5V左右正常应该是10V以上。这是自举电容容量不够或者自举二极管反向恢复太慢导致的。我试过用1N4007做自举二极管结果高边驱动电压只有3VMOS管工作在放大区发热严重。换成1N4148后立刻正常。自举电容从100nF换成1μF后高边驱动电压稳定在11.5V。还有一种情况是PWM频率太高。自举电容每次高边导通时放电低边导通时充电。如果频率太高充电时间不够自举电压会逐渐下降。IR2104建议PWM频率不超过100kHz我一般用20kHz。5.3 MOS管发热严重开关损耗分析电机转起来后MOS管烫手但电流只有2A按理说不应该。用示波器看栅极波形发现上升沿和下降沿都有明显振铃频率大概10MHz。这是栅极电阻太小加上走线电感导致的。解决方法把Rg从10Ω加大到33Ω振铃明显减弱。同时在栅极和源极之间并一个10k电阻加速关断。发热从70度降到45度。另一个发热原因是死区时间不够上下管有瞬间直通。用电流探头看母线电流如果有尖峰脉冲就是直通。IR2104内部死区520ns一般够用但如果MOS管关断太慢就需要加大Rg或者换Qg更小的管子。现象可能原因排查方法解决方案上电炸管上下管直通示波器看HO/LO死区检查输入信号增加死区电机不转自举电压不足测HO-VS电压换1N4148加大自举电容转速慢PWM频率太高降低频率测试降到20kHz以下MOS发热开关振铃看栅极波形加大Rg缩短走线电机抖动电源纹波大测母线电压加大滤波电容5.4 电机换向时单片机复位干扰抑制电机正反转切换时单片机偶尔复位。这是电机换向产生的反电动势通过电源串入了单片机。解决方法有三个一是在母线加TVS二极管钳位尖峰二是在单片机电源入口加LC滤波三是光耦隔离控制信号。我一般用第一种加第二种TVS选SMBJ30ALC用10μH电感和100μF电容。实测下来换向时电源尖峰从40V降到28V单片机不再复位。6. 进阶优化与扩展思路6.1 从H桥到单相PWM整流这套H桥电路稍加改动就能做单相PWM整流。把电机换成交流电源四个MOS管换成带体二极管的型号控制策略从简单的正反转PWM变成电流闭环控制。核心是采样交流电流用PI调节器生成PWM占空比让输入电流跟踪输入电压相位。我试过用STM32的ADC采样电流PWM频率20kHzPI参数Kp0.5、Ki0.01能实现功率因数0.98以上。但这是另一个大话题了涉及坐标变换和锁相环以后可以单独写一篇。6.2 加入电流采样实现过流保护在低边MOS管源极和地之间串一个0.01Ω的采样电阻用运放放大100倍送到单片机ADC。当电流超过设定值时立刻关断所有PWM输出。运放选NE5532或者LM358都行NE5532带宽更高响应更快。采样电阻的功率要算好3A电流下0.01Ω电阻的功耗是0.09W选0805封装就够了。但如果是10A以上就得用2512封装或者多个电阻并联。6.3 用EG2153做锂电均衡的联想有朋友问过EG2153锂电均衡驱动电路和H桥的关系。其实EG2153内部也是半桥结构只是集成了均衡逻辑。如果你理解了IR2104加MOS管的H桥再看EG2153就很容易明白它就是把两个MOS管和驱动逻辑集成在一颗芯片里外面接电感和电池。核心原理是一样的都是通过开关管控制能量流动。7. 我个人在实际操作中的几点体会这套IR2104加MOS管的H桥电路我从第一次炸管到稳定运行前前后后改了五版PCB。最大的体会是功率电路没有捷径每一个参数都要自己算一遍、测一遍。网上很多电路图只给个大概自举电容写“1μF”栅极电阻写“10Ω”但具体为什么选这个值不自己算一遍根本不知道。另一个体会是示波器的重要性。没有示波器调H桥就像闭着眼睛开车。栅极波形、自举电压、死区时间、母线尖峰这些关键信号都必须亲眼看到才能确认。我建议每个做电机驱动的朋友至少配一个100MHz带宽的示波器二手的两千块就能买到。最后分享一个小技巧调试时先不接电机用功率电阻代替这样即使炸管也不会伤到电机。等波形全部正常了再接电机跑。这个习惯帮我省了好几个电机。这套电路后续还可以扩展成三相桥驱动无刷电机。三片IR2104加六个MOS管控制策略从六步换相到FOC又是另一个世界了。有兴趣的朋友可以先把这套单相H桥吃透再往上走会顺很多。