ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

IR2104半桥驱动空载发热排查:死区时间不足导致的MOS管直通问题

IR2104半桥驱动空载发热排查:死区时间不足导致的MOS管直通问题 如果你的IR2104半桥驱动电路在空载状态下MOS管热得能煎鸡蛋但带载后反而正常了九成以上的原因都出在死区时间上。我去年调一块48V直流电机驱动器时就为这个“空载发热”折腾了整整一个通宵空载电流测出来只有几十毫安两只IRFP4468却烫到不敢碰。最后抓到的真凶就是IR2104内部虽然自带死区手册典型值520ns左右但配上一对大管子的米勒平台和栅极电阻这点时间根本不够上下管在我眼皮底下交叠导通了。这篇文章把当时的排查思路和3步修复过程整理出来波形对比也一起放上给还在被半桥驱动空载发热折磨的朋友一个参考。1. IR2104半桥驱动先搞懂芯片在电路里扮演什么角色1.1 半桥驱动电路的基本结构与角色在电机驱动、同步Buck、反激辅助电源这些场景里半桥拓扑几乎是标配高边MOS管Q1的漏极接母线电压Vbus源极接输出中点VS低边MOS管Q2的漏极也接VS源极接功率地GND。负载挂在VS和GND之间。要让这个桥正常工作Q1和Q2必须严格交替导通Q1导通时Q2关断Q2导通时Q1关断中间还要有一段两个管子同时处于关闭状态的安全间隔否则电源正负极就通过两个管子“短路”了。IR2104就是专门干这个活的高压半桥驱动芯片。它负责把控制器输出的逻辑电平通常是3.3V或5V的PWM信号转换为能驱动功率MOS管的栅极电压一般需要10V~15V同时解决高边MOS管栅极参考电位浮动的难题。芯片的主要引脚包括HIN和LIN是高边与低边的逻辑输入HO和LO是对应的栅极驱动输出VB和VS之间接自举电容SD是关闭使能脚VCC和COM是芯片供电和地。实际使用中自举电容的位置和走线质量直接决定高边管子能不能被正常驱动这也是后面排查发热问题时不能跳过的一环。理解这个结构之后再看“空载发热”这个问题就清晰多了空载时负载基本不消耗功率如果MOS管仍然发热说明能量损耗发生在管子开关过程本身而不是负载上。这就把排查方向锁定到了驱动波形、死区时间、栅极充放电这几个环节。换句话说空载发热是驱动电路“原理级”问题的典型症状不是靠加散热片能糊弄过去的。1.2 死区时间到底是什么为什么必须有死区时间英文叫dead time通俗点说就是在上下两个管子切换时故意留出的一小段“谁都别开”的空档。它的存在是因为MOS管不是理想开关。以IRF540为例从驱动电压加到栅极到漏源电流完全建立要经过导通延迟时间td(on)和上升时间tr加起来差不多一百纳秒关断也一样要经过td(off)和下降时间tf。如果上下管信号完全互补、没有任何间隔高边还在慢慢关闭的时候低边已经开始导通了两个管子的阻抗都不算高Vbus就会直接灌下来形成贯穿电流也就是shoot-through。IR2104内部有一个固定的死区时间手册上的典型值在520ns左右不同批次和环境温度下会有偏差。这个时间对于很多小功率管子是够用的但“够用”有一个前提外部MOS管的开关速度必须足够快而且驱动回路的走线、栅极电阻、米勒效应不能把实际开关时间拖得太长。一旦实际关断时间超过IR2104预留的死区内部死区就形同虚设直通仍然会发生。用红绿灯来打比方最容易理解死区时间就是两个方向都亮红灯的“全红清空期”目的是让上一个方向的车完全离开路口下一个方向再放行。如果全红时间太短路口还没清空就放行两个方向的车就会在路口中间撞在一起。MOS管的“撞车”方式就是直通发热。1.3 空载发热的机理贯穿电流才是主角空载情况下负载电流很小MOS管上的通态损耗几乎可以忽略主要的发热来源有三种开关损耗、驱动损耗、贯穿损耗。开关损耗来自电压电流交叠每次开关都有一部分时间管子既承受电压又流过电流驱动损耗来自栅极电容充放电一般只有毫瓦级贯穿损耗则是上下管同时导通时流过的大电流尖峰虽然单个尖峰持续时间可能只有几十到几百纳秒但开关频率动辄20kHz、30kHz累加起来就是可观的发热功率。更麻烦的是贯穿电流的峰值很大。以48V母线为例如果两个管子同时导通回路里只剩下PCB走线电阻、引脚电感、管子体电阻瞬间电流可以冲到几十安培。即使每周期只交叠200ns在30kHz开关频率下等效平均功耗仍然可能达到1W以上管子在空载状态下几分钟就能烫手。这也是为什么标题里“空载发热”特别值得警惕——它往往是驱动逻辑有问题的第一信号。很多朋友遇到空载发热会直接怀疑散热片不够大甚至换更大的散热器但问题根源在原理层散热再大也只是治标不治本。正确做法是先把波形抓出来用数据判断到底是哪一种损耗在主导。下面就说测量方法。2. 用波形说话空载发热时先测对这几个点2.1 测量高边栅极波形最容易踩的坑调试半桥驱动示波器是必须的工具但测量方式不对会把你带进沟里。IR2104的HO输出是相对于VS这个浮动点的也就是说高边MOS管的栅源电压才是真正决定它开关动作的信号而不是HO对地的电压。很多新手直接把示波器探头地线夹到功率地然后去点HO引脚看到的是一个叠加在母线电压上的高位信号在高端管子关断期间甚至可能是0V到几十V之间的跳变这个波形既不能反映真实栅压还会误导你对死区的判断。正确做法有两种。第一种是用高压差分探头把探头的正负极分别接在MOS管的栅极和源极直接测Vgs。这是最可靠的方案一般实验室里如果有100MHz以上的高压探头随便怎么测都行。第二种是退而求其次测低边管子的时候就测LO对COM因为低边的源极本来就接在功率地测高边管子时如果你的示波器支持两通道相减可以分别测HO和VS再相减但两个普通探头本身的共模抑制比有限高速切换时相位误差和共模成分会污染结果只能看个大致趋势不能用来做精密死区测量。另外一个容易忽视的点是地线回路。示波器探头的地线夹本身有电感在母线电压高频振铃时地线夹会拾取噪声让测量波形出现毛刺。空载发热判断死区时这些毛刺经常被误认为是交叠。建议把探头地线夹尽量缩短或者用接地弹簧把示波器采样率设置到250MS/s以上否则几百纳秒的死区可能根本抓不出来。2.2 正常死区波形和直通波形眼睛能看出来的区别把探头接好之后在空载条件下跑起来先看HO和LO两路波形。正常情况下理想的切换应该是这样两个台阶HO从高电平开始下降经过下降沿完全变成0V后保持一段两个管子都关断的“低谷”然后LO才开始上升。这个低谷的长度就是实际的死区时间。在示波器上你会看到上下两路信号之间存在一个明显的台阶不会重叠。如果死区不足波形上看到的往往是HO下降沿还没完全到底LO的上升沿就已经起来了。也就是说两个信号的翻转沿在时间轴上产生了交叠。你可以在示波器上把两个通道的垂直位置拉开用光标分别测量HO下降到10%、LO上升到10%这两个时刻两者之间的时间差如果是负值或者极小的正值基本上可以断定发生了直通。还有一种情况需要特别留意HO的下降沿看起来关断了但实际关断是通过米勒平台慢慢完成的。如果驱动回路阻抗太大高边管子可能拖到LO已经上升后才真正进入关断状态。这时的波形表面上看交叠不明显但VS点会露馅——在切换瞬间VS会出现一个高频的“V字形”塌陷或者剧烈振铃那是两个管子同时导通的电压波动特征。所以判断直通不能只看HO/LO还要结合VS波形一起看。2.3 判断死区时间是否够用的量化标准光会看波形还不够最好给自己一个量化标准。工程上常用的经验法则是死区时间要大于高边最大关断总时间减去低边最小导通总时间同时预留至少两到三倍安全裕量。关断总时间大约等于td(off)tf其中td(off)是关断延迟时间tf是下降时间导通总时间约等于td(on)tr这两个数据在MOS管规格书里都能查到。举个例子IRF540的典型td(off)在60ns左右、tf在30ns左右td(on)在40ns左右、tr在25ns左右。理论算下来关断总时间比导通总时间多出约25ns好像很小IR2104的520ns死区绰绰有余。但注意这是规格书里在特定测试电路、特定栅极电流下的结果实际应用中如果你用了22Ω栅极电阻栅极充放电电流受限开关时间会明显变长再叠加PCB走线电感、米勒电容的非线性、电源电压波动实际关断时间可能翻倍甚至更多。所以严格来说不能拿规格书简单加减要看实际波形。更实用的做法是直接用示波器测出实际死区时间然后与驱动波形上实测的高边关断时间比较。如果实测死区与关断时间之比小于2就该考虑增加死区了。比如你测到实际死区只有300ns而高边管子从HO开始下降到漏源电流消失用了200ns虽然看起来还能承受但温度升高、批次变化都会让参数漂移保险起见就要加长死区。这也是我下面三步里第一步要做的事。3. 3步解决死区过短导致的空载发热问题3.1 第一步上示波器实测先拿到现场证据很多人一遇到发热就急着改参数这是本末倒置。第一步永远是把现场波形测出来确定问题是不是真的出在死区时间上。操作步骤很简单先把母线电压降到安全值比如24V甚至12V负载可以拆掉只保留半桥本身。然后用示波器两通道同时测量低边栅源电压和高边栅源电压或者至少测LO对COM、再测VS通过VS的切换特征辅助判断。PWM频率设置为实际工作频率比如20kHz或30kHz占空比设成50%先把最对称的工况跑起来。接着用示波器光标功能测出以下几个数据HO下降沿开始到LO上升沿开始的时间差高边管子的实际关断时间从HO下降到高边Vgs跌到栅极阈值以下所用的时间母线电流在高边关断瞬间是否存在尖峰。如果时间差明显小于实际关断时间或者母线电流出现周期性大尖峰当场就能确认死区不足。这一步经常遇到的尴尬是没有差分探头。没有探头时可以换一个思路在母线正极串一个几十毫欧的采样电阻用示波器测电阻两端电压波形。如果每个PWM周期都出现几A甚至十几A的尖峰那就是直通最直接的物证。用这个方法可以绕过高压测量安全又能说明问题。3.2 第二步在PWM控制端把死区时间加到位确认死区不足之后接下来就是修。IR2104自身不能调整死区时间能做的只有两条路要么在输入信号上做手脚要么换带外部可调死区的驱动方案。最推荐也最干净的做法是在产生PWM的控制器里直接插入死区。如果你用STM32高级定时器TIM1或TIM8自带死区插入寄存器这是工程上用得最多的方案。一个例子是系统时钟72MHz死区采样时钟t_dts为72MHz换算后每个计数步进约13.9ns想设置约1μs死区DTG值就等于72。代码大致是// STM32F103 TIM1 死区配置示例约1us 72MHz TIM1-BDTR ~TIM_BDTR_DTG_Msk; TIM1-BDTR | (72 TIM_BDTR_DTG_Pos); // DTG 72, deadtime ≈ 1us TIM1-BDTR | TIM_BDTR_MOE; // 主输出使能代码只是示意具体还要配合PWM的输出极性、互补输出配置。如果想要更长的死区需要按参考手册里DTG分段规则换算比如超过127以后死区放大倍数不同直接写更大的数不一定能得到线性延长时间。如果用的不是STM32任何带死区功能的MCU或专用PWM芯片都可以做同样的事关键是理解死区时间就相当于两个互补信号上升沿之间人为插入的延迟。如果控制器不支持死区调节还有硬件补救法在IR2104的HIN或者LIN输入脚前面加RC延时网络让两路输入信号错开。具体做法是在其中一路信号线上串联一个电阻R并在信号对地接一个电容C利用RC充电时间把这一路信号的上升沿拖后形成一个固定延时。但要注意RC电路对上升沿和下降沿都会有影响简单RC会让占空比失真所以必须配合施密特触发器整形或者只应用到LIN路径上避免上下桥输入同时被扭曲。这个方法能应急但不算优雅能上MCU死区还是优先上MCU。推荐的初始死区值小功率MOS管Qg在几十nC级别可以从1μs开始试大功率MOS管Qg超过100nC建议从2μs开始试。加进去之后看发热和波形逐步微调。3.3 第三步核对栅极电阻和自举电路给死区争取余量死区时间加到位以后如果发热明显改善问题基本解决但有些板子会出现新情况加大死区后波形边沿还是不好看或者加多了死区导致带载效率下降。这时候就要回头查栅极驱动回路的配合。第一个要查的是栅极电阻Rg。Rg越大开关过程越慢MOS管在放大区停留的时间越长不仅增加开关损耗还会吃掉IR2104原本预留的死区。反过来Rg太小关断瞬间电流变化率di/dt太高会在PCB寄生电感上产生电压过冲。实践中常用“慢开快关”结构在Rg两端反并联一个快恢复二极管开通时电流经过Rg关断时电流走二极管这样既能让开通平缓、控制EMI又能让关断迅速、缩短死区需求。这个结构在电机驱动里很常见MOS管发热问题的排查清单里一定有它。第二个要查的是自举电容。自举电容的作用是在高边管子导通期间给高边栅极提供能量电容太小高边驱动电压在开关过程中会跌落导致高边管子不能完全导通进入线性区发热。这种发热和死区直通发热波形表现不同死区直通时HO和LO有交叠特征自举不足则更多表现为高边Vgs波形出现缓慢下降或欠压。自举电容的最小取值可以用Cb≥Qg/ΔVbs估算比如IRFP4468的Qg在190nC附近若允许ΔVbs跌落0.5V则需要至少380nF实际建议取1μF甚至2.2μF并且要贴近VB和VS引脚放置。第三个要查的是layout。VS点到自举电容、MOS管的回路必须尽量短粗驱动返回路径不能和大电流路径共用。很多发热问题在原理图上看不出来一量波形到处都是振铃就是因为layout把驱动回路和大电流回路扭到一起了。调试时如果波形振铃严重可以临时在栅极串联一个小电阻来压振铃但根子上还是要优化走线。4. 改进前后的波形对比与实测经验4.1 改进前后到底差了多少我在自己的板子上做过一次完整的对比实验把数据拿给大家参考。被测系统是一块48V、30kHz的半桥驱动板高边和低边管子用的都是IRFP4468栅极电阻最初是22ΩIR2104供电15V控制器输出占空比50%、无死区设置结果空载状态下管子三分钟就烫到近85摄氏度。示波器实测HO下降沿到LO上升沿的时间差只有大约80ns而且两个沿在时间轴上明显交叠母线中串联的采样电阻上出现了约2.4A的周期尖峰。把死区调到1.8μs、栅极电阻改成慢开快关结构之后同样条件下HO关断后要等约1.8μsLO才开启交叠完全消失母线尖峰从2.4A降到约120mAMOS管表面温度在三分钟内只有30摄氏度出头几乎是室温。下面是当时记录的对比数据对比项目改进前死区不足改进后死区1.8μsHO下降沿与LO上升沿时间差约80ns存在交叠约1.8μs无交叠空载母线电流尖峰约2.4A约120mA空载3分钟MOS管表面温度约85℃约30℃VS中点波形切换点塌陷振铃明显有平稳空闲平台振铃显著减弱这个对比非常直观问题根本不在于散热而在于每次开关时都在偷偷放炮。死区时间一旦给足贯穿电流清零温度自然就掉下来了。之后接上电机负载跑整机输入电流和温升也明显改善整体效率从91%上下提到了94%左右空载修复顺带把整机效率也带高了。4.2 常见问题速查发热但波形看不出直通怎么办调试中你可能会遇到一种迷惑情况波形看起来没有交叠但MOS管还是热。这时候多半不是死区问题而是下面几个坑。第一自举电容容量不足或漏电大高边栅压在开关过程中跌落管子没有完全导通工作在放大区。这个从波形上能看出来高边Vgs在导通末期往下掉而不是稳定在10V以上。解决办法是加大自举电容、减小自举路径电阻、检查自举二极管反向漏电流。第二高边驱动回路的走线太长太细栅极波形出现振铃振铃谷值如果低于米勒平台管子会反复开关产生额外损耗。这种情况会在HO波形上看到明显的过冲和振铃在栅极串联一个几欧姆到几十欧姆的小电阻能有效抑制。第三体二极管反向恢复损耗。如果你的半桥工作在同步整流或者续流工况低边体二极管的反向恢复电荷会在高边开通过程中造成额外电流尖峰这种尖峰不是直通但同样会发热。解决方法是选择反向恢复快的MOS管或者优化死区时间不要让体二极管长时间导通。第四SD引脚悬空。IR2104的SD使能脚悬空时容易受干扰导致驱动状态异常。工程上一般用10kΩ上拉到VCC或者由MCU明确控制避免上电瞬间逻辑未定性导致驱动输出不确定。很多空载发热的“玄学”问题最后都发现是SD脚没接好。第五测量本身有误差。如果用普通探头测浮动HO信号地线回路带来的共模噪声可能让你误判交叠。这种时候先回到低压母线、用采样电阻看母线电流尖峰或者用差分探头重新测一遍。4.3 说点手册上没写的IR2104使用心得IR2104是一款很老的芯片但至今还在大量出货说明半桥驱动这个需求有多稳定。实际用下来我觉得有几点是数据手册上不会特意强调的。一个是IR2104的输入信号要尽量保持规范。虽然芯片内部有死区逻辑但输入信号还是要按互补方式来设计不能随意让HIN和LIN同时长时间为高否则芯片和后续电路都容易工作在不可预期的状态。另一点是IR2104的VCC供电一般要10V到20V之间欠压锁定在8V多如果供电低于阈值芯片输出会关断这时候如果负载是感性器件续流路径缺失会导致VS电位异常引发一系列诡异现象。还有一个经验是调试空载发热问题时尽量先用低压运行。比如24V的板子先用12V跑把波形和发热问题解决后再上高压。低压下直通电流峰值小不容易炸管但发热趋势已经能反映问题。等波形完全干净了再慢慢升压既安全又能快速定位问题。最后想说的是MOS管发热这类问题最忌讳拍脑袋改参数。我那次如果不动示波器直接换更大散热器估计熬几个通宵也找不到根子。先测波形、确认交叠再顺着死区、栅极电阻、自举电容、layout这四个方向排查基本都能在半小时内定位。大家如果调整完死区之后波形仍然有交叠或者出现新的振铃现象欢迎把具体型号、频率和波形截图一起发出来讨论。
返回列表