咱们硬件工程师都搞过电源板:前期算电流、算电感、算 MOSFET,最后到了样机阶段经常会发现电路能正常工作,但板子烫——MOSFET 80℃,DCDC 芯片 90℃,电感甚至摸都不敢摸。这类“热得离谱”的问题,在 云栈社区 的硬件板块里也经常被同行拿出来讨论。

这时候最容易想到的是换个更大封装,或者加散热片。但实际上,PCB 本身就是散热结构的一部分。布局、铜皮、过孔、层叠和器件位置处理得好,温升下降二三十摄氏度并不稀奇。当然,具体能降多少,最终还是取决于器件功耗、板厚、铜厚、环境温度和结构条件。

如果你觉得散热设计全是结构工程师的活,跟咱们硬件工程师没关系,那你想错了。结构工程师负责系统级散热,咱们硬件负责的是 PCB 板级散热。那如何做好 PCB 板级散热?今天我们就通过一篇文章把 PCB 散热完全讲清楚,掌握了下面 6 种方法,你能横着走!

PCB为什么会发热?
咱们先不要急着讨论怎么散热,先算一下器件到底产生了多少热。以一个 Buck 电源为例:输入 12V,输出 5V,负载 2A,效率假设 90%。
输出功率是 10W,输入功率是 11.11W,那么总损耗是 1.11W。这 1.11W 最终基本都要变成热。所以散热的本质其实非常简单:减少产生的热量,并把已经产生的热量尽快传出去。前者靠提高效率,后者靠降低热阻。

如果优化 MOSFET、电感和开关参数以后,效率提高到 94%,总损耗就是 0.64W,减少了 0.47W,也就是损耗下降约 42%。假设 PCB 和封装的等效热阻是 40℃/W,那么理论温升减少:
$$
0.47 \times 40 = 18.8^\circ C
$$
效率提升 4 个百分点,温升下降近 19℃。所以有时候咱们硬件工程师花大量时间研究散热片,其实不如先把效率从 90% 优化到 94%。提高效率比研究散热有时候更能解决问题。
方法1:把功率器件放在正确的位置
这是我认为最容易被忽略、但成本最低的一种散热方法。很多人布 PCB 的时候喜欢先考虑器件放哪里方便走线,但对于 DCDC、电机驱动、MOSFET 等功率电路,器件位置本身就是散热设计的一部分。例如 MOSFET 的主要散热路径通常包括:
Junction → Package → PCB → Air

对于很多贴片功率器件来说,PCB 铜箔实际上承担了非常重要的散热任务,所以 MOSFET 周围不要塞满其他器件。从热阻角度量化一下:一个典型的 SOP-8 MOSFET,结到环境的热阻 $R_{\theta JA}$ 在没有额外铜皮时可能高达 60~80℃/W;如果 Drain 引脚(通常也是散热引脚)下方连接一片 10mm×10mm 的铜皮,$R_{\theta JA}$ 可以降到 40~50℃/W;如果这片铜皮再通过过孔连接到内层 GND 平面,$R_{\theta JA}$ 可能进一步降到 30~40℃/W。
这意味着,对于一个耗散 0.3W 的 MOSFET,无散热铜皮的温升:
$$
\Delta T = 0.3 \times 70 = 21^\circ C
$$
有 10mm×10mm 铜皮 + 过孔到内层的温升:
$$
\Delta T = 0.3 \times 35 = 10.5^\circ C
$$
仅位置优化一项,温升就下降了 10℃ 左右。如果一个 MOSFET 背面刚好放了电容、连接器,把散热铜皮切得七零八落,即使芯片本身 $R_{\theta JA}$ 参数不错,实际温升也可能很难看。
方法2:增加铜厚
以 PCB 铜皮作为热传导路径,一维热阻公式是:
$$
R_\theta = \frac{L}{k \cdot A} = \frac{L}{k \cdot w \cdot t}
$$
其中 $L$ 是热流路径长度,$w$ 是铜宽,$t$ 是铜厚,$k$ 是铜的热导率(约 400 W/m·K)。从这个公式可以直接看出,一维热阻和铜皮宽度以及厚度有关系:
$$
R_\theta \propto \frac{1}{t \cdot w \cdot k}
$$
那如何量化铜皮厚度对热阻的影响呢?咱们需要具体算一下铜厚从 1oz 改 2oz 能差多少。算完你就明白了。对于径向热扩散,等效热阻:
$$
R_{\theta,\text{diff}} \approx \frac{\ln(r_{\text{out}}/r_{\text{in}})}{2\pi k t}
$$
假设热源半径 $r_{\text{in}} = 2$mm(对应 MOSFET 焊盘),铜皮等效半径 $r_{\text{out}} = 25$mm。
1oz 铜($t = 35\mu m = 0.035$mm):
$$
R_{\theta,\text{diff},1oz} = \frac{\ln(25/2)}{2\pi \times 400 \times 0.000035} = \frac{2.53}{0.88} = 28.8^\circ C/W
$$
2oz 铜($t = 70\mu m = 0.070$mm):
$$
R_{\theta,\text{diff},2oz} = \frac{\ln(25/2)}{2\pi \times 400 \times 0.000070} = \frac{2.53}{0.176} = 14.4^\circ C/W
$$

