
1. 先把账算明白MOS管的热到底从哪来MOS管发热这两年问我的人特别多尤其是做电机驱动、电源模块、电瓶车控制器这一拨朋友。很多人第一反应是管子选小了吧然后去换一个电流更大的型号结果温度照旧。真正常见的根因其实不是额定电流不够而是损耗没算清、驱动没做对、散热路径没打通。这一节我先把热的来路拆开后面所有解决办法都建立在这笔账上。MOS管的损耗可以粗暴地分成四块导通损耗、开关损耗、栅极驱动损耗、输出电容与体二极管带来的附加损耗。前两块是大头占据了绝大多数场景里八成的发热量后两块平时不起眼但在高频、大Qg、桥式拓扑里会悄悄吃掉几个瓦甚至直接烧管。你把四块拆开各自估一遍再相加得到的数才是真正要让散热结构去扛的功耗。凡是拍脑袋说这个管子30A我走10A肯定不热的判断基本都是踩坑的开始。1.1 导通损耗不是简单的I²R导通损耗的公式是 P I² × Rds(on) × DD是占空比。看着简单但有一个坑数据手册首页那个醒目的10mΩ、5mΩ几乎都是25℃、Vgs10V条件下的典型值它是给采购和选型做横向比较用的不是给你算实际温升用的。真实的MOS管在结温升高以后沟道载流子迁移率下降Rds(on)会往上走常见的工艺在100℃时是25℃的1.4倍到1.8倍有些高压超结器件更陡接近2倍。你按25℃的值算完功耗觉得没问题实际结温一升功耗又涨结温再升这就是典型的正反馈热失控路径。所以我的习惯是第一次算用100℃的Rds(on)查手册里那条归一化曲线或者干脆按1.6倍估算出功耗和结温之后回头校验一下这个结温对应的Rds(on)是不是和你假设的接近偏差大就再迭代一轮。通常两轮就收敛了不会超过五分钟。这个先用高温值算、再回头看的顺序比先用标称值算然后发现超温再来改来回省的时间多得多。还有两个细节经常被漏。一个是Vgs的实际值不等于你驱动芯片标称的输出值栅极串联电阻上会有压降驱动能力弱的IO口被Qg一拉实际栅压可能只有8V甚至更低而Rds(on)在Vgs从10V降到8V时会明显恶化逻辑电平管的曲线更要仔细看。另一个是电流不是直流电机、PWM负载的电流波形是带纹波的有效值比平均值高算功耗时要用有效值或者用平均电流配占空比别直接用万用表的平均读数。提示数据手册里的Rds(on)至少要看三个条件的组合——Vgs、Id、Tj。只看一个数字就下结论是选型翻车的头号原因。1.2 开关损耗真正让管子瞬间升温的那部分开关损耗发生在Vds和Id同时不为零的那段时间也就是电压电流交叠区。近似公式是 Psw 0.5 × Vds × Id × (t_cross_on t_cross_off) × fsw其中t_cross是电流和电压波形交叠的时间不是整个上升时间。另一种更接近实际手算的方式是用米勒电荷t_sw ≈ Qgd / IgIg是你在米勒平台期间实际能灌进栅极的电流。这两种算法我更常用后者因为Qgd在手册里是现成的而Ig可以通过驱动电压除以总栅极电阻估出来。拿一个具体例子说。24V母线、10A负载、fsw20kHz交叠时间合计200ns那Psw 0.5 × 24 × 10 × 200ns × 20kHz 0.48W。这个数字和导通损耗假设100℃的Rds(on)15mΩ、D0.5导通损耗0.75W差不多一个量级。很多人只盯着导通损耗觉得0.75W不大结果漏掉了另外0.48W加起来已经在1.2W以上了。在SOT-23、DFN这类小封装上热阻动辄50~80℃/W1.2W就是能把结温推到120℃以上的量级。开关损耗最讨厌的地方在于它和频率成正比、和交叠时间成正比而交叠时间又和驱动强度、栅极电阻、米勒电荷直接相关。频率一提高比如为了减小电感体积把PWM从20k提到100k开关损耗直接翻五倍管子立刻烫手。所以遇到换个工况就发热的问题先问频率变了没有、驱动改没改比怀疑管子真假有用得多。1.3 容易被忽略的栅极损耗、输出电容损耗和体二极管损耗栅极驱动损耗 Pg Qg × Vgs × fsw这部分能量主要消耗在驱动芯片、栅极电阻和MOS内部的栅极电阻上严格说不算MOS管沟道的热但大Qg管子在高频下这部分功耗会让驱动芯片先扛不住进而导致驱动波形边沿变缓、开关损耗进一步上升形成连锁反应。比如Qg60nC、Vgs10V、fsw100kHzPg就是0.06W单看不大可如果你用了四路并联、频率又高这个数字就会变得可观栅极电阻的封装功耗也要跟着核对。输出电容损耗来自Coss在每个开关周期被充放电能量 Eoss 0.5 × Coss × Vds²硬开关时基本全部变成热P Eoss × fsw。Coss是非线性的手册会给一条曲线或者直接给Eoss数值直接用Eoss乘频率最准。硬开关的桥式电路里这块损耗常常和开关损耗叠加属于你没注意到但它在发热的典型。软开关拓扑LLC、移相全桥之所以效率高很大一部分原因就是把这块损耗回收掉了。体二极管损耗在桥式、同步整流、双向电路里必须单独考虑。死区期间电流走体二极管正向压降约0.7~1.2V比沟道导通压降高得多死区结束后体二极管需要反向恢复Qrr带来的损耗和振铃会同时伤害效率和EMI。死区设置过长体二极管导通时间就长发热跟着涨设置过短又可能直通。这个平衡点需要用示波器看波形来定不是抄一个固定值就完事。2. 结温怎么算从功耗到温度的热阻链路算完损耗接下来才是真正决定烫不烫的部分——热阻。两片功耗完全相同的板子一片温热一片烫手差别几乎全在热阻链路上。很多人换了大电流的管子温度没降原因就是封装没变、铜皮没加、散热路径没变热阻一模一样功耗反而因为Qg更大而上升了。2.1 热阻链路的串并联关系热从结到空气走过一条串联的路结到壳RθJC、壳到散热器或PCBRθCS或RθJB、散热器或PCB到环境RθSA或RθJA。总热阻就是这几段相加结温 Tj Ta P × (RθJC RθCS RθSA)。数据手册会给RθJC结到壳一般几℃/W和RθJA结到环境无散热器时几十到上百℃/W。注意RθJA往往是按JEDEC标准板测的你的实际PCB铜皮面积如果比标准板小真实RθJA会比手册更差所以我自己估的时候会留20%~30%的余量。壳到散热器这一段经常被忽视。用硅脂的话薄而均匀涂布大约是0.1~0.3℃/W但涂太厚反而变差用导热垫片是0.5~1.5℃/W方便但代价明显绝缘垫片加硅脂的组合要再算上垫片本身的热阻。DFN、QFN这类贴片封装靠PCB散热散热焊盘下面的过孔阵列和铜箔面积就是你的散热器一个过孔的热阻不小靠数量堆通常一个散热焊盘下面打6~16个过孔是有意义的。注意结温上限一般标150℃但设计目标我建议压在125℃以内。留出的这25℃余量是给环境温度偏高、风道变差、器件参数分散这些不确定因素准备的。贴着150℃设计的板子在夏天和密闭机箱里会很难看。2.2 一次完整的结温估算实操还是用上面那个例子串一遍。功耗合计导通0.75W 开关0.48W Coss和驱动约0.1W取1.3W。用TO-252封装RθJC约2.5℃/W加导热垫片到小散热片RθCS取1℃/W散热片自然对流RθSA取20℃/W环境温度按50℃机箱内实际值。算下来Tj 50 1.3 × (2.5 1 20) 50 30.6 80.6℃看起来挺安全。但如果为了省空间把散热片去掉直接用PCB铜皮散热RθJA按60℃/W算Tj 50 1.3 × 60 128℃已经踩在红线上了而且这个60还是手册理想板的数据。所以同一个电路加不加散热片能带来接近50℃的差别这就解释了为什么同样的电路有的人做得温温的、有的人做得冒烟。算完之后我会做两件事一是用红外测温枪在实际工作十分钟后测壳温壳温加P×RθJC大概就是结温和估算对照二是把环境温度按最坏情况比如夏天封闭机箱里60℃再算一遍看余量还剩多少。这两步花不了几分钟但能提前发现大量隐患。2.3 SOA曲线的正确打开方式SOA安全工作区曲线在什么场景下才是主要约束答案是器件工作在线性区或者过渡区的时候——也就是Vds和Id同时都不小的时刻。典型的例子有软启动/缓启动电路、电子负载、热插拔、有源钳位、恒流充电、负载开关的限流阶段。这些场景里管子不是完全导通而是用沟道当可变电阻此时不能只看Rds(on)必须回到SOA图上逐点核对。SOA图要看懂几条边界。右侧竖线是Vds耐压极限顶部横线是封装和键合线的电流极限中间那条斜线是等功率线左上那条贴着Rds(on)限制线的区域才是完全导通的安全区。图上会有一组带时间的曲线直流、100ms、10ms、1ms、100us脉冲时间越短允许的瞬时功率越大因为热还没扩散出去。直流那条线最保守连续工作的电路必须按它来查。还有一个容易被忽视的区域高压小电流区的热不稳定边界有的手册会画出这一段的折弯。双极型器件有二次击穿MOS管虽然没有二次击穿这个说法但在局部热点导致电流集中时同样会出现热不稳定SOA图上那一段用不同颜色或虚线标出越过就会失效。新手最容易犯的错是拿SOA图当任何条件下都能扛的万能钥匙实际上它只是一张在特定壳温、特定脉冲条件下的许可范围图壳温一变整张图都要重新评估。线性区应用还有一个反直觉的结论并联多颗MOS管不一定能均流。因为阈值电压和跨导存在离散性温度升高时Rds(on)上升本来有自动均流趋势但在恒流/线性工作区这个机制会失效反而可能出现单管承担大部分电流。所以线性区并联要么严格配对要么每管单独加均流措施不能照搬开关应用的并联经验。3. 驱动电路发热问题里被低估的重灾区我处理过的发热案例里大概有六成左右的根因不在功率回路而在驱动。表现都是管子发烫、波形难看、效率上不去。这一节讲三个最关键的驱动问题栅极电阻怎么选、米勒效应怎么处理、驱动能力和死区怎么配。3.1 栅极电阻的取舍逻辑栅极电阻Rg决定了开关速度。Rg小充放电快交叠时间短开关损耗小但di/dt和dv/dt大振铃、EMI、栅极振荡的风险上升甚至可能因为寄生电感导致的电压尖峰超过Vds耐压。Rg大则相反。所以Rg不是越小越好也不是越大越稳它是在损耗和干扰之间找一个能接受的平衡点。实际操作上我会先用一个偏大的值比如10Ω~22Ω把电路跑起来用示波器同时看Vgs和Vds。如果Vgs有明显的振铃或者台阶式振荡说明Rg偏小或者布局寄生电感太大先把Rg调大如果开关损耗导致明显发热再逐步减小Rg同时确认Vds尖峰没有超过耐压的80%。这个过程通常来回两三遍就能定下来。手册里推荐的Rg值只能当起点因为实际的驱动阻抗和PCB寄生参数每个板子都不一样。还有一点很多驱动芯片内部已经串了一个小的栅极电阻比如2~5Ω你在外面再串一个总阻值是相加的算驱动电流的时候要把这部分算进去。另外栅极电阻自己也是有功耗的高频率大Qg时别用一个0402的电阻硬扛换成0805或两个并联更稳妥。提示栅极电阻到MOS栅极的走线要尽可能短驱动回路的面积要小。驱动回路的环路面积大寄生电感就大同样Rg下振荡更明显这时候你被迫加大Rg又牺牲了开关速度陷入两难。3.2 米勒效应与加速关断米勒效应来自Cgd也就是Crss。开关过程中当Vds开始变化Cgd会通过位移电流把这段变化耦合回栅极把Vgs钉在一个平台上这就是米勒平台。平台期间漏极电压在变、电流基本不变这段时间的长短直接决定开关损耗。米勒电荷Qgd越大、驱动电流越小平台就越长。加速关断的经典做法是在栅极电阻上反并一个二极管或者二极管串一个小电阻。开通时电流走原来的Rg关断时电流走二极管那条低阻通路关断更快、损耗更小。如果开通也要快那就做成分开的开通/关断电阻开通支路一个电阻、关断支路二极管加电阻分别调。这个方法在电机驱动、桥式电路里非常常见成本几乎为零效果立竿见影。米勒效应还有一个更危险的后果半桥结构里下管开通瞬间上管的Vds快速上升通过Cgd把上管栅极电压抬起来如果超过阈值电压上管就会误导通形成上下管直通瞬间大电流管子直接炸。解决办法包括给栅极加负压关断驱动芯片支持的话、加大栅极关断电阻到地的钳位强度、使用带密勒钳位的驱动芯片、降低dv/dt。这类问题在示波器上表现为Vgs出现一个尖峰毛刺看到这个波形就要立刻停下来处理不能带病上电。3.3 驱动能力和死区时间驱动芯片的峰值电流能力要用足。Ig (Vdrive - Vplateau) / Rg_total如果驱动芯片只能给200mA你在米勒平台期间就只有200mA可用Qgd是20nC的话平台时间就是100ns开关损耗自然大。所以大功率场合要用能出1A、2A甚至4A峰值电流的驱动器或者用推挽三极管搭图腾柱。这里有个取舍驱动能力太强、Rg太小dv/dt过大会引起振铃和EMI所以要配合Rg一起调。自举电容是另一个高频故障点。自举供电给上管驱动容量不足时上管栅极电压在开关过程中会被拉低导致上管工作在半导通状态发热剧烈、甚至失效。容量按Qg的10倍以上估算比较稳比如Qg50nC自举电容至少0.47uF实际用1uF更常见。同时要检查自举二极管的反向恢复速度慢恢复二极管在高频下会拖累自举电压。死区时间是桥式电路里唯一一个必须存在但不能多余的参数。死区太短上下管直通死区太长体二极管导通时间增加损耗上升、温升明显。设定方法是用示波器看上下管的Vgs波形逐步缩小死区直到刚好不出现直通电流尖峰再留一点余量。不同温度下开关时间会漂移所以这个余量不能省。4. 不同场景下的发热排查思路同样的发热现象在不同的电路里指向的根因差别很大。这一节按场景拆开讲都是我在实际项目里反复遇到的类型。4.1 PWM调速与电机驱动PWM驱动电机的场景发热几乎都集中在几个点上。第一是频率选择频率太低比如1kHz以下电机有啸叫、电流纹波大频率太高开关损耗成倍增加。中小功率有刷电机常用的区间是15k~25kHz既避开人耳敏感频段又不会让开关损耗失控。第二是续流路径电机是感性负载关断时电流需要续流用体二极管续流压降高、发热大所以同步整流或者并联快恢复二极管/肖特基能明显降低温升。第三是占空比工作点如果负载经常工作在50%占空比附近开关损耗的占比最大此时尤其要关注驱动。电瓶车控制器是个典型例子。48V母线、相电流几十安培六管三相桥。这里发热最常见的原因不是管子选得不够大而是母线电容容量不足导致电压尖峰、相线走线太长导致寄生电感大、驱动电阻偏大导致开关慢、散热片和管子的接触面积不够。我见过同一套方案只是把驱动电阻从22Ω降到10Ω、同时把母线电容翻倍管温直接降了二十多度。所以遇到这种场景先看波形再换管子顺序别颠倒。MOS管在这里是双向导电的沟道加体二极管所以理解电流方向能不能反这个问题对分析续流很重要沟道是双向的体二极管只能从源到漏N沟道单向导通。同步整流就是利用沟道的双向性把续流电流从体二极管转移到沟道上压降从0.8V变成I×Rds(on)损耗下降一个数量级。4.2 防反接、电平转换与双向开关防反接电路里用P沟道MOS管串在电源正极是常见做法N沟道串负极也行看系统参考地怎么定。这类电路的发热通常来自两点一是选型时只看静态忽略了启动瞬间的浪涌电流浪涌期间管子工作在线性区SOA不够就热失效二是栅极驱动电压不足导致Rds(on)偏大。N沟道的防反接需要自举或者电荷泵抬压很多低成本方案直接用P沟道但P沟道的Rds(on)同尺寸下比N沟道大选型时要多留余量。电平转换和双向电路里的发热往往来自寄生参数和时序。双向电平转换用一颗N沟道MOS加上拉电阻是最经典的结构速度快、成本低但如果两侧电压差过大、或者总线电容较大开关过程中通过Cgd耦合的电流会造成误动作和额外损耗。这类电路本身功耗不大发热一般不是主要矛盾真正要防的是波形畸变。P沟道MOS的加速关断是另一个细节。P管的跨导通常比N管小栅极电荷按比例也不一样关断时的米勒平台行为有差异。用同一个驱动电路驱动N管和P管往往需要对P管的关断路径单独调整比如加一个更小的关断电阻或者用NPN三极管做快速放电。我在做双向开关和防反接方案时会单独测P管的关断波形不照抄N管的参数。4.3 Boost等开关电源电路Boost电路里的MOS管发热有几个专属原因。第一是电感电流的直流分量加上纹波开关管电流的有效值比输出电流大峰值更高算导通损耗时要用开关管支路的有效值不能拿输出电流凑。第二是升压比越大占空比越高开关管的导通时间占比大导通损耗占比也大同时输出二极管或同步管承受的反向电压高需要选高压器件而高压器件Rds(on)更高形成连锁。第三是环路布局Boost的输入回路是电流连续变化的回路环路面积大就会产生尖峰和振铃尖峰被MOS管的Coss和寄生电容吸收变成额外损耗。我修过一块48V输入、90V输出的BoostMOS管空载不热、带载就烫。最后发现问题在输出二极管的反向恢复上换了一颗碳化硅肖特基之后温升立刻正常。这类问题用眼睛看不出来只能靠波形和分段测温先空载看驱动和Vds尖峰再半载看温升分布再用红外枪确认热源到底是MOS还是电感和二极管。分而治之比一味加大散热片有效得多。提示开关电源里的热经常是多个器件一起贡献的MOS、电感、二极管都在发热。用红外测温逐点扫一遍先把最大的热源找出来再决定动谁避免把散热片加在错误的位置上。5. 常见问题速查与实测避坑经验这一节把我这些年记录下来的典型症状和根因整理出来方便你对照排查。注意症状相似不等于根因相同最终还是要靠波形和分段测温确认。5.1 一张表把常见症状对应到根因症状大概率根因首选验证手段空载就热带载更热驱动不足、Vgs偏低、工作在放大区示波器看Vgs平台高度和波形频率调高后明显发热开关损耗、Coss损耗随频率线性上升降频对比观察温度变化加散热片后仍烫热阻链路某一环没打通或功耗本身过大测壳温反推结温核算功耗一侧管子特别烫死区不当、体二极管导通时间长、驱动不对称看上下管Vgs和相电流波形上电瞬间炸管SOA不够、浪涌、米勒误导通、直通看开机瞬间Vgs和Id波形并联管子温度不均阈值电压离散、布局不对称、栅极振荡单独测每管的Vgs和壳温温度随环境升高失控Rds(on)正反馈、散热余量不足按最坏环境重新核算结温这张表里我最想强调的是第一行。空载就热基本可以断定不是电流不够的问题而是管子根本没有完全导通。原因可能有很多驱动芯片供电不够、自举电容失效、栅极电阻太大、IO口驱动能力不足、栅极串了电容之类。用示波器量一下栅极电压的实际值很多时候一眼就看出问题。第二行和第四行也值得多说。频率问题容易被忽略因为大家习惯认为频率高只是延展其实它对开关损耗和Coss损耗是线性的放大。死区问题则更隐蔽一两百纳秒的差别在示波器上不放大根本看不出来但它对应的体二极管导通时间可能差出好几倍。5.2 手上的几件工具和实测习惯我最常用的三件工具是示波器至少双通道带差分探头更好、红外测温枪、可调直流电源。示波器用来看Vgs和Vds波形重点看平台高度、开关时间、振铃幅度、有无毛刺红外枪用来看壳温分布和找热点可调电源用来做分段加载观察不同负载下的温升曲线。实测习惯上我坚持三个先先空载看驱动和尖峰再半载看波形和温升最后满载看长时间稳定性。时长上我会让板子连续跑至少半小时再测最终温度因为热平衡需要时间刚上电测到的温度没有参考价值。另外测温度一定要记录环境温度否则同样的板子在冬天和夏天给出的数据没法比较。还有个小技巧如果手边没有红外枪用手指快速点一下管子别按住能忍受大概是60℃以下烫得立刻缩手大概是70℃以上。这只是粗略判断正式产品开发还是老老实实用仪器测。真要确认结温可以在管子旁边贴一个热电偶或者用二极管压降法把体二极管当温度传感器后者精度不错适合实验室环境。5.3 选型时的几条个人准则第一条不要只看Rds(on)。低Rds(on)通常意味着芯片面积大、Ciss和Qgd也大在几十kHz以上的应用里开关损耗可能反而更高。我一般会看一个综合指标也就是Rds(on)和Qg的乘积这个值小的器件在开关应用里更均衡。高压超结器件把Rds(on)做得非常低但Coss和Qgd也水涨船高用在硬开关拓扑里要谨慎。第二条耐压留余量要看拓扑。一般的降压、开关电路留20%~30%可以但桥式、Boost、反激这些有尖峰和振铃的拓扑我会留到40%甚至更多或者加RCD吸收/Snubber来压制尖峰。使用手册上的Vds额定值是绝对最大值不是推荐工作在那一档长期贴着上限工作一定会出问题。第三条逻辑电平管和标准管别混用。5V或3.3V系统里必须选Vgs(th)低、且在4.5V下Rds(on)有明确标注的逻辑电平管如果用标准管栅极达不到10VRds(on)会比标称差好几倍发热就是这么来的。手册里Rds(on) at Vgs4.5V那一行是必看的没有这一行就要警惕。第四条热设计要按最坏情况做。环境温度按机箱内的实际温度算不是按室温风道按最差的阻塞情况算散热片的接触按最差的垫片热阻算。把这些都算进去还留有余量产品才敢出货。5.4 几个我实际踩过的坑第一个坑是用平均电流算功耗。一块24V/8A的驱动板我按8A有效值算结果实际电流有效值接近11A导通损耗差了将近一倍第一批样品全部温度超标。后来统一改成用示波器测实际波形的有效值再没人犯这个错。第二个坑是忽略了栅极回路的寄生电感。为了布局方便把驱动芯片放在离MOS比较远的地方走线又长又绕结果开关波形振荡严重被迫把Rg加大到33Ω才能稳定代价是开关损耗大幅上升。后来重新布局驱动芯片贴着管子放Rg回到8Ω就干净了。这个教训是在驱动电路上省下来的几毫米走线最后都会用温升还回去。第三个坑是散热片和管子之间没涂硅脂。样品是手工装的觉得贴上了就行结果接触热阻大得离谱壳温比预期高了三十多度才被我测出来。从那以后任何需要加散热片的样品我都会在安装图上明确标注涂硅脂的步骤和用量不留给装配去自由发挥。第四个坑是只测了一颗管子。三相桥、并联阵列里我用红外枪扫一圈才发现其中一颗比别人高二十多度最后定位是驱动走线不对称造成的。所以现在我的习惯是多管结构一定逐颗测温不能只看整体平均值。最后一个想说的体会是MOS管发热这件事本质上是一个能量守恒加路径分析的问题。能量进多少、留在管子里多少、通过哪条路散出去三个环节只要有一个不清楚就会陷入反复换管子、反复加散热片的循环里。把损耗算清、波形看好、热阻打通这三个动作做完绝大部分发热问题都会自己浮出水面剩下的只是取舍和调参的耐心活。