ARTICLE DETAIL

资讯详情

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

IR2104死区时间设计避坑:MOS管空载发热的米勒误导通实测解析

IR2104死区时间设计避坑:MOS管空载发热的米勒误导通实测解析 前两个月调一块直流无刷电机驱动板板子功能一切正常电机转得挺顺换相逻辑也对但跑了几分钟手一摸MOS管立刻缩回来烫得离谱。用测温枪打了一下散热器表面都过七十度了而且是在空载状态下。空载就这么热带载根本没法用。排查到最后问题出在IR2104的死区时间上。IR2104是电机驱动里用得最广的半桥驱动芯片之一但正因为大家默认它太成熟、太常见几个关键细节反而最容易跳过。这篇文章把完整的排查过程、实测波形、根因分析和Datasheet避坑要点都整理出来给正在跟MOS管发热较劲的朋友做个参考。1. 问题现场一块电机驱动板的发热故障实录1.1 板子配置与故障现象先说清楚板子是什么配置方便大家对号入座。主控用的是STM32F103C8T6用TIM1高级定时器生成三路互补PWM死区参数在单片机里也配了但当时想着IR2104自带死区所以单片机这边没有刻意加长。驱动芯片是IR2104SSOP-8封装驱动三个半桥。功率管是IRF540NTO-220封装100V耐压RDS(on)标称77毫欧栅极电荷Qg七十二库仑左右。电机是一个24V的直流无刷电机额定电流两安培左右PWM频率20kHz VCC 12V母线电压24V。故障现象很典型空载运行PWM占空比30%左右电机空转不到三分钟手放在MOS管上就待不住了。测温枪打外壳六十五到七十摄氏度。这个时候整个板子的表现是一切正常的电机没抖、没异响、没丢步电流也没明显失控纯粹就是热。这类问题难就难在电机还能正常工作大多数人不会第一时间怀疑是驱动部分出了问题而是先怀疑电机本身、散热条件、PWM频率选高了之类的。我也一样第一轮排查先排掉了一堆嫌疑。1.2 首轮排查先排掉最明显的嫌疑排查发热问题第一步永远是算账把每个损耗来源的大概量级算出来看哪个跟实测温度对得上。导通损耗首先被排除。空载电流实测只有0.55AIRF540N的RDS(on)算77毫欧再算上温度升高后的正温度系数等效内阻按120毫欧算单个MOS管的导通损耗P I² × R 0.55² × 0.12 0.036W。三个半桥六个管子加起来也就零点几瓦根本不可能把管子加热到七十度。就算带载三安培单个管子的导通损耗也才 3² × 0.12 1.08W分摊到散热器上温升也有限不至于空载就这么烫。然后是Vgs驱动电压。IR2104的VCC用的是12VMOS管栅极驱动电压接近12VIRF540N最低导通阈值2V12V的驱动电压对它来说非常充足这个方向也排除了。再试了降低PWM频率。PWM从20kHz降到10kHz理论上每秒钟开关次数减半如果发热主要是开关损耗温度应该有明显回落。实测温度只降了五六度说明开关损耗是问题的一部分但还有更关键的因素在作祟。到这里我基本锁定了方向要么是死区时间设置出了纰漏要么是死区期间的波形异常。接下的事情都得靠示波器说话。1.3 示波器一接上问题就藏不住了把示波器探头接在IR2104的HO和LO输出上看到上下管驱动波形是完整的互补PWM中间确实有死区实测大约500纳秒多一点跟Datasheet上标称的520ns典型值吻合。到了这一步单纯从逻辑上看IR2104工作得挺正常死区也是有的不该出问题。但把探头移到半桥中点和下管栅源之间问题立刻暴露了。放大看HO上升沿那个瞬间下管的Vgs波形上出现了一个正的尖峰幅度大约是2.5V持续几百纳秒正好落在死区窗口内。IRF540N的Vgs(th)阈值在2V到4V之间实测这只管子大约2.2V导通。2.5V的栅压尖峰已经超过了导通阈值。同时半桥中点的VS电压在死区期间不是平滑变化的而是伴随着剧烈振铃振铃幅度能到十几伏衰减时间超过一微秒。这两个现象叠加在一起事情就很清楚了IR2104给的死区时间里下管并没有真正关断干净栅极被异常抬升的电压干扰导致每个PWM周期里都出现一小段上下管同时微微导通的状态。这段微导通电流在24V母线上形成快速的电流尖峰每个开关周期来一次20kHz的频率下这个损耗相当可观根本不需要多大负载电流就能把管子烤热。2. 死区时间在保护什么从原理讲清楚2.1 半桥直通的危害上下管同时导通是什么后果在往下讲实测之前先说说死区时间到底在保护什么不然新手容易把注意力全放在死区时间长度这一个数字上忽略了它背后的物理机制。半桥电路上管和下管串联在母线和地之间。正常情况下同一时刻只允许一个管子导通上管导通时电流从母线流过电机下管导通时电流从电机流到地。如果上下管同时导通就相当于用两个低阻抗的MOS管把母线正极和地直接短路回路里唯一限流的东西就是PCB走线、MOS管封装引脚、还有母线电容的寄生阻抗非常小。在这种条件下电流可以在极短时间内冲到几十安甚至上百安直接把管子炸掉或者把PCB铜箔烧断。市面上很多炸管的案例表面上看是MOS管质量问题拆开分析后发现根因就是死区时间没处理干净。死区时间的本质是在上下管开关切换之间插入一段两个管子都关断的空白期确保一个管子完全关断之后另一个管子才开始导通。你可以想象成两个人过一扇门必须等前面那个人完全走出去、门关上了后面的人才开始推门否则两个人会卡在门框上。2.2 IR2104的固定死区时间是怎么来的IR2104和很多半桥驱动芯片不一样它的死区时间是芯片内部固定的不需要软件配置也不能通过外部引脚调节。Datasheet里头有明确标注术语叫Dead Time缩写tdt实测典型值520ns左右。它内部的逻辑电路会保证LO关断之后至少要等520nsHO才允许开通HO关断之后同样要等520nsLO才允许开通。两个方向都做保护不是单边的。为什么芯片自己内置死区因为单片机输出的互补PWM如果没有经过专门的延时处理在电平翻转瞬间很容易出现两路同时有效的情况哪怕只有几十纳秒的重叠在高频开关下也足以积累出可观的热量。驱动芯片内置死区后相当于在硬件层面把同一时刻上管和下管同时得到开通指令这种可能性直接消灭了。但这里有一个很多人忽略的点。IR2104的死区时间是一个逻辑层面的安全间隔它保证的是驱动信号不会同时为高。真正的隐患不在驱动信号本身而在管子自身的行为当上管快速的导通时半桥中点电压以极高的速度变化这个变化会通过MOS管的寄生电容耦合到下管栅极形成电学上的干扰逻辑上关断的管子实际上可能被这个干扰电压重新激活。这个机制正是我们这次发热问题的核心元凶。2.3 死区时间选多大才够用一个工程估算方法虽然IR2104的死区是固定的但学习死区时间的估算方法依然重要因为你在做其他设计时一定会碰到需要自己设置死区的场景比如用可调死区的驱动芯片或者用单片机直接输出带死区的PWM。工程上普遍接受的经验公式是死区时间必须大于上管关断时间和下管导通时间之间的差值再留出至少30%到50%的裕量。写成文字就是选择死区内时间时取上桥臂关闭的最坏时间减去下桥臂开启的最快时间把这个差值乘以1.2到1.5的安全系数再跟驱动芯片自身的最小死区时间做比较以较大者为准。简单说芯片的死区时间要覆盖住管子本身开关速度的差异。MOS管从收到关断指令到真正关断需要经历关断延迟时间和电压电流下降时间。功率管规格书里一般会给td(off)和tf等参数通常几十到一百多纳秒。如果是低速大功率管这个时间可能到两三百纳秒。死区如果小于关断时间就会出现前一个管子还没关完后一个管子就开始导通的危险窗口。反过来死区也不是越长越好。死区时间里电机电流无处可走只能通过MOS管体二极管续流体二极管的正向压降比MOS管导通压降高得多死区越长续流损耗就越大同样会发热。在低频大功率场景比如几百赫兹的逆变器死区时间可以放大到几微秒甚至十几微秒占周期比例小损耗可控。而在20kHz这种频率下一个PWM周期是50微秒500ns死区占比1%还算合理。一旦PWM频率再往上走比如高频电机驱动用50kHz甚至100kHz死区占比会成倍上升对波形的影响也会更明显到那个程度就要重新审视IR2104这类固定死区的芯片是否还合适了。3. 实测复盘MOS管发热的真正元凶3.1 死区窗口里的异常波形米勒误导通这次问题真正的元凶是死区窗口内发生的米勒误导通。先解释一下物理过程。MOS管栅极和漏极之间存在寄生电容Cgd也就是规格书里的Crss反向传输电容。我用的IRF540NCrss典型值大约50皮法不大但影响不小。上管开通时半桥中点VS从0V快速上升到24V。对下管来说它处于关断状态栅极被IR2104的LO输出钳在低电平但它的漏极就接在中点上漏极电压随着VS上升同步升高Vds在几十纳秒内从0V冲到24Vdv/dt非常大实测折算在0.8V/ns到1V/ns的量级。这个剧烈的电压变化加在Cgd上就会产生位移电流电流大小可以用下面的公式估算I Cgd × (dV/dt)代入实测量级50皮法乘以0.8V/ns的电压变化率算出来是40毫安。看着不大但这只是平均值实际在开关瞬间Cgd会随着漏源电压变化而剧烈变化峰值耦合电流能冲到一两百毫安。这个电流的流向是从漏极经过Cgd注入栅极节点相当于有外部电荷从外部往里给栅极电容充电。正常情况下这部分电荷会被驱动芯片内部低边输出管吸收掉。但问题是IR2104的LO输出到MOS管栅极之间还有驱动电阻和PCB走线这段阻抗上流过电流就会产生压降。电流200mA栅极回路总阻抗如果按30欧姆算就是6V的压降足够把栅极电压顶到阈值以上。实测波形正好印证了这一点HO上升沿出现后的死区窗口里下管Vgs出现了一个约2.5V的正向尖峰持续几百纳秒。这个电压超过了IRF540N的导通阈值下管被部分开通表现为半桥中点与地之间出现了一段微小导通。虽然导通深度不深电流不大但每个PWM周期来一次每秒两万次这就是热量积累的原因。3.2 为什么IR2104的520ns死区关不住这场事故看到这里你可能会有疑问IR2104不是有520ns死区吗为什么这520ns里下管还是会被干扰问题的关键在于IR2104死区时间保护的是驱动指令的逻辑关系它保证的是在死区时间内不会给下管发出开通指令。但它没法阻止物理层面电容耦合带来的电荷注入。换句话说芯片管得住自己管不住MOS管之间的寄生参数。实测中即使工作在死区时间内VS电压的振铃持续了超过一微秒衰减缓慢。也就是说上管导通瞬间产生的dv/dt和振铃实际影响时间远超520ns。死区结束时振铃还没完全平息如果此时IR2104按逻辑开始驱动下管开通栅极更是会迅速被拉高叠加之前就未完全消失的干扰下管很容易在某种程度上有额外导通。之所以振铃这么严重跟PCB布局关系很大。当时板子的功率回路走线较长母线电容离MOS管有一两厘米的距离寄生电感偏大。功率管开关瞬间寄生电感与MOS管输出电容形成LC谐振产生高频振铃。振铃频率可以在几十兆赫兹周期几十纳秒衰减时间长短取决于回路的阻尼而IR2104死区时间对此无能为力。所以这里我想强调一个观念死区时间不是越精确越好而是要结合管子开关特性和布局寄生参数一起看。芯片给的520ns只是最低保障如果你的布局、管子、栅极电阻组合不当520ns根本不够掩盖物理层面的异常。3.3 整改措施与整改后的实测数据定位到米勒误导通之后整改方向就非常明确了不是去调整一个不存在的死区时间而是把栅极的干扰抑制住。第一步在下管栅源之间并联一个1nF的陶瓷电容。这个电容的作用很直接Cgd注入的米勒电流经过栅极节点时就近通过这个电容回到源极而不是全部从驱动芯片引脚走。高频下1nF电容的阻抗只有几欧姆远远小于栅极回路走线和驱动电阻的阻抗等效于给干扰电流开了一条泄洪道栅极电压尖峰自然就被压下来了。实测加完这个电容后下管Vgs尖峰从2.5V降到了0.8V左右已经低于导通阈值效果立竿见影。第二步把下管的栅极驱动电阻从10欧姆调整到22欧姆同时把栅极走线缩短驱动电阻位置贴近IR2104输出脚。很多人以为增大栅极电阻会加重误导通因为它提高了栅极回路阻抗。但实际上增大栅极电阻延长了上管导通时间降低了dv/dt这会让Cgd的耦合电流整体下降双重作用下最终效果是正面的。栅极电阻的选择需要在开关速度和干扰抑制之间找平衡22欧姆对IRF540N这个级别的管子来说是合理的折中。第三步在半桥中点和母线地之间增加一个RC吸收电路用100欧姆电阻串联470pF电容。这个吸收回路可以给高频振铃提供一个阻尼路径实测加上之后中点电压振铃幅度明显收敛衰减时间从一微秒以上缩短到四五百纳秒。整改后的实测数据变化很大下管Vgs尖峰从2.5V降到0.8VVS振铃幅度减半母线空载电流从0.8A回落到0.55AMOS管外壳温度从七十度降到四十二度左右。同样的板子同样的PWM频率只是把干扰路径堵住了温度差了近三十度。这个对比足以说明MOS管发热不是非要从换更好的管子入手很多情况下是驱动电路的寄生参数在作怪。4. IR2104 Datasheet避坑指南4.1 参数表里的陷阱典型值、测试条件与极限值这次问题排查过程中我反复对照IR2104的Datasheet越看越发现里面有很多细节是新手容易踩坑的。第一个坑是典型值。Datasheet里标称的死区时间tdt是520ns你看着觉得挺安全但它是在VCC15V、环境温度25℃的条件下测出来的典型值。实际电路里VCC用的是12V温度可能到六七十度死区时间会有偏差可能变小也可能变大Datasheet给的是一个典型值不是最差值。对安全设计来说真正要参考的是最坏情况。如果芯片工作在临界状态这点偏差就可能让保护失效。第二个坑是传播延迟。IR2104从输入信号到输出信号之间不是瞬时的Datasheet里会给出开通传播延迟和关断传播延迟两者之间往往存在差异。死区时间本质上是在芯片内部输出信号上插入的延迟但如果输入信号本身经过逻辑处理后两路之间的传播延迟不一致实际加到MOS管栅极的互补波形之间的死区会和Datasheet标称的520ns有出入。所以严谨的做法是拿示波器实测输出端HO和LO之间的实际死区而不是相信软件配置或者纸面参数。第三个坑是UVLO欠压锁定。IR2104的VCC电压低于某个阈值时芯片会强制把输出关断防止驱动电压不足时MOS管工作在放大区导致过热烧毁。不同批次芯片UVLO阈值会有差异电源纹波大的板子一旦VCC瞬间跌落触发UVLO输出波形就会出现毛刺。很多电机运行中莫名抖动或者偶发过流根源就是VCC欠压导致驱动信号短暂丢失。第四个坑是绝对最大额定值。Datasheet里会标注VS脚允许的负压范围比如短暂负压不能超过-5V。实际电路里半桥中点在死区期间由于寄生电感振铃VS可能被拉到地以下好几伏如果低于芯片允许的负压限值芯片内部高压侧电路就可能被击穿。这也是为什么很多参考设计在VS脚对地加一个肖特基二极管钳位把负压限制在安全范围内。4.2 自举电路设计电容选型与VB电压跌落IR2104是半桥驱动上管栅极供电靠自举电路这也是电机控制里一个绕不开的坑。自举电路的基本原理是下管导通时VCC通过自举二极管给自举电容充电电容两端电压接近VCC下管关断、上管需要导通时电容上储存的电能给上管栅极驱动电路供电把VB对VS的电压维持在足够高的水平。自举电容的容量选取工程上可以按这个思路来估算电容上的电荷损失至少要能覆盖上管栅极的总栅极电荷还要留出裕量。简单写就是Cboot Qg_total / ΔV其中Qg_total是上管栅极电荷加上芯片消耗和漏电流的总和ΔV是允许的电容电压跌落值。实际电机驱动板自举电容用0.22uF到1uF都常见推荐使用X7R等温度特性好的陶瓷电容不要用Z5U或电解电容因为电容值会随温度、偏压大幅变化导致自举电压不稳。还有一个非常经典的坑上管长时间100%占空比导通时自举电容没有机会充电VB电压会逐渐跌落掉到UVLO阈值以下后上管驱动信号就会丢失。BLDC方波控制中换相逻辑要求某些相上管长时间导通如果调制策略没有给下管留出足够的导通时间窗口给自举电容充电电机就会出现高速转着转着突然缺相的现象。这次调试我没栽在自举上但之前遇到过所以特别提醒一下如果板子出现上管偶尔驱动不正常的现象先看VB对VS的电压有没有掉别急着怀疑芯片坏了。4.3 与MOS管选型的配合栅极电荷和米勒平台Datasheet避坑的另一个维度是IR2104和MOS管的匹配不能拿过来就随便接。选型时很多人只看耐压和导通电阻忽略了栅极电荷Qg。IR2104的输出驱动能力是有限的它给栅极充电需要时间管子Qg越大开通关断时间越长开关损耗也越大。同样频率下一个Qg 20nC的小管子和一个Qg 200nC的大管子用同一个驱动芯片波形相差会非常大。这次实测用的IRF540NQg七十多纳库对IR2104来说属于正常范围再大的管子压降就会明显。更值得关注的是米勒平台。MOS管从关断到导通过程中Vgs上升到平台电压后停留一段时间等Vds完成变化。米勒平台越长意味着管子长时间工作在电压和电流同时存在的线性区损耗越大。平台的电压高度也有讲究如果平台电压比较接近驱动高电平可能导致管子导通不充分一直工作在高阻区发热会急剧上升。所以拿管子时顺手看一眼Qg曲线比只看几个静态参数可靠得多。另外Crss反向传输电容直接决定了米勒反馈的强度。Crss越大上管切换时对下管的栅极干扰越强。如果板子布局受限、走线没法做到最短就尽量选Crss相对小一些的MOS管可以降低对栅极回路的依赖。5. 电机驱动MOS管发热排查思路与经验速查5.1 发热问题排查速查表这次经历之后我整理了一张MOS管发热问题排查速查表每次遇到类似问题就直接对照着查省去了很多冤枉路。故障现象可能原因检查手段整改方向空载就发热温度快速上升死区时间不足或米勒误导通示波器测死区窗口内的Vgs尖峰栅源并电容、调整栅极电阻、优化布局带载后发热空载正常导通损耗过大或散热不足计算I²R损耗、测满载温升换低RDS(on)管子、改善散热仅在某个PWM频率发热严重LC谐振或开关频率接近噪声敏感点扫频测试记录温度调整PWM频率、增加RC吸收上管时好时坏高速时丢相自举电容容量不足或VB电压跌落测VB到VS的电压波形加大自举电容、调整调制策略运行中偶发过流或炸管上下管直通检查驱动波形是否有交叠确认死区时间、检查驱动电源纹波低温/低压正常高温/高压异常UVLO临界或参数漂移监测VCC电压加固VCC去耦、提高供电电压余量排查时的顺序也有门道先看驱动波形正不正常再看死区窗口内的干扰然后看VCC和VS的波形最后才去计算热损耗。波形永远是最直接的证据别上来就替管子背锅。5.2 实测中的三个细节教训第一个教训是示波器探头接地线的影响。刚开始测下管Vgs时我用的是普通探头加一根长地线夹子测出来的波形振铃非常严重看起来好像是驱动芯片坏了。后来换成接地弹簧直接把探头地接到MOS管源极引脚上再测振铃幅度小了一大截。探头地线形成的环路就是个天线会拾取功率回路的磁场干扰测出来的高频振铃很大程度是假象。测死区窗口、测栅极尖峰这种微秒级甚至纳秒级的信号务必用短接地弹簧。第二个教训是测温度前先看波形。整改过程中我一开始只盯着温度变化改一个参数跑一圈测温效率极低。后来改成先看波形Vgs尖峰压到阈值以下、VS振铃收敛了再跑温度验证一次就过。温度是各种损耗的叠加结果波形是损耗的直接来源看波形定位问题看温度验证结果这个顺序不要搞反。第三个教训是改完参数要重新确认死区时间。IR2104这种内置死区芯片还好但如果是自己用单片机定时器配死区改了时钟频率、改了预分频系数之后之前设置好的死区时间可能莫名其妙变了。这个坑我踩过不止一次。5.3 死区时间相关参数的经验参考值最后给出一组工程上常用的经验参考值供设计初期快速估算用。这些数值不是绝对标准但作为起步值比从零开始容易得多。电机驱动PWM频率在10kHz到20kHz区间时死区时间建议在500ns到2us之间选取。用IR2104这种固定死区的芯片就是520ns起步问题不大用可调死区的芯片可以从1us左右起步再实测调整。PWM频率如果到50kHz以上死区时间尽量控制在1us以内否则死区占空比比例太高波形失真会很明显电流谐波和噪声都会增加。小功率MOS管比如Qg低于50nC的栅极电阻10到22欧姆比较常见栅源并联电容1nF左右大功率MOS管比如Qg超过200nC的栅极电阻可能需要33到100欧姆栅源并联电容可以放到4.7nF到10nF具体以实测波形不过冲、尖峰不超阈值为准。另外如果一个板子对损耗特别敏感从IR2104换成带可编程死区的驱动芯片比如IR2108或者IR2109这一类把死区时间从520ns适当放宽用牺牲一点波形质量的代价换取更低的直通风险也是一个值得考虑的方案。但前提是先确认发热的根源是死区相关的干扰而不是单纯的导通损耗或散热问题别把工具换了一遍问题却原封不动。这次调完再回头看故障的本质不复杂全是Datasheet边边角角的东西堆在一起酿成的。IR2104这芯片虽然稳但稳的是逻辑不是物理寄生参数。MOS管发热这件事十次里有七次不是管子不行而是没给它一个干净的开关环境。最后分享一个习惯新板子第一次上电把母线电压调到正常值的一半PWM占空比限制在10%以内用示波器同时盯着半桥中点和下管栅极确认没有异常尖峰再逐步往上加。这个方法帮我拦下了好几块差点冒烟的板子也希望这篇文章能帮你少走几步弯路。
返回列表