首页 / 资讯中心 / 文章详情

Buck电路MOS管发热?米勒效应是元凶,从波形到选型一次解决

Buck电路MOS管发热?米勒效应是元凶,从波形到选型一次解决 ★ FEATURED ARTICLE
不知道你有没有经历过这种场景一块小板子焊出来Buck电路空载电流只有几十毫安按理说应是很轻松的工作状态结果上电没两分钟开关管摸上去已经烫得不敢久握甚至能闻到板材烘烤的味道。我早期调Buck电源时没少吃这种亏。一开始怀疑电流采样、怀疑电感饱和、怀疑环路不稳定绕了一个大圈。最后是示波器戳到栅极波形上才发现问题根本不在负载而是在Vgs上升过程中被拉长的那段平台。这个平台就是功率MOS管的米勒效应在作怪。这篇文章我用自己的实际调试经历把Buck电路里MOS管发热和米勒效应的关系、实测波形到底怎么读、以及怎么把温度压下来一次讲清楚。内容适合刚入门做DC-DC电源的硬件工程师也适合做电机驱动、逆变器这类PWM驱动电路的同行参考原理都是相通的。1. 现象复盘Buck电路MOS管发热的常见路径1.1 先分清发热来源别上来就改参数遇到MOS管发热我现在的习惯是先不急着动电路而是先做一轮“热源判断”。用手背去触碰各个功率器件或者有条件就用热像仪扫一下先搞清楚到底是哪一颗管子热、旁边什么元件也热。如果只有上管热下管温度正常那大概率是开关损耗问题。因为上管在Buck拓扑里承担了从输入到输出的斩波功能每次开通和关断都发生在输入电压下开关应力远大于下管。如果上管和下管都热就要考虑是不是死区时间不对或者上下管存在共通导通的风险。如果电感也热那还要排查电感选型、磁芯饱和甚至纹波电流过大。如果输入或输出电容热问题可能出在电容的ESR和纹波电流额定值上。这个步骤很关键因为不同的发热模式对应完全不同的维修方向。你不先判断是哪一类问题一上来就换MOS管、加散热片很可能换了管子照样烫白折腾一圈。1.2 三类主要损耗开关损耗最容易藏在暗处MOS管在Buck电路里的损耗主要分三类导通损耗、开关损耗、驱动损耗。导通损耗是MOS管完全导通后导通电阻RDS(on)上产生的I²R损耗。这个损耗和占空比、负载电流直接相关负载越重损耗越大。不过导通损耗有迹可循算得清清楚楚而且在低压大电流的应用里占比更明显。开关损耗就狡猾多了。每次开关动作都会有电压和电流同时存在的交叠区间。MOS管不是理想开关开通和关断都需要时间在这段过渡时间里漏源电压VDS没有完全降下来漏极电流ID已经开始上升两者一相乘就是瞬时功率时间一积就是能量。开关频率越高这个能量被重复的次数越多损耗就越大。驱动损耗主要是栅极电容充放电带来的功耗通常由驱动芯片承担。如果驱动芯片烫那是它的功耗算小了如果MOS管烫驱动损耗一般不是主因。在实际Buck电路里MOS管莫名其妙发热、尤其是轻载或者空载就发热的情况十有八九是开关损耗在捣鬼。因为空载时导通损耗几乎可以忽略温度却仍然高说明每个开关周期都在白白浪费能量。如果用公式大致估算假设输入电压24V、负载电流5A、开关频率200kHz、开关动作交叠时间150ns那么仅开关损耗就有大约0.5×24×5×150ns×200kHz1.8W。一颗DPAK封装的管子热阻约50°C/W左右1.8W就能让它升温接近90°C。你摸上去不烫手才奇怪。2. 米勒效应让MOS管变成“慢性子”的元凶2.1 寄生电容三兄弟都藏在MOS管内部要说清楚米勒效应先得认识MOS管自带的三个寄生电容。MOS管内部天然存在电容结构栅源之间的电容叫Cgs栅漏之间的电容叫Cgd漏源之间的电容叫Cds。数据手册里你通常看到的是另外一组参数输入电容Ciss、输出电容Coss、反向传输电容Crss。它们和前面三个寄生电容的关系是CissCgsCgdCossCdsCgdCrssCgd。这个Cgd就是米勒效应的核心。它跨接在输入回路和输出回路之间一头连着栅极一头连着漏极。Buck电路里的功率MOS管恰恰工作在高电压摆幅的开关状态下漏极电压在开关瞬间会剧烈变化这个变化通过Cgd会反作用到栅极回路相当于给驱动电路增加了一个动态的等效电容负载。你可以这么理解本来驱动电路只需要给Cgs充电就能让栅极电压上升但Cgd把输出端的电压变化“耦合”回了输入端。输出端电压变化越猛输入端感受到的电容就越大。这个等效放大关系和处理器的密勒定理是一回事本质上就是反馈电容的倍增效应。2.2 一次完整的开关过程四阶段拆解拿NMOS的开通过程来看驱动电路向栅极注入电流栅极电压Vgs从0开始上升但整个开通并不是一步到位的可以拆成四个阶段。第一个阶段Vgs从0升到阈值电压Vth。这段区间MOS管没有导通漏极电流ID几乎为0漏源电压VDS维持在高电平不变输入电流全部用来给电容充电。第二个阶段Vgs从Vth继续往上走MOS管开始导通漏极电流从0逐渐增长直到等于负载电流。这个阶段VDS基本没变因为续流回路还在支撑输出电压。第三个阶段最有意思就是米勒平台。Vgs在这一段几乎被“钉”在原地不动。原因是漏极电压开始从母线电压往下掉Cgd正在被充放电驱动电流全部被Cgd“抢走”了没有多余的电流去给Cgs充电所以Vgs保持恒定。这段时间里漏极电流维持满载电流而漏源电压正在从高往低变化电压和电流在时间和空间上高度重叠开关损耗的核心就集中在这个平台期内。第四个阶段漏极电压已经降到接近0Cgd两端电压不再变化米勒效应结束驱动电流重新给Cgs充电Vgs迅速升到驱动电压管子进入深度导通状态随后电流和电压都稳定下来。关断过程是开通过程的镜像同样会出现米勒平台只是这次VDS是从低往高升损耗同样不小。2.3 米勒平台宽度从公式反推发热原因米勒平台持续的时间可以用一个很直观的公式估算T_platform ≈ Qgd × Rg / (Vdrv - Vgp)其中Qgd是栅漏电荷Rg是栅极驱动回路的总电阻Vdrv是驱动电压Vgp是米勒平台电压。Qgd这个参数在MOS管数据手册的“栅极电荷特性”曲线里可以直接查曲线中间那段水平区域对应的电荷量变化就是Qgd。Vgp则约等于Vth加上负载电流除以跨导不同负载条件下会略有变化。从这个公式能看到几条关键信息Qgd越大平台越宽Rg越大平台越宽驱动电压Vdrv越接近Vgp平台也越宽。也就是说如果选了一颗Qgd很大的MOS管又在栅极串了比较大的电阻同时驱动电压不够高那你的MOS管开关速度就会被严重拖慢米勒平台期变长开关损耗直线上升。这就是Buck电路MOS管发热背后最常见的组合拳管子选得偏大、驱动电阻串得偏大、驱动芯片能力又偏弱。三项叠加最终结果就是栅极波形上升缓慢开关损耗高得吓人管子发热严重。3. 实测波形拆解一组真实数据还原案发现场3.1 测试平台与仪器准备我当时的测试平台是一块同步Buck降压板输入12V输出3.3V开关频率400kHz负载电流大约10A测量对象是同步整流管即下管。示波器用的是200MHz带宽、2GSa/s采样的常规型号电压探头用了无源探头配上弹簧接地针。这里有个很重要的细节测栅源电压Vgs接地一定不能用探头自带的那种长地线夹子。长地线会形成寄生电感在开关瞬间引入严重的振铃让你误以为是电路自身的问题。正确做法是使用探头标配的短接地弹簧或者在MOS管引脚上绕一段尽量短的接地线让测量回路面积最小。另外一个要注意的是测上管和下管的方法不一样。如果测同步Buck的上管源极是开关节点是浮地的就需要用差分探头或者隔离探头。当时为了安全起见我选择测下管下管源极直接接功率地普通探头加短地就很准确。测量时我同时接了CH1到Vgs、CH2到VDS漏源电压触发源选Vgs上升沿时基开到100ns/格先观察一个开关周期的完整波形。3.2 有问题的Vgs波形长什么样示波器波形出来的那一刻问题就写在脸上了。Vgs不是我想象中那种干净利落的方波上升而是在中间出现了一个明显的平台平台宽度大约180ns。平台之前的上升段和平台之后的上升段斜率明显不同平台之后的斜率更陡这个特征就是典型的米勒平台。同时看VDS波形下降沿也印证了这一点。VDS从12V降到接近0V整个过程拖了大约300ns其中大部分下降发生在Vgs的平台期内。也就是说从驱动IC发出指令到MOS管真正完成导通栅极电压爬升加上米勒平台消耗掉了大半个周期的时间比例。我当时用的MOS管是一颗Qg比较大的大电流管子栅极电荷特性曲线显示其Qgd大约38nC。驱动部分用的是芯片内置驱动器外部又串了22Ω的栅极电阻。根据前面的平台宽度公式算下来平台时间大约就是一百多纳秒的量级和实测吻合。这说明一个很直接的问题开关管根本不是在快速切换而是慢吞吞地“磨”过去的。每一轮开关电压和电流都长时间交叠能量大量转化为热量温度自然压不住。3.3 从波形里读出损耗大小有了波形数据可以用示波器自带的数学功能做更精确的损耗测量。如果手头有电流探头就把电流探头夹在漏极回路电压探头测VDS然后在示波器上做CH1乘以CH2的数学运算得到瞬时功率波形。再通过面积积分功能累加就能读出每个开关周期的开通损耗和关断损耗能量。没有电流探头也没关系工程上可以用近似公式估算。用前面测到的数据输入电压12V负载电流10A开通加关断的开关时间合计约350ns开关频率400kHz。代入公式P0.5×VIN×I×t_sw×fsw0.5×12×10×350ns×400kHz≈8.4W8.4W的开关损耗对于一颗SOP-8封装或者DPAK封装的管子来说远远超出了安全热预算。这种状态下不烫手才是怪事。把波形截下来以后我又做了一组对比实验把栅极电阻从22Ω降到4.7Ω再测同一组波形米勒平台宽度立刻缩窄到80ns左右VDS下降沿也快了一倍多管子表面温度肉眼可见地降下来了。这一步对比实验基本实锤了米勒效应导致开关时间过长是发热的主要根源。4. 对症下药从驱动到选型逐层解决发热问题4.1 驱动力不够先算一算你需要多大驱动电流米勒效应本身不是问题问题在于你有没有足够的电流迅速地完成对Cgd的充放电。想要平台窄核心思路就是增大驱动电流。工程上一般会把开关切换时间控制在开关周期的1%到3%。以400kHz为例一个周期2.5μs开关切换时间大概需要控制在25到75ns的区间。然后按公式估算驱动电流Ig ≈ Qg / t_target如果MOS管的总栅极电荷Qg是20nC目标开关时间50ns那驱动电流至少需要0.4A。很多芯片内置驱动器的输出能力只有几十到一百毫安这种驱动电流根本喂不饱快速开关的需求。碰到这种情况要么换驱动能力更强的芯片要么外接专用的MOSFET驱动芯片。选驱动芯片时不要只看峰值电流还要注意驱动芯片每个通道的拉电流和灌电流能力以及是否支持死区时间可调。同步Buck上下管驱动需求略有差异但峰值电流能力至少要留出30%以上余量。4.2 栅极电阻、驱动芯片、加速关断怎么配栅极电阻不是不能串而是要学会分开串。开通过程和关断过程对电阻的要求不一样开通电阻大一点可以控制dv/dt、抑制振铃和EMI但关断电阻如果也大关断就会变慢关断损耗随之上升。比较实用的做法是使用“开通电阻和关断电阻独立”的结构。驱动芯片输出端先串联开通电阻再在电阻两端反向并联一个二极管加关断电阻的组合。栅极驱动电流上升沿走开通电阻下降沿通过二极管直接走关断电阻这样可以把关断时间单独调快不受开通电阻限制。对于米勒效应引发的误开通风险也就是栅极出现电压尖峰导致上下管共通导通的问题可以增加负压关断电路或者使用带米勒钳位功能的驱动芯片。当检测到栅极电压低于阈值时芯片会主动把栅极拉到地防止Cgd耦合过来的位移电流把Vgs重新抬起来。如果只是为了抑制振铃而一味增大栅极电阻这个方向要谨慎。振铃的根源往往是PCB布局寄生电感太大治本的办法是优化layout、减小驱动回路面积、缩短功率回路而不是靠加大栅极电阻把开关速度降下来换取振铃收敛那样做损耗代价太大了。4.3 换管子别只盯着RDS(on)还要看QgdMOS管选型是容易踩坑的地方。很多工程师选型时只看RDS(on)小、电流大却忽略了寄生电容参数。实际上在Buck这种高频开关电路里RDS(on)小往往意味着芯片面积大而芯片面积大意味着寄生电容大、Qgd大开关损耗高。两者之间存在一个权衡不能只看一头。数据手册里有一个评估指标叫FoMFigure of Merit通常定义为RDS(on)与Qg的乘积。FoM越小说明管子在导通损耗和驱动损耗之间的平衡越好。但对高频Buck而言更值得关注的是Qgd这个参数因为它直接决定米勒平台宽度和开关损耗。同步Buck电路中上管和下管的选型侧重点其实不一样。上管主要承担开关损耗应该优先选Qgd小、Crss小的管子稍微牺牲一点RDS(on)无所谓。下管主要承担续流导通损耗可以优先选RDS(on)小的管子因为下管通常是零电压开关开关损耗占比相对较低。选型时还要看栅极电荷特性曲线中的平台电压VgpVgp过高会增加驱动电路的负担。有些低压应用想用5V驱动但管子Vgp在3V以上甚至更高那驱动裕量就明显不足平台时间会被拉得很长发热问题还是解决不了。4.4 PCB布局与实测注意事项别让波形假象骗了你驱动回路的布局直接影响米勒效应的表现。栅极驱动信号从驱动芯片输出脚到MOS管栅极、再从源极回到驱动芯片地这个回路的面积一定要尽量小。回路面积越大寄生电感越大开关瞬间在寄生电感上产生的压降会与栅极电压叠加造成波形振铃甚至误导通。特别提醒一下共源电感的问题。很多人只关注栅极走线忽略了源极引脚的寄生电感。MOS管的源极在开关回路和驱动回路里是共用的源极引脚的寄生电感产生的压降会抵消一部分栅极驱动电压导致有效Vgs上升变慢、开关速度下降。解决方法是让功率地和驱动地分开走在控制IC的地引脚附近单点汇合栅极驱动回路不要借道功率回路。调试时测Vgs位置也讲究。有人图方便把探头夹在驱动芯片的输出引脚上测出来的波形和MOS管栅极引脚上的波形差别很大。正确的位置是夹在MOS管栅极和源极的引脚根部越靠近封装本体越好这样才能真实反映管子感受到的驱动电压。如果怀疑波形上的振铃是探头造成的假象换用弹簧接地针再测一次滤掉测量回路的影响再做下一步判断。5. 常见问题与排查技巧实录5.1 常见发热场景速查表发热场景主要原因排查方向空载或轻载时MOS管发热明显开关损耗过大查Vgs波形平台宽度、VDS切换速度满载时发热才明显导通损耗和开关损耗叠加计算I²R同时测开关波形上管明显比下管热上管开关损耗为主查上管Qgd、驱动能力、栅极电阻下管明显比上管热死区不足或续流损耗大查死区设置、下管RDS(on)连接负载后管子热、波形还正常电感饱和或采样电阻异常查电感电流波形是否异常尖峰栅极电阻调小后振铃严重、更热回路寄生电感大、谐振先改布局再考虑用磁珠等方案驱动芯片也跟着烫栅极电荷大、频率高驱动功耗超限换驱动能力更强的芯片或降频5.2 几条独家避坑经验调试过程中我踩过的坑挑几个最典型的分享出来。第一示波器地线夹子的坑。早期我用长地线夹子测Vgs测出来一大堆振铃误以为是自己驱动电路没做好反复调栅极电阻浪费了好几天。后来换成弹簧接地针振铃立刻消失大半。测量波形有异常先排除测量方法问题再怀疑电路问题。第二用仿真软件先跑一遍很有帮助。像Multisim、TINA-TI这类工具仿真Buck电路的波形即使精度和实测有差距也能帮助理解米勒平台的产生过程。建议先仿真、再实测同一个电路形态两种手段交叉验证理解会深很多。第三手边没有电流探头时可以通过对比不同栅极电阻条件下VDS下降沿的时间和管子温度间接判断开关损耗是否改善。虽然不够精确但工程上足够定位问题。第四同步Buck电路的上下管测量方法不一样。测上管Vgs一定要用差分探头普通探头直接夹上去测到的波形是假的因为参考点选错了而且存在短路风险。第五调栅极电阻要有全局观。电阻调小开关损耗降低但振铃和EMI会变大驱动芯片应力加大。工程上要做的是在损耗和EMI之间找到平衡点不一定非要极限追求最小开关时间。一块稳定的板子比一块理论效率高但每次调试都让人提心吊胆的板子更值得追求。6. 从一次发热问题看归纳思路这次排查经历让我对电源调试有了新的认识。MOS管发热不是孤立的问题它是驱动电路、寄生参数、PCB布局、器件选型多个因素博弈的结果。米勒效应是这段博弈里最容易被忽视的“变量”它一直存在只不过在驱动能力不足时才会被放大成可见的问题。在Buck电路的设计和调试中遇到发热问题先要做的是把开关波形打开看一遍。Vgs的上升斜率、米勒平台的宽度、VDS的下降速度这三个要素基本决定了开关损耗的大头。如果平台宽优先从驱动电流、Qg偏大的管子、过大的栅极电阻这几条路径去优化。如果波形很干净但管子仍然热才需要去查导通损耗、散热条件、环境温度这些因素。我个人在实际操作中还有一个小习惯每改一次参数就记录一组波形和温度数据用表格存起来。尤其是栅极电阻改了几档、驱动芯片换了几种把对应的平台宽度、VDS切换时间、稳态温度填进去很容易看出趋势。这套方法看起来笨但在多轮调试中非常管用能帮你快速找到最优参数区间而不是凭感觉反复试。最后再分享一个小技巧如果设计空间允许可以在MOS管源极串联一个很小的采样电阻专门用来观察真实的电流波形。把电流波形、Vgs、VDS三路信号同步采集你就能非常直观地看到电流和电压的交叠区间开关损耗的数值和变化趋势全部一目了然。有了这个基础米勒效应带来的发热问题就不再是玄学而是可以被计算、被优化、被解决的具体工程问题。
阅读完成 · 觉得有帮助?
咨询建站