铜厚翻倍,扩散热阻直接减半。这意味着如果温升是 28℃,铜厚翻倍后温升直接变成 14℃。有些工程师为了平衡散热和焊接工艺(防止起泡),会把散热铜皮做成网格或开窗。从热阻角度看,开窗等于直接削减有效铜厚。所以说,功率器件下方做实心铜皮,不要开网格,从热阻计算上看完全成立。
方法3:散热过孔
如果 MOSFET 焊盘只连接 Top 层铜皮,即使铺了一大片铜,热量依然主要集中在这一层。这时候就可以增加 Thermal Via,也就是我们常说的散热过孔。这些过孔把 Top 层铜与 Bottom 层、内层大面积铜连接起来。

那过孔的数量如何计算呢?
一个标准过孔,孔径 $d = 0.3$mm,板厚 $h = 1.6$mm,镀铜厚度约 20μm。过孔的铜截面积:
$$
A_{\text{cu}} = \frac{\pi (d_{\text{out}}^2 - d_{\text{in}}^2)}{4} = \frac{\pi (0.3^2 - (0.3 - 2 \times 0.02)^2)}{4} \times 10^{-6} \approx 1.76 \times 10^{-8} \, \text{m}^2
$$
过孔热阻(沿板厚方向,长度 $L = 1.6$mm = 0.0016m):
$$
R_{\theta,\text{via}} = \frac{L}{k \cdot A_{\text{cu}}} = \frac{0.0016}{400 \times 1.76 \times 10^{-8}} \approx \frac{0.0016}{7.04 \times 10^{-6}} \approx 227^\circ C/W
$$
一个过孔的热阻约 227℃/W,看起来很大。但如果并联多个过孔呢?假设在 MOSFET 散热焊盘下方放置 9 个过孔(3×3 阵列),忽略热耦合:
$$
R_{\theta,\text{9via}} \approx \frac{227}{9} \approx 25.2^\circ C/W
$$
如果放置 16 个过孔(4×4 阵列):
$$
R_{\theta,\text{16via}} \approx \frac{227}{16} \approx 14.2^\circ C/W
$$
这 16 个过孔的等效热阻 14.2℃/W,与 Top 层铜皮到空气的对流热阻相比,已经相当能打了。过孔不是越多越好,进一步增加过孔数量,对热阻的降低已经不明显了。另外过孔应均匀分布在散热焊盘下方,孔径 0.2~0.3mm,孔间距 0.8~1.0mm。过孔不要太大,否则在回流焊时容易偷锡导致虚焊。
方法4:多层板
这里是我之前查阅过的某大厂做的不同层 PCB 之间的散热仿真对比报告。报告里通过仿真详细对比了有无外壳、不同外壳材质(黑色塑料壳、抛光铝、阳极铝)、有无导热硅脂、顶部散热和底部散热、PCBA 垂直安装和水平安装、过孔数量、有无隔板对器件温升的影响。仿真条件如下:
MOSFET 是贴片的,封装是 LFPAK;PCB 层数 1–4 层,总厚度 1.6 mm;材质是标准 FR4,每层铜厚 1 oz/ft²(35 μm);PCB 悬浮在自然空气中,环境温度 20℃;仿真支持传导、对流和辐射三种热传递方式,每个 MOSFET 的功率损耗为 0.5 W。
同单层 PCB 比较,双层 PCB 上芯片的 $T_j$ 约减少 20℃–25℃。如果改成四层板,那么与两层板相比器件的 $T_j$ 大概还能降低 9℃ 左右。原因就是多层板的有效散热铜皮面积增大了,PCB 本身的散热能力更强,温升自然更小。

当然,我们需要注意的是,从散热的角度来说铜皮面积越大越好,但是有些地方的铜皮面积还真不能太大。比如 DCDC 的 SW 节点处理原则就是:在满足载流的前提下,SW 铜皮面积应尽可能小。这是 DCDC 设计中特别容易犯的错误。有些工程师为了散热,把 MOSFET 周围铺了一大片铜,结果 EMI 反而变差。为什么?因为 DCDC 中的 SW 节点是高 $dv/dt$ 节点,如果为了散热把 SW 铜皮无限扩大,相当于增加寄生电容。寄生电容与回路电感形成 LC 谐振,导致 SW 节点振铃。EMI 辐射上,更大的铜皮面积等于更大的天线,辐射效率更高。
方法5:大功率器件不要扎堆放
如果一块 PCB 上有 DCDC、MOSFET、电感、LDO,不要把几个热源全部堆在一起。举个例子:DCDC 发热导致 PCB 铜皮温度比环境温度高 36.6℃。如果在这个位置再放置一个 LDO,LDO 自身温升 25℃,那么 LDO 看到的环境温度不是 25℃ 室温,而是 $25 + 36.6 = 61.6^\circ C$。而如果 LDO 远离 DCDC,放在 PCB 另一侧,DCDC 在 LDO 位置产生的温升可能只有 10℃ 左右,LDO 结温就只有 60℃。这 26℃ 的差距,完全由布局决定。
器件看到的不是环境温度,而是局部 PCB 温度。所以布局时尽量把高热源分散。

方法6:散热器
如果经过上述优化后,某器件温升仍然过高,再考虑散热片。散热片的热阻模型:
$$
R_{\theta SA} = \frac{1}{h \cdot A_{\text{fin}} \cdot \eta_{\text{fin}}}
$$
其中:
- $h$:对流换热系数(W/m²·K)
- $A_{\text{fin}}$:所有翅片(含底板)的有效换热面积(m²)
- $\eta_{\text{fin}}$:翅片效率(0~1)
这个公式怎么理解呢?热阻就是单位温差能带走多少热量的倒数。面积越大、对流越强、翅片效率越高,热阻就越低。翅片越多,总面积 $A_{\text{fin}}$ 越大,理论上热阻越低;但翅片间距太小,气流受阻,$h$ 急剧下降,同时相邻翅片互相加热,效率也会变差。所以不能无限加翅片,必须先确定最佳间距,再反推数量。

那咱们硬件怎么去选散热器,评估散热器到底满不满足散热要求呢?下面举个例子。
假设器件功耗 $P = 1$W,希望散热片带来的温降 $\Delta T = 20^\circ C$,即要求:
$$
R_{\theta SA} \le \frac{\Delta T}{P} = 20^\circ C/W
$$
第 1 步:估算需要的有效换热面积
先假定 $h = 8$ W/m²·K(自然对流中等水平),$\eta_{\text{fin}} = 0.75$,则:
$$
A_{\text{fin,req}} = \frac{1}{h \cdot \eta_{\text{fin}} \cdot R_{\theta SA}} = \frac{1}{8 \times 0.75 \times 20} \approx 0.00833 \, \text{m}^2 = 8333 \, \text{mm}^2
$$
第 2 步:确定单根翅片参数
- 翅片高度 $L = 25$ mm
- 翅片厚度 $t = 1.5$ mm
- 底板长度(气流方向上的长度)$W = 40$ mm
- 单根翅片面积(两面 + 端部):$A_1 \approx 2 \times L \times W = 2 \times 25 \times 40 = 2000$ mm²(更精确还要加底板露出的面积,这里先忽略)
第 3 步:用最佳间距算翅片数量
取 $S_{\text{opt}} = 7$mm(中等高度经验值),翅片中心距 = 厚度 + 间距 = $1.5 + 7 = 8.5$mm。假设散热片总宽度(垂直气流方向)限制在 50mm 以内,则:
$$
N = \frac{W_{\text{total}} - t}{S + t} + 1 \approx \frac{50 - 1.5}{8.5} + 1 \approx 6.7
$$
按第 1 步和第 2 步算的面积 8333 mm² 除以 2000 mm²,5 片翅片就够了。按这一步计算,在 50mm 宽度内最多放 7 片,咱们可以取 7 片留有裕量。
第 4 步:验算实际面积和热阻
7 片翅片总面积约 $7 \times 2000 = 14000$ mm²(再加底板约 2000 mm²,总计约 16000 mm²),代入原公式:
$$
R_{\theta SA} \approx \frac{1}{8 \times 0.016 \times 0.75} \approx 10.4^\circ C/W
$$
这样计算出来的是不是比目标 20℃/W 富裕很多了?这说明在自然对流下,7 片已经足够。当然你也可以适当降低高度或减少片数来省材料和体积。如果算出来的面积不够咋办?那就增大总宽度、增加高度,或者改成强制对流。

散热设计很重要,温升超了不要慌。一名合格的硬件工程师,一定要掌握 PCB 板级散热设计方法。把器件位置、铜厚、过孔、层叠和热源间距处理到位,很多温升问题不用上大散热器就能解决。