打样回来的板子,MOS管一满载温度就直接飙到110°C?很多人的第一反应是换大封装、加散热片,却忽略了一个看起来不起眼的PCB设计细节——散热孔。功率MOS管(尤其是DFN、TO-252这类带底部散热焊盘的封装)能不能把热及时带走,很多时候靠的不是铜皮面积,而是铜皮上那一排排过孔。孔打对了,温度能降十几摄氏度甚至更多;打错了,轻则虚焊气泡,重则铜皮被掏空,温度反而更高。
这篇文章不绕弯子,直接讲我这些年画功率板总结下来的3个关键尺寸——孔径、孔间距、阵列范围,以及各种被打爆过的避坑经验。不管你是刚接触MOS管开关电路的新手,还是画过不少电源板但总被热问题折腾的工程师,按这套思路去设计,散热孔基本不会拖后腿。
1. 先搞清楚散热孔到底在散什么热
1.1 MOS管的热从哪里来:导通损耗、开关损耗与第三象限
要设计散热孔,先得明白热量是哪来的。很多新手以为MOS管发热就是“电流太大”,其实功率损耗分好几块,不同应用里占比完全不同。
第一块是导通损耗,公式很简单:P = I² × RDS(on) × D,I是有效值电流,RDS(on)是导通电阻,D是占空比。这也是最容易忽视的点,因为RDS(on)会随温度升高而增大,温度每升25°C,典型N沟道MOS管的RDS(on)可能增大10%~20%。如果散热没做好,管芯越热、导通电阻越大、发热越严重,最后陷入恶性循环。
第二块是开关损耗。开关过程中MOS管不是瞬间切换的,在米勒平台区间,栅极电压被钳位,管子同时承受高电压和大电流,相当于一段线性区工作,损耗计算公式是P = 0.5 × VDS × ID × (tr + tf) × f。这里触发频率f越高,开关损耗越大。所以做高频电源时,比如200kHz、500kHz以上的同步BUCK,开关损耗可能比导通损耗还大,这套热负荷都要靠PCB散掉。
第三块经常被忽略的是体二极管损耗和反向恢复损耗。在同步整流、电机续流这类场景里,电流会“反向”流过MOS管,走的是体二极管或者第三象限沟道。体二极管正向压降VF通常有0.7V~1.3V,死区时间里电流流过去就是实打实的功率损耗。高频下死区时间被反复触发,这部分热积累起来相当可观。
算完这些功耗,你才能知道自己到底需要多大的散热能力。连损耗量级都没估过,上来就铺铜打孔,那是耍流氓。
1.2 热量的出路:封装到焊盘再到过孔
MOS管的热量从管芯传到外界,路径大概是这样的:管芯→封装框架或底部散热焊盘→PCB顶层铜皮→过孔→内层/底层铜皮→空气中。
这里有个核心概念:铜的导热系数大约是380W/(m·K),而FR4玻纤板的导热系数只有0.2~0.4W/(m·K),相差上千倍。也就是说,热量如果只靠FR4层传递,几乎就是保温杯;但通过铜皮和过孔传递,就是开了条高速公路。
过孔的作用就是把顶层铜皮的热量“泵”到内层和底层。注意,过孔散热靠的不是孔中间的空洞,而是孔壁上一圈电镀铜。常规工艺下孔壁沉铜厚度在20~35微米左右,虽然薄,但铜的导热能力太强了,几十个过孔并联起来的等效热阻可以做到很低。这也是为什么过孔阵列是MOS管散热设计的绝对主力。
1.3 为什么不能只靠大面积铜皮
有人问,我在顶层铺一大片铜皮不就行了?不行。顶层铜皮面积再大,热量也只能在表层二维扩散,而且1oz铜皮(约35微米厚)的横截面积有限,热阻是存在的。多层板真正的优势在于有完整的内部平面和底层大铜皮,但如果没有过孔把顶层的热量引下去,内层和底层铜皮再大也是白搭。
打个比方,顶层铜皮就像一条单车道马路,过孔就是出入口匝道,内层底层是城市路网。匝道太少,高速堵在入口,车流进不了市区。
另外还有一个常被忽略的点:过孔同时承担电流通路。大电流MOS管的源极或漏极,电流往往要从顶层经过孔流到内层和底层铜皮并联走线。这时候散热孔同时也是载流孔,孔的数量和孔径还得满足载流需求,不能只顾着散热。
2. 三个关键尺寸,一个都不能拍脑袋
2.1 孔径:0.3mm到0.5mm是甜蜜区
先给结论:MOS管散热孔的孔径,我最推荐0.4mm,可以在0.3mm~0.5mm之间浮动,但一般不推荐低于0.25mm或者高于0.8mm。
为什么太小不行?孔径小于0.2mm的孔,PCB钻孔时钻头易偏摆,孔壁粗糙度增加;更关键的是,孔内电镀时药水交换困难,沉铜层容易偏薄且厚度不均。切片一看,有些位置可能只有十几微米甚至更薄,散热能力大打折扣,塞孔工艺也会因为孔径太小而难以填实。
为什么太大也不行?孔径超过0.8mm后,单位面积内能打的孔数量急剧减少,散热面积其实没有提升多少;而且大孔在焊盘上会形成明显的凹坑,回流焊时焊料会被大量吸进孔里,造成焊盘缺锡。机械上,大孔也会削弱焊盘的支撑强度。
0.4mm是平衡点:钻孔良率高,孔壁电镀均匀,塞孔容易,而且对常见板厚(1.6mm)来说深径比很安全。如果板子特别厚(2mm以上),可以加粗到0.5mm,保证孔内电镀铜层的连续性。
这里补充一个细节:过孔焊环的外径一般是孔径加0.2~0.3mm。0.4mm孔径配0.6~0.7mm外径比较合适,既保证连接可靠,又不至于占用太多空间。
2.2 孔间距:中心距至少要守住2.5倍孔径
孔径确定之后,间距是第二个要拍板的关键尺寸。我的经验是:过孔中心距≥2.5倍孔径,最稳妥做到3倍孔径。
以0.4mm孔径为例,中心距1.0mm是底线,1.2mm很稳妥。很多人觉得孔越密散热越好,其实不是。孔间距过密会带来四个问题:
第一,孔与孔之间的铜皮被掏成了窄条,电流和热量通过这些颈部时会有瓶颈效应,热流还没进入孔就已经被“堵”住了。铜皮被过度挖空,相当于把导热通道做成了蜂窝煤,效果反而更差。
第二,回流焊时焊料会沿着密集的孔串流,形成连锡和气泡。焊盘上有大量过孔且间距太近,焊接后常常看到焊点下有一片空洞,导热和机械强度都受影响。
第三,孔太密时,相邻孔的孔壁在电镀过程中会互相影响,导致局部铜厚不均匀,孔壁质量下降。
第四,加工角度讲,孔边距太近,钻孔时的钻头和板材之间应力集中,容易造成孔壁破损甚至贯通裂纹。
我实测过一个DFN封装MOS管,孔径0.4mm、中心距0.6mm的密集阵列,和中心距1.0mm的阵列相比,满载温升反而高了3~5°C,就是因为铜皮颈部太窄,热流根本进不去。后来把间距放宽,温度才降下来。
2.3 阵列范围:从焊盘中心向外扩张的边界
第三个关键尺寸是阵列范围。散热孔不是随便铺满一片铜皮就行,它要覆盖MOS管热焊盘正下方,并向四周外扩一定距离。
我的设计原则是:散热孔阵列覆盖热焊盘面积的80%~100%,并从焊盘边缘向外扩0.5~1.0mm,也就是一到两列孔。以TO-252焊盘为例,如果用0.4mm孔径、1.0mm间距,焊盘内能打3×4个孔,焊盘外沿再加一圈,总共20~30个孔,这种规模就比较健康。
为什么不要铺得太远?因为热流在铜皮内是沿着各个方向扩散的,铜皮本身有横向导热能力。离焊盘太远的过孔,热流路径长,降温贡献反而变小。我做过一个简单实验:焊盘外扩1mm范围内加孔,温升降低非常明显;但从1mm扩到3mm,效果微乎其微。所以别把散热孔打到整个板子的铜皮上,那是浪费钻孔费。
还要注意孔中心到热焊盘边缘的距离。推荐至少0.3mm,否则过孔焊环会切到热焊盘边缘,焊接时焊盘出现缺口,导致应力集中或虚焊。
2.4 一张可以直接抄作业的参考表
| 参数 | 推荐值 | 说明 |
|---|---|---|
| 孔径 | 0.3~0.5mm,优先0.4mm | 小于0.25mm不推荐,大电流厚板选0.5mm |
| 孔中心距 | ≥2.5倍孔径,推荐3倍孔径 | 0.4mm孔选1.0~1.2mm |
| 过孔焊环外径 | 孔径+0.2~0.3mm | 0.4mm孔配0.6~0.7mm外径 |
| 孔中心到热焊盘边缘 | ≥0.3mm | 防止焊盘缺肉 |
| 阵列外扩 | 焊盘外0.5~1.0mm | 不建议无限扩大 |
| 孔到板边 | ≥0.5mm | V-cut拼板再加大间距 |
| 多层板对应区域 | 内层/底层必须有完整铜皮承接 | 否则等于白打 |
3. 从功耗估算到EDA实操,完整走一遍
3.1 先算功率损耗,别上来就画孔
设计散热孔不是打开EDA就开画,第一步永远是算功耗。拿一个很典型的场景举例:同步BUCK电源里的下管MOS管,输入12V,输出5V,负载电流10A,开关频率200kHz。
假设下管占空比D≈0.4,RDS(on)为15mΩ(已经考虑了温度系数)。导通损耗就是10² × 0.015 × 0.4 = 0.6W。开关损耗按总开关时间40ns估算,P = 0.5 × 12 × 10 × 40×10⁻⁹ × 200×10³ = 0.48W。再算体二极管反向恢复和死区损耗,死区时间按80ns,VFD=0.7V,P = 0.7 × 10 × 80×10⁻⁹ × 200×10³ = 0.112W。总损耗大约1.2W。
这个量级不可怕,但如果没有良好的散热路径,集中在DFN封装底部那几平方毫米的焊盘上,温度会相当可观。为了让你有概念:一片1平方厘米、1oz铜厚的露铜区域,在自然对流下每温升1°C大约能散走几十毫瓦热量,1.2W的损耗如果处理不好,温升轻松超过80°C。
3.2 根据热阻快速估算需要的孔数量
做完功耗估算,再用热阻倒推需要多少孔。假设环境温度55°C,希望管芯结温不超过110°C,那么允许的总温升是55°C,要求的整机热阻Rth(j-a) ≤ 55/1.2 ≈ 46°C/W。
再看封装本身,DFN这类底部散热封装,结到散热焊盘的热阻Rth(j-c)很低,一般1~3°C/W,剩下的热量要靠PCB。也就是说,PCB焊盘到空气的热阻要控制在40°C/W左右。
单个过孔的热阻怎么估?公式是R = L/(k×A),其中L是板厚(1.6mm),k是铜导热系数(约400W/(m·K)),A是孔壁截面积。孔径0.4mm、孔壁沉铜25µm,A = π × 0.4mm × 25µm ≈ 3.14×10⁻⁸m²,单孔热阻约127°C/W。
一个孔127°C/W当然很高,但孔是并联的。30个孔就是127/30 ≈ 4.2°C/W,50个孔约2.5°C/W。再加上铜皮本身的扩散热阻和空气对流热阻,整机热阻可以压到30°C/W以下。这也是为什么我一直强调“散热孔要阵列化”,单个孔没什么用,阵列一旦形成,等效热阻才会断崖式下降。
按这个案例,热焊盘和周边区域能放下30个孔,阵列尺寸就按2.2节的原则排。如果算下来需要50个孔但你发现空间放不下,那就得考虑换更大封装、加铜厚、或者上外部散热片,别硬撑。
3.3 在常见EDA里快速布置散热孔阵列
功耗和孔数定好后,EDA实操就变得很简单,不同工具大同小异:
一般步骤是先在顶层露铜区域画好热焊盘铜皮,然后把过孔设置为0.4mm孔径、0.7mm外径,设置网格间距1.0~1.2mm,再在热焊盘范围内生成阵列。AD有Via Stitching和阵列粘贴,嘉立创EDA有专门的过孔阵列工具,Allegro用Copy按矩阵复制也行。
有几个操作细节要注意:
第一,生成阵列后,要删掉落在丝印、结构禁布区、其他走线铜皮上的过孔,尤其是如果底层的对应位置有其他网络平面,散热孔接错网络就会短路,DRC时会报错,但有些隐性的落在平面缝隙边缘的孔不一定报出来,最好逐层检查。
第二,给散热孔指定正确的网络,通常是热焊盘对应的网络(比如漏极或源极)。孤立过孔或者悬空过孔,打样回来会发现孔壁没有铜或没连上,白打。
第三,手动阵列的好处是方便微调。比如要让孔避开焊盘中心正下方的螺丝孔位,或者避开高密度走线区域,手动拖几个孔比工具自动生成后大改要快得多。我的习惯是先用阵列铺八成,剩下的手动补。
3.4 下单前要确认的制造工艺参数
散热孔设计得再漂亮,如果下单时不勾对选项,一样白费。以下是我在嘉立创等板厂打样时必看的几个参数:
最小孔径:0.4mm对于绝大多数板厂都没有压力,但如果选的是超低价快速打样,注意确认最小孔径是0.2mm还是0.3mm,预留余量。
板厚与孔径比:深径比一般要求≤10,最好≤8。1.6mm板配0.4mm孔,深径比4,安全。2.0mm板配0.4mm孔,深径比5,也可以。如果板厚3.2mm,那就需要用0.5mm以上孔径,否则电镀药水进不到孔中间,孔壁铜厚会不均匀。
塞孔工艺:这是最容易踩雷的地方。焊盘上的散热孔,订单里必须明确选择“树脂塞孔+电镀填平”或者至少“油墨塞孔”,不能默认“过孔盖油”。后面我会详细展开。
表面处理与铜厚:功率板建议直接用沉金,平整度好,塞孔后二次电镀也方便。板面铜厚选1oz起步,大电流板可以上2oz,但成本会上去。散热孔本身的孔壁铜厚由电镀工艺决定,和板面铜厚不是一回事。
4. 避坑指南:这些错误我基本都犯过
4.1 过孔在焊盘上:塞孔还是开窗
焊盘正下方的散热孔,处理方式直接影响焊接良率。最常见的坑就是让这些过孔“开窗”,想着回流焊时焊料会把孔填满,导热不是更好吗?
实际完全不是这样。回流焊时,熔融锡膏会被过孔的毛细作用吸走,导致焊盘上的锡量不足,器件底部出现空洞甚至虚焊。反面如果是开窗的,焊料还会流到背面去,板子看起来像是漏了锡。这种板子在功能测试时可能不会立刻出问题,但一跑震动或者大电流,焊点就开裂。
正确做法分两种。焊盘正下方的过孔,一定要塞孔。预算允许就选“树脂塞孔+电镀填平”,表面平整,焊盘完整,散热路径通过树脂和电镀铜层传导,效果最好。预算紧张可以选“油墨塞孔”,导热稍弱但可靠性远好于开窗。焊盘外围的散热孔,可以开窗,也可以盖油,看你的后焊工序。如果开窗,要注意阻焊桥宽度,孔径0.4mm、中心距1.0mm的阵列,阻焊桥基本能保住。
我自己踩过一次很深的坑:一个TO-252封装MOS管,底部大焊盘上打了9个开窗过孔,回流焊后万用表测导通正常,但通上10A电流半小时,MOS管直接烧了。拆下来一看,焊盘下面全是空洞,热量根本没传到PCB上。后来换成树脂塞孔,同样条件下温度降了15°C以上。
4.2 孔与孔太密、太近,铜皮被掏空
前面讲了中心距的底线,这里再说一个具体教训。有一回我画电机驱动板,给AO3400这类SOT-23封装的MOS管做散热,孔径0.4mm、中心距0.6mm,矩阵密密麻麻排了40个孔。打样回来一看切片,孔壁铜厚只有十几微米,而且顶层铜皮被掏得像渔网一样。一上负载,铜皮颈部因为截面积太小,局部发热严重,整体温升比稀疏打孔还高。
后来我把孔径改成0.3mm,中心距放到0.9mm,数量反而可以排更多,热性能才正常。这件事让我彻底记住了:散热孔是“分布式热通道”,不是“越多越好、越密越好”。留足铜皮来传导热流,和留足孔来疏导热量同样重要。
判断阵列合不合理,有一个快速方法:看俯视图,阵列区域是否还有连续的铜皮可以走电流。如果光靠孔之间的窄桥勉强连接,那就是过度开孔,必须放宽间距或缩小孔径。
4.3 散热孔误入高频大电流环路
这个坑比较隐蔽,需要在开关电源的布局里特别小心。高频开关回路中,电流变化率di/dt很大,如果散热孔阵列正好落在了高di/dt环路(比如输入电容到高边MOS管、再到低边MOS管的回路)正下方,密集的过孔和破碎的平面会在交变磁场中感应出涡流,产生额外损耗,这就是常说的PCB涡流损耗。
虽然涡流损耗通常不会比导通损耗大,但在高频大电流场合,它可能让局部温度异常升高,同时把EMI问题弄得更糟。我的做法是分区处理:MOS管热焊盘正下方是散热核心区,照常打孔;但高di/dt回路正下方的地平面和铜皮保持完整,不打孔、不开窗,让电流回流路径尽量干净利落。
如果板子空间紧张,必须把散热孔布在开关回路附近,那就要选更小的孔径,并保持孔间距足够大,尽量减少对平面完整性的破坏。也可以用仿真工具看一下平面上的电流密度分布,横截面发红的区域就是涡流风险区,这类工具在高频电源设计里值得用。
4.4 多管并联时的热耦合与阵列规划
多个MOS管并联是电源板的常见需求,比如两个、四个管子一起分担电流。很多朋友给每个管子各打一摊散热孔,结果发现两个管子之间的区域温度特别高,因为热源集中在了一起。
正确思路是把并联MOS管的散热铜皮合并成一个大的热区,在这个大区域上统一规划过孔阵列。这样热量可以在铜皮内先横向扩散,再通过均匀分布的孔阵导入内层,整体温度更均衡,也能减少单个管子周围的“热点”。管子之间至少留1~2mm间距,避免封装侧壁互相热辐射。
另外,并联管子的电流分配不均匀问题也要重视。如果某一路寄生电阻小,它分到的电流就大,温度也高。温度高的管子RDS(on)继续增大,电流又会往其他管子转移,这种动态平衡并不总是稳定。所以孔阵列不仅要散热均衡,还要配合仔细的布局对称,保证每条并联支路从输入到输出的铜皮电阻尽量一致。
一个大电流电源板上,我遇到过两个并联下管,一个温度75°C,另一个95°C,检查了半天才发现是底层的载流铜皮不对称,导致电流分配严重偏移。这个案例说明,MOS管散热不只是“热”的问题,更是“电流和热流一起规划”的问题。
4.5 常见问题速查表
| 现象 | 可能原因 | 处理建议 |
|---|---|---|
| 满载温度仍然过高 | 孔数量不足、内层无铜皮承接、铜皮面积不足 | 按热阻估算孔数量,确认内层/底层对应区域有完整铜皮 |
| 焊盘下空洞、虚焊 | 焊盘上的过孔未塞孔或塞孔不牢 | 选择树脂塞孔+电镀填平,或至少油墨塞孔 |
| 焊料漏到板子背面 | 过孔开窗且无塞孔 | 焊盘内过孔塞孔,外围孔根据需要取舍 |
| 孔周围铜皮起泡 | 孔太密导致回流焊时气泡聚集,或板料受潮 | 控制间距在3倍孔径、烘板后再打样 |
| DRC报过孔与焊盘距离不足 | 孔中心太靠焊盘边缘 | 保持≥0.3mm距离 |
| 板子翘曲严重 | 单侧大铜皮开窗太多 | 均衡铺铜、分区开窗,必要时加平衡铜 |
| 内层短路 | 过孔落入其他网络平面 | 打孔前逐层查看内层网络,或用盲埋孔方案 |
5. 写在最后:散热孔是系统工程的一部分
5.1 散热设计不是打孔就完事了
散热孔做得再好,也只是整个热设计链路的一环。MOS管结温能不能压住,还要看器件选型、驱动电压、开关频率、铜皮面积、风道和外壳。
举个很常见的例子,Vgs驱动电压不足。有些电路用3.3V单片机直接驱动逻辑电平MOS管,看着RDS(on)标得不错,实际上如果Vgs只有3V而不是10V,RDS(on)可能翻好几倍,导通损耗暴增。这时候你打再多散热孔都很难救回来。所以做MOS管开关电路设计,第一步永远是确认驱动电路能让管子完全导通。
再比如,大电流路径上的窄铜皮本身就是热源。一个50A的BUCK电路,如果走线只有2mm宽、1oz铜厚,铜皮电阻带来的发热可能比MOS管导通损耗还要夸张。这时候应该在关键路径采用多层并联铜皮和过孔阵列,同步降低电阻和热阻。
开尔文接法这类技巧也值得了解:把功率回路和驱动回路分开走线,减少源极寄生电感对开关过程的影响,能从源头降低开关损耗。散热孔负责把已经产生的热散掉,但更好的思路是让MOS管在开关过程中尽量少产生热。
5.2 我的习惯:用热成像验证,再用数据迭代
画了这么多年功率板,我养成了一个习惯:每次样机回来,第一件事不是测波形,而是先上负载看热成像。热成像图会直观告诉你热点在哪里、铜皮哪里在额外发热、散热孔区域是否真正起到了降温作用。
如果温度分布均匀,只有MOS管封装中心点偏高,说明散热孔的作用已经发挥到位,剩下的瓶颈可能在空气对流和外壳散热。如果焊盘边缘有局部亮点,那就要怀疑铜皮颈部太窄或者过孔分布不均。这时我会反向推算一下热阻数据:根据实测温升和功耗,看PCB到环境的热阻是否达到了设计目标的量级,再来调整下一版。
这个“估算→设计→实测→修正”的循环,比任何仿真都靠谱。散热孔的热性能受太多因素影响:孔壁铜厚、板材导热系数、焊接质量、空气流动,实测数据才是最可靠的依据。
最后再分享一个小技巧:散热孔的阵列范围,可以在初版就多留一些,打样回来后用热成像看哪个区域的孔没起作用,下一版再删掉。散热孔本身成本不高,但“该有的孔没有、不该有的孔一堆”才是大忌。希望这篇内容能帮你少走点弯路,把MOS管的热问题一次设计到位。