ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

IR2104半桥驱动空载发热?死区时间被栅极电容“吃掉”的排查与整改

IR2104半桥驱动空载发热?死区时间被栅极电容“吃掉”的排查与整改 前阵子用IR2104搭了一套半桥驱动空载调试的时候遇到一个特别典型的毛病PWM一开负载还没动静MOS管散热片先烫起来了。一开始我也以为是管子买到了假货或者IR2104驱动能力不够后来用示波器抓HO和LO的波形才发现真正的元凶是死区时间在MOS管栅极这一层被吃掉了上下管在切换瞬间发生了交叉导通。这个坑只要你踩过一次以后再看到空载发热四个字基本就会形成条件反射先查死区再查自举最后才去怀疑管子。这篇文章我把完整的排查链路、3步处理方案和修改前后的波形对比都写出来。不管你是刚接触IR2104的新手还是已经被空载发热折磨过几轮的硬件工程师照着这个思路走一遍大概率能把问题钉死。1. IR2104输出有死区为什么MOS管栅极电压还是会交叉1.1 IR2104的520ns死区到底做在了哪里IR2104是单输入半桥驱动芯片输入一个PWM信号它内部自动生成互补的HO和LO并自带一个固定的死区时间。数据手册上写的典型值是520ns也就是说IN信号发生电平翻转时IR2104会先让当前导通的那一路关闭等待520ns再让另一路打开。从驱动芯片输出引脚上看死区是真实存在的用示波器量HO和LO确实能看到两路输出之间有一段都是低电平的空档。这个设计对很多应用来说是省心的因为你不需要在MCU侧做死区只要给IR2104一路PWM就行。IR2104内部有一个死区逻辑电路专门处理HO和LO的切换顺序避免上下管同时收到导通指令。但是这里有一个非常容易被忽略的细节芯片输出的死区不等于MOS管栅极电压的有效死区。很多人量到HO和LO之间有500ns的间隔就觉得没问题了结果管子照烧不误。问题就出在中间这一层传输链路上。1.2 死区时间从驱动芯片到MOS栅极中间折损在哪MOS管的栅极本质上是一个电容而且是一个不小的电容。IR2104输出的驱动信号要经过一个栅极电阻Rg给这个电容充电或放电栅极电压Vgs才能建立或撤除。芯片引脚上的输出波形是棱角分明的数字电平但到了MOS管栅极波形就变成了带有RC充放电曲线的模拟过程。关键在于关断过程当驱动输出从高变低时栅极电荷要通过Rg和驱动芯片内部的下管泄放Vgs从10V左右开始指数下降。MOS管要等到Vgs降到阈值电压Vth通常在2V到4V之间以下沟道才会真正关断。如果Rg比较大、Qg比较大、驱动能力偏弱这个下降过程就会拖得很长甚至超过IR2104的520ns死区。举个实际例子IRF540的Qg大概70多nC如果栅极串联10Ω电阻IR2104的灌电流能力又只有约360mA理论上的关断时间就有200ns左右再加上米勒平台和拖尾实际从开始关断到真正关断经常要500ns以上。这时候驱动芯片输出的死区是520ns听着够用但MOS管栅极的有效关断点已经逼近甚至越过死区边界另一只管子的Vgs已经开始上升了于是上下管都处于导通状态直通就发生了。用一句通俗的话说电梯门在系统指令上显示已关好但实际门锁还没有完全到位这时候另一个人侧身往里挤就会卡住。IR2104说我已经等了520ns但你的MOS管说我还没关完呢。1.3 空载工况为什么最容易把死区不足暴露出来很多人不理解为什么带载的时候管子不热空载反而烫得厉害。这里有几个原因叠加在一起。空载时系统对功率损耗几乎没有消化的渠道。带载运行时能量大部分送给了负载MOS管的开关损耗混在负载电流产生的损耗里不太显眼。空载时理想情况下应该只有很小的空载电流一旦有额外的直通损耗所有热量都集中在MOS管本身温升会非常明显。空载时母线电压通常处于最高值。比如一个24V供电的半桥带载时母线可能被拉低空载时电压干净地压在桥臂两端直通期间的短路电流峰值更高瞬时功耗更大。空载时PWM占空比往往跑在边界区域。开环测试时很多人习惯把占空比设定在50%附近这个区域正是上下管切换最频繁、死区影响最敏感的工作点。每次开关周期都来一次直通即使每次只有几百纳秒20kHz频率下每秒就是上万次累积。空载时感性负载的软换流特性消失了。带电机或带变压器时负载电感在换流期间会通过体二极管续流直通电流的上升斜率被电感限制问题相对温和。空载时电感电流接近零一旦上下管同时导通母线到地之间几乎只有MOS管导通电阻和线路电阻直通电流上升非常快损坏风险成倍增加。2. 空载发热的排查链路从烫手到看见直通2.1 动手量波形之前先排除三个看起来像死区的坑我踩过的教训是空载发热不能一上来就断定为死区不足。有几种情况的现象和死区问题非常像但根因完全不同如果直接去改死区只会白忙活。第一个坑是VCC供电不足。IR2104的VCC范围是10V到20V如果你用了9V电池或者稳压后的8V给芯片供电输出驱动电压就不够MOS管栅极电压可能只有6V左右。很多MOS管在这个栅压下没有完全导通导通内阻偏大管子就会在线性区工作发热非常严重。这种发热是持续性的和开关切换关系不大。用万用表量芯片VCC引脚最好再用示波器看开关时的VCC跌落很多电源在瞬间大电流抽取下会被拉低一两伏。第二个坑是自举电容太小。IR2104高侧的供电来自自举电容VB-VS每次低侧导通时给电容充电高侧导通时由电容放电维持Vgs。如果电容容量不够高侧导通的后期Vgs会明显跌落管子从完全导通滑向线性区发热集中在高侧MOS管。测量方法是示波器直接量VB和VS之间的差压正常工作时应该稳定在VCC减一个二极管压降附近一旦工作期间电压持续跌落说明电容容量不足。第三个坑是栅极振铃。驱动回路如果走线太长、环路面积太大寄生电感会和栅极电容形成LC振荡栅极电压产生明显的过冲和振铃。过冲超过20V可能击穿栅氧化层负向振铃则可能导致管子误关断或误开通。这个问题和死区不足常常同时存在但处理方式完全不同。这几个坑建议在量波形之前先用万用表和示波器做一轮快速排查排除干净之后再集中精力去看死区。2.2 示波器测HO和LO的正确姿势空载发热的排查最核心的动作就是用示波器同时看上下管的栅源电压而不是只看驱动芯片的HO和LO引脚。这里有一个测量上的坑半桥电路中VS节点是高频浮动点它的电压在0V和母线电压之间跳变。普通示波器探头的地线夹是接大地的你绝对不能把地线夹直接夹在VS上那等于把桥臂中点对地短路轻则波形乱跳重则炸管。正确的做法是两路探头的地线都接在系统地COM上通道1测LO引脚对COM的电压通道2测HO引脚对COM的电压。注意HO对COM的电压包含了VS的摆动并不是真正的高侧栅源电压。如果你有两个探头都可以用用通道2测HO、通道3测VS然后利用示波器的Math功能做一次A-B减法减出来的就是真正的高侧Vgs。没有三个通道的示波器也可以先用一个通道测HO另一个通道测VS记录波形后做离线相减。带宽方面建议至少100MHz时基设置在200ns/div左右触发源选IN信号或LO信号重点观察开关切换沿。采样率不够的话死区窗口会被平滑掉几百纳秒的交叠很容易被错过。2.3 正常波形和直通波形的对比判断当正确测到上下管的Vgs后判断标准其实很简单死区时间内上下管应该都处于关断状态也就是两路Vgs都低于MOS管的阈值电压Vth。正常的波形是低侧Vgs先降到0V然后等待一段全低的空档高侧Vgs才开始上升。这段空档就是有效死区通常应该看到300ns以上的清晰间隔。异常的波形有两种情况。第一种是低侧Vgs还没降到Vth以下高侧Vgs就开始上升了两个管子同时导通。第二种是看起来波形有间隔但低侧Vgs的拖尾非常长实际上在很长一段时间内Vgs都高于Vth管子只是没有完全关断处于半导通状态这种半导通状态一样会发热而且比硬直通更隐蔽。所以我一直强调要看Vgs而不是只看驱动芯片输出。驱动芯片的HO和LO波形干净不代表MOS管栅极的开关行为干净。只有栅极电压真正低于Vth才算真正关断。2.4 几百ns直通到底能产生多少热量很多初学者觉得几百纳秒的交叉导通能有多大能量我们来算一笔账。假设母线电压24V上下管直通期间的平均电流10A直通窗口200ns那么每次直通损耗就是24V乘以10A乘以200ns等于48微焦耳。如果PWM频率20kHz每个周期有两次切换一次从低到高、一次从高到低每秒就是40000次直通总损耗接近2W。这个估算还是偏保守的。实际直通电流受线路电感和MOS管内阻限制但峰值很容易冲到几十安培。如果直通窗口达到500ns、平均电流20A损耗就超过4.8W。两块管子分摊每块也有2.4W的额外发热。在一个没有强制风冷的小散热片场景下2到3瓦的损耗足以让温度在几分钟内窜到六七十度这就是你摸到烫手的原因。值得注意的是直通损耗和母线电压成正比和开关频率成正比。所以高压系统、高频系统对死区时间的要求更苛刻。24V的板子直通几十瓦还不至于立刻炸管但如果是48V、72V的系统同样的死区不足就可能直接冒烟。3. 三步处理方案栅极回路、死区扩展、驱动供电一个都不能少3.1 第一步栅极电阻改成快关慢开把关断沿压回死区以内排查确认是死区不足导致的直通后我建议先做这个改动因为它最简单、改动最小、见效最快。原理一句话开通速度可以适当慢用于限制di/dt和EMI关断速度必须快把MOS管的实际关断时间压到IR2104死区以内。具体做法是给原来的栅极电阻加一个旁路快关通道。原来你是用一个电阻Rg串联在IR2104输出和MOS管栅极之间现在把Rg拆成两个电阻的思路保留一个开通电阻Rg_on再并联一个二极管Dfast串联一个关断电阻Rg_off的支路。二极管的接法有讲究关键要让它在开通时截止、关断时导通二极管阳极接MOS管栅极阴极接驱动芯片输出端。开通时驱动输出为高电平比如12V栅极初始为0V二极管承受反向电压不导通。充电电流只能走Rg_on开通速度由Rg_on决定。关断时驱动输出翻转为低电平0V栅极还维持在10V左右二极管正向导通放电电流同时走Rg_on和Dfast串联Rg_off两条路径关断阻抗大幅降低栅极电荷被快速抽走。参数上我常用的组合是Rg_on取10至22ΩRg_off取2.2至4.7Ω二极管用1N4148。如果驱动电流比较大、开关频率比较高可以换成US1M、SS14或者BAT54这类快恢复或肖特基二极管。注意绝对不要用1N4007来做这个位置它的反向恢复时间在微秒级别在高频栅极回路里不但不起加速作用反而会引入额外损耗。我实测过一组数据IRF540管子、10Ω栅极电阻时关断拖尾从10V降到Vth大约要600ns改成22Ω开通、3.3Ω关断结构后关断拖尾缩短到250ns左右直接压回了IR2104的520ns死区以内。3.2 第二步利用SD引脚扩展死区窗口兜住大电流管子的余量如果你用的管子Qg特别大或者并联了好几个MOS管即使做了快关慢开有效关断时间还是逼近甚至超过520ns这时候就需要在驱动层面额外扩展死区。IR2104的SD引脚是一个封锁输入低电平时HO和LO同时被拉低也就是让上下管全部关断。这个引脚恰好可以用来做死区扩展。基本思路在IN信号每次发生跳变时给SD引脚一个短暂的封锁脉冲宽度就是你想额外增加的死区时间。IR2104内部已经有520ns死区外部再叠加一个可调时间总的有效死区就是两者之和。我搭过的一个实用电路是用74HC86异或门做边沿检测。把IN信号分成两路一路直通XOR的一个输入另一路经过RC延时后接到XOR的另一个输入。由于XOR在两个输入电平不同时才输出高电平IN每跳变一次XOR就输出一个宽度约等于RC时间的高脉冲。这个脉冲再通过一个NPN三极管反相后接到SD引脚平时SD被上拉到高电平脉冲来时SD被短暂拉低实现封锁。RC值的估算公式很简单脉冲宽度约等于R乘以C。想额外加500ns可以用10kΩ电阻配47pF电容然后用示波器实测调整。注意逻辑门的翻转阈值会影响实际脉宽不要完全相信计算值一定要上示波器看。如果你觉得用异或门和晶体管搭电路太麻烦还有一个更稳妥但改动稍大的方案换用双输入型驱动芯片比如IR2101或IR2110直接由MCU高级定时器输出带死区的互补PWM。这个方法的好处是死区时间可以在软件里精确调节调试非常方便。缺点是需要改PCB和程序不适合快速验证。3.3 第三步自举电容容量与布局的复核消除栅压不足型发热前面说过空载发热有时候不是死区问题而是自举电容不够导致高侧管栅压不足。在实际整改中这一步一定要和死区优化一起做因为两者的现象经常交叉只改一边可能解决不了根本问题。自举电容的容量估算有一个常用公式Cbs至少要大于等于10倍的栅极总电荷除以允许的电压跌落。假如你的高侧管Qg是72nC允许的压降是1V那么Cbs要大于720nF取1μF才能留出余量。如果你是多个管子并联要用总电荷量来算。实际选型时我一般用4.7μF到10μF的X7R陶瓷电容或者电解电容并联一个0.1μF高频瓷片电容放在VB和VS引脚之间尽量靠近芯片。电容太小高侧导通后期Vgs会明显跌落电容太大且用普通电解ESR和ESL偏高高频特性差反而不利于瞬态响应。同时要检查供电引脚的去耦。IR2104的VCC和COM之间建议放一个10μF电解电容加一个0.1μF陶瓷电容也要求贴近芯片引脚。很多空载发热的板子问题就出在芯片供电的瞬间跌落上。最后一项是驱动回路布局。栅极电阻要紧挨着MOS管的栅极芯片到栅极的走线尽量短粗避免寄生电感引起振铃。如果布局已经定型没法大改可以在栅极对源极之间并联一个10nF到47nF的小电容吸收一部分耦合电荷但这样会降低开关速度属于折中方案。3.4 三步的执行顺序和参数调整经验这三步不是机械地全部执行而是有先后逻辑的。第一步快关慢开所有板子都建议做它是基础优化。改完之后用示波器重新测栅极波形如果有效死区已经恢复正常并且空载温升在可接受范围那就不需要第二步。第二步SD扩展是针对大Qg管子或极端工况的兜底手段只有在第一步做完仍然看到交叉导通时才需要加。第三步自举电容和布局检查应该是贯穿始终的排查项只要涉及到驱动发热都要顺手验证。调参时我的习惯是每次只改一个变量先改栅极电阻记录波形编号和温度数据再做下一步。千万不要同时改三个地方否则出了问题根本不知道是哪个改动引起的。温度测量用热电偶或红外测温枪记录环境温度、工作频率、占空比、运行时间和壳体温度这些数据对后续复现问题非常有用。参数调整有一个底线MOS管栅极电压的有效死区至少要保证150ns以上的清晰间隔低于这个值温度升高后很可能被拖入直通区。因为IR2104和MOS管的开关速度都有温度漂移管子温度越高关断越慢留出裕量很重要。4. 改完之后的实测波形对比、温升记录和工况复核4.1 修改前后HO/LO波形对比我拿一块实际的IR2104半桥板子做了前后对比。被测系统是24V供电IRF540N开关管PWM频率20kHz占空比50%空载运行。修改前测到的数据是这样的从驱动芯片输出引脚看HO和LO之间大约有380ns的死区看起来不算离谱。但把探头接到MOS管的栅极上问题就暴露了。低侧管关断时Vgs从10V降到Vth大概花了600ns这段拖尾直接越过了死区窗口。高侧管的Vgs早在低侧完全关断之前就开始上升两个管子出现了明显的交叉导通区域。用电流探头看母线电流每个开关周期都能看到一簇高频尖峰峰值接近3A。修改后把栅极电阻改成22Ω开通、3.3Ω关断结构同时把自举电容从0.47μF加大到4.7μF。再次测量低侧关断拖尾从600ns压缩到约250nsHO和LO之间出现了清晰的全低间隔有效死区大约320ns。母线电流尖峰几乎消失只剩小幅的寄生电容充放电电流。在这个案例里第二步SD扩展没有用到因为第一步做完死区已经达标。如果你的管子比IRF540N更大或者并联了两对以上的管子大概率还是需要做SD扩展的。4.2 温度实测空载10分钟、30分钟的数据温度变化是最直观的验证指标。测试环境是室温25℃散热片是20毫米乘20毫米乘10毫米的铝块自然对流没有风扇。修改前空载运行10分钟后MOS管壳温已经到62℃散热片温度55℃而且温度还在缓慢上升摸上去烫手。按照这个趋势继续跑下去温度很可能会突破100℃随时面临冒烟风险。修改后同样的条件下空载运行30分钟MOS管壳温稳定在41℃左右散热片大约36℃温升只有十几度完全在正常范围。用手摸散热片只是温热而不是烫手。这个结果说明之前的发热主体就是死区不足引起的直通损耗和管子本身的导通损耗关系不大。如果你改完之后温度还是偏高就要回头检查第一步到第三步是否有遗漏尤其是自举电容的容量和VCC供电稳定性。4.3 不同频率和占空比下的稳定性验证单点测试通过不代表所有工况都安全。我习惯在改完后做一轮频率和占空比扫描。频率扫描从10kHz到50kHz逐步增加观察每个频率点上的栅极波形和温升。修改后温升随频率上升的曲线很平滑没有出现某个频率点突然飙升的现象。如果在某个频率点发现Vgs波形开始出现交叉说明死区裕量仍然不够需要进一步加大外扩死区。占空比扫描从10%到90%重点观察两个极端区域的波形。低占空比时LO导通时间短要注意自举电容的充电时间是否足够高占空比时高侧导通时间长自举电容的容量承受考验。修改后我在10%和90%占空比下分别跑了10分钟波形稳定温度没有异常爬升。另外要特别提醒空载测试时建议在母线上串联一个几十欧姆的限流电阻再做实验。这样即使发生直通电流也会被限制住不会瞬间烧管给了你足够的时间去测量和观察。这个习惯我保持了很久救过不少板子。5. 排查死区问题时容易被带偏的几个知识点一次理顺5.1 死区不是越长越好过长照样有代价解决了死区不足很多人会走到另一个极端把死区调得很大觉得越大越安全。这个想法是错误的。死区期间上下管全部关断电流只能通过MOS管内部的体二极管续流。体二极管的导通压降通常在0.7V到1.7V之间远高于MOS管导通内阻上的压降所以死区时间越长续流损耗越大。在同步整流电路中这就是为什么要在死区结束后尽快打开对应的管子减少体二极管的导通时间。死区过长还会导致输出波形畸变。在逆变器应用中死区会造成输出电压的基波分量下降并引入谐波影响电机控制精度。在推挽或全桥拓扑中死区过大还可能造成变压器伏秒积不对称导致磁偏饱和。死区时间的设定原则应该是比最坏情况下的管子关断时间略大留出20%到30%的裕量而不是盲目增大。IR2104的520ns内部死区配合合理的栅极回路设计在中小功率MOS管上是够用的如果确实不够用SD扩展精确补充几十到几百纳秒就够了。5.2 米勒效应会让看起来关断的管子其实还开着米勒效应是MOS管开关行为中最容易误解的机制之一。MOS管有极间电容其中栅漏电容Cgd很关键。当漏源电压Vds发生剧烈变化时Cgd会像一个泵把位移电流注入栅极从而影响Vgs的波形。我见过一个典型案例半桥空载运行时高侧管正常导通低侧管处于死区关断状态。但是高侧管导通的瞬间开关节点VS的电压快速爬升这个高dv/dt通过低侧管的Cgd耦合到低侧栅极把Vgs瞬间抬高了2到3V。如果低侧管的阈值电压刚好是2V它就被虚开了和高侧管形成直通。这种现象在死区期间尤其危险因为此时另一只管子的栅极处于高阻状态耦合进来的电荷没有低阻抗通路泄放。解决思路有三个降低驱动回路的阻抗让耦合电荷更快泄放选择Cgd较小、Qg较小的管子在栅源之间并联一个小电容给耦合电流一个泄放通道。IR2104这类单电源驱动芯片无法提供负压关断所以只能通过外围电路和布局来抑制米勒导通。5.3 换管、换驱动、改频率之后必须重新验证死区这是一个容易被忽略的连带问题。很多人调好了一块板子过了几个月换了批量不同的MOS管或者改了开关频率结果死区问题又回来了。不同厂家、不同批次的MOS管即使型号相同Qg也可能有30%以上的差异。大电流管子换成小电流管子栅极电荷特性完全不同。如果把IRF540换成IRFP260这种大管子Qg从70nC增加到200多nC同样的栅极电阻下关断时间翻倍原来的死区裕量就消失了。所以我把空载10分钟加看死区波形作为硬件改动后的标准验收动作。任何涉及更换功率管、更换驱动芯片、调整开关频率或占空比范围的改动都要重新过一遍这个流程。十分钟的测试可以避免后面的批量问题。我自己在实际操作中的体会是IR2104这颗芯片的520ns内部死区本身设计合理绝大多数空载发热问题都不是芯片的锅而是栅极回路设计没有配合好。先量栅极波形再做快关慢开最后才考虑死区扩展这个顺序基本不会走弯路。希望这篇记录能帮你少烧几块板子。
返回列表