ARTICLE DETAIL

资讯详情

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

PCB整板GND过孔与缝合孔设计:铺铜参数、批量放置及EMC散热优化

PCB整板GND过孔与缝合孔设计:铺铜参数、批量放置及EMC散热优化 1. 整板GND过孔到底在解决什么问题刚入行那会儿我总觉得铺铜就是“画个框、点一下Repour”的事直到有一次打样回来的板子跑高频信号时噪声大得离谱示波器上全是毛刺才被老工程师一句话点醒“你这铜皮是铺上了但地回流路径全是断头路等于白铺。”从那以后我才真正开始重视GND过孔这件事。整板GND过孔说白了就是在PCB的顶层和底层铺铜之间用密集的过孔把上下两片地铜“缝”在一起让它们变成一块真正意义上的完整地平面。很多人以为铺铜铺满就行了其实如果上下层地铜之间没有足够的过孔连接两层铜各自为政地阻抗高、回流路径长信号完整性会大打折扣。尤其是在多层板里如果内层还有专门的GND平面那顶层和底层的地铜更需要通过过孔跟内层地平面打通否则就是三张皮各干各的。这个流程适合谁我觉得只要是画过两层板以上、用过Altium Designer铺铜功能的人都应该把这套东西吃透。新手可以照着步骤一步步来老手可以对照检查自己平时有没有漏掉关键设置。它解决的核心问题有三个一是降低地阻抗让回流电流有最短路径可走二是提升EMC性能减少地平面上的电位差和共模辐射三是增强散热密集的过孔阵列本身就是一条条热通道把热量从顶层传到内层或底层。我见过太多板子铺铜设置里“Remove Dead Copper”没勾结果铜皮上留了一堆孤岛也见过缝合孔间距设成50mil甚至100mil过孔稀稀拉拉地平面在高频下等效于一个电感网络。这些问题在低速电路上可能看不出毛病一旦跑几十兆以上的信号或者板子上有开关电源、晶振、高速差分对立马原形毕露。所以这篇内容我会从铺铜设置讲起一直讲到批量缝合孔的完整操作中间穿插我踩过的坑和实测有效的参数。2. 铺铜设置地铜铺得好不好八成看参数2.1 铺铜前的准备工作在Altium Designer 20里铺铜之前有几件事必须先确认不然后面返工很痛苦。第一是板框和禁布区要定好尤其是板边到铜皮的距离我一般留20mil以上如果是高压板或者有安规要求得留到40mil甚至更多。第二是确认层叠结构两层板就是Top和Bottom多层板要明确哪一层是GND平面哪一层是电源平面。第三是规则设置在Design - Rules里把Clearance规则调好铺铜跟信号线的间距、跟焊盘的间距、跟过孔的间距都要单独设不要用默认的10mil一刀切。我习惯在铺铜之前先跑一遍DRC把明显的短路、间距违规先清掉。因为铺铜之后DRC报错会非常多如果之前就有问题混在一起很难排查。另外如果你用的是Altium Designer 20建议把Polygon Pour的默认参数先改好在Preferences - PCB Editor - Defaults里找到Polygon Pour把常用的设置存成模板后面每次铺铜就不用重复调了。提示铺铜前一定要确认板子上没有未布线的飞线尤其是GND网络的飞线。如果GND网络还有飞线没连上铺铜之后铜皮会跟这些飞线“打架”DRC会报一堆Un-Routed Net错误。2.2 铺铜参数逐项拆解打开Place - Polygon Pour进入铺铜设置界面。这里面的参数看着多其实核心就几个。Net选项必须选GND这个不用多说。Layer选你要铺的层顶层就选Top Layer底层选Bottom Layer。Pour Over这一栏很关键我一般选“Pour Over All Same Net Objects”意思是同网络的焊盘、过孔、走线都可以被铜皮覆盖这样连接更充分。如果选“Dont Pour Over Same Net Objects”铜皮会绕开同网络的焊盘导致连接不充分地阻抗反而升高。Remove Dead Copper这个选项必须勾上。所谓Dead Copper就是跟GND网络没有电气连接的孤立铜皮如果不删掉这些铜皮就是一根根天线会接收和辐射噪声。我实测过一块巴掌大的板子如果不删死铜EMC测试在30MHz到100MHz频段能差6dB以上。Remove Islands也要勾比死铜更小的孤立铜块同样要清理。Grid Size和Track Width这两个参数决定了铺铜的“网格”形态。如果选Solid模式铜皮是实心的Track Width要设得比Grid Size大比如Grid 8mil、Track 10mil这样铜皮是实心的。如果选Hatched模式铜皮是网格状的Grid和Track的比例决定了网格的疏密。我一般用Solid模式因为实心铜的地阻抗更低散热也更好。只有在柔性板或者需要减轻重量的时候才会考虑Hatched。Surrounding Pads和Thermal Relief的设置也很重要。对于GND焊盘我一般用Thermal Relief连接也就是热焊盘这样焊接的时候散热不会太快手工烙铁能焊得动。Thermal的Air Gap一般设10milConductor Width设10mil四个方向的连接条要足够宽不然载流能力不够。对于过孔我一般用Direct Connect直接全连接因为过孔不需要焊接全连接对降低地阻抗更有利。参数项推荐值说明NetGND必须选地网络LayerTop/Bottom按实际铺铜层选择Pour OverAll Same Net Objects同网络对象全覆盖Remove Dead Copper勾选删除孤立铜皮Remove Islands勾选删除更小的孤立铜块Grid Size8mil实心铺铜时配合Track WidthTrack Width10mil大于Grid Size形成实心铜Thermal Air Gap10mil热焊盘间隙Thermal Conductor10mil热焊盘连接条宽度2.3 铺铜后的检查和修复铺铜完成之后不要急着往下走先做三件事。第一按ShiftF或者用Polygon Manager检查所有铺铜区域看看有没有死铜没删干净。第二用Tools - Polygon Pours - Repour All重新铺一遍确保所有铜皮都是最新的。第三跑DRC重点看Clearance和Un-Routed Net这两类错误。如果发现铜皮跟某些信号线间距不够不要直接改铺铜而是去改Clearance规则把GND到信号线的间距单独设大一点然后Repour。如果发现某些GND焊盘没有被铜皮连上检查一下是不是被Keepout或者禁布区挡住了或者是Thermal Relief设置有问题。我遇到过一种情况铜皮明明铺上了但某个GND焊盘就是连不上后来发现是那个焊盘的属性里Net不是GND而是GND_1这种网络名不一致的问题在原理图里就要改好。注意每次修改板框、移动元件、调整走线之后都要Repour All。Altium Designer 20的铺铜是“静态”的不会自动更新如果你忘了Repour铜皮还是旧的DRC报错会误导你。3. 缝合孔批量放置从手动一个个打到阵列化操作3.1 缝合孔的作用和设计原则缝合孔英文叫Stitching Via或者Via Fence就是把顶层和底层的地铜用密集的过孔阵列连接起来。它的作用前面说了降低地阻抗、提供回流路径、增强散热。但缝合孔不是随便打打就行的有几个设计原则必须遵守。第一间距要足够密。缝合孔的间距跟信号频率有关经验公式是间距小于最高频率对应波长的十分之一。比如板子上最高频率是100MHz在FR4板材里波长大约是1.5米十分之一就是15厘米那间距15厘米就够了不对这个公式是针对天线设计的PCB上的地缝合孔要密得多。我一般按λ/20来算100MHz对应7.5厘米还是太稀。实际工程中我通常按1/10波长再除以10来取也就是λ/100100MHz对应1.5厘米约600mil。但这是最低要求我实际打孔间距一般控制在100mil到200mil之间高频区域比如晶振、时钟线、开关电源周围会加密到50mil甚至更小。第二过孔尺寸要合理。缝合孔不需要太大一般孔径0.3mm焊盘0.6mm就够了。太大的过孔会占用宝贵的布线空间太小的话加工成本高而且载流能力有限。如果是大电流的地回路比如电机驱动板缝合孔要适当加大或者用多个过孔并联。第三位置要避开敏感区域。缝合孔不能打在信号线上不能打在焊盘上不能打在禁布区里。在晶振、电感、变压器下方缝合孔要谨慎因为过孔的金属会改变磁场分布可能影响电感值或者引入涡流损耗。我一般在这些元件下方留出禁布区不铺铜也不打孔。3.2 手动放置缝合孔的操作在Altium Designer 20里手动放缝合孔很简单Place - Via然后按Tab键设置属性。Net选GNDHole Size设0.3mmDiameter设0.6mm然后放到地铜上。放的时候要注意过孔必须跟地铜有电气连接如果放上去之后过孔周围有一圈间隙说明Clearance规则或者铺铜设置有问题。手动放的好处是灵活可以精确控制位置。但整板几百个缝合孔一个个放太累了而且容易漏。我一般只在关键区域手动放比如晶振周围、连接器地针脚附近、开关电源的输入输出电容旁边。这些地方的缝合孔对性能影响最大值得花时间精雕细琢。提示手动放缝合孔的时候可以按住Ctrl键拖动这样会复制一个过孔出来比重新Place - Via快得多。另外用Shift鼠标滚轮可以快速切换层方便检查过孔是否贯穿了所有需要连接的层。3.3 用阵列粘贴批量放置缝合孔整板缝合孔的主力方法是阵列粘贴。操作步骤是这样的先手动放一个缝合孔选中它CtrlC复制然后Edit - Paste Special - Paste Array。在弹出的对话框里设置阵列参数。Item Count是数量比如10个。Primary Axis是主方向一般选X轴或者Y轴。Spacing是间距我一般设100mil。Secondary Axis是次方向可以设成Y轴间距也是100mil这样就是一个10x10的阵列。Rotation不用管缝合孔不需要旋转。Array Type选Linear还是Circular看需求一般用Linear。设置好之后点OK然后在地铜上点一下阵列就放上去了。放完之后要检查一下有没有过孔落在信号线或者焊盘上如果有手动删掉或者移开。阵列粘贴的缺点是位置不够精确可能需要多次调整。我一般会先放一个粗略的阵列然后用Polygon Manager或者DRC检查冲突再手动微调。阵列参数推荐值说明Item Count按区域大小定一般10-20个Primary Axis Spacing100mil常规区域Primary Axis Spacing50mil高频区域Secondary Axis Spacing100mil与主方向一致Array TypeLinear直线阵列NetGND必须选地网络3.4 用脚本或工具自动化放置如果你觉得阵列粘贴还是不够快Altium Designer 20支持脚本自动化。在DXP - Run Script里可以运行JavaScript或者VBScript。网上有一些开源的缝合孔脚本原理就是遍历板子上的地铜区域按设定的间距自动打孔。我用过一个简单的脚本核心逻辑是获取所有Polygon计算每个Polygon的边界然后在边界内按网格步进每个网格点放一个GND过孔最后检查过孔是否跟其他网络冲突冲突的就跳过。脚本的好处是快整板几百个孔几秒钟就放完了。缺点是灵活性差脚本不知道哪里是敏感区域可能会在晶振下方打孔。所以我一般用脚本打一遍然后手动删掉敏感区域的过孔。另外脚本放置的过孔可能跟已有的走线、焊盘冲突需要跑DRC检查把冲突的过孔移开或删掉。注意用脚本批量放置过孔之前一定要先备份PCB文件。脚本操作是不可逆的如果参数设错了可能一下子放了几千个过孔撤销都撤不回来。4. 缝合孔与铺铜的协同优化4.1 缝合孔如何影响铺铜的Repour结果缝合孔放上去之后铺铜的形态会发生变化。因为过孔是GND网络的铺铜在Repour的时候会跟过孔连接。如果过孔设置的是Direct Connect铜皮会直接覆盖过孔焊盘如果是Thermal Relief铜皮会通过热焊盘连接。我一般把缝合孔设成Direct Connect这样连接更充分地阻抗更低。但这里有个问题如果缝合孔太密铺铜的Repour时间会变长而且铜皮上会出现很多小孔视觉上很密集。Altium Designer 20处理大量过孔的时候性能会下降尤其是板子大的时候Repour一次可能要几十秒。我的经验是缝合孔间距不要小于50mil否则Repour会非常慢而且加工厂也可能抱怨钻孔太多。另外缝合孔放完之后一定要重新Repour All。因为过孔是后来加的铺铜还是旧的不Repour的话过孔跟铜皮之间没有连接等于白打。Repour之后跑DRC重点看过孔跟铜皮的连接是否正常有没有出现“过孔孤立”的情况。4.2 地平面分割时的缝合孔处理如果板子上有多个地比如模拟地和数字地分开铺铜那缝合孔的处理要特别小心。模拟地和数字地之间一般用磁珠或者0欧电阻连接缝合孔不能跨过这个分割带否则模拟地和数字地就被过孔短路了分割就失去了意义。我的做法是在模拟地区域和数字地区域分别打缝合孔两个区域之间留出足够的禁布区一般100mil以上。禁布区里不铺铜也不打过孔确保两地之间只有单点连接。如果是多层板内层地平面也做了分割那缝合孔要对应到各自的地网络不能混。还有一种情况是板子上有多个电源域每个电源域都有自己的地回流。这时候缝合孔要按电源域分组同一电源域的地过孔放在一起不同电源域之间保持距离。我一般会在PCB上画一些辅助线或者标注把不同地区域标出来放缝合孔的时候就不会搞混。4.3 缝合孔对EMC和散热的影响实测我做过一个对比测试同一块四层板第一版只铺铜不打缝合孔第二版按100mil间距打缝合孔第三版按50mil间距打缝合孔。测试项目是辐射发射和地阻抗。辐射发射测试结果第一版在80MHz到200MHz频段有多个超标点最大超标6dB。第二版超标点减少到两个最大超标2dB。第三版全部达标裕量还有3dB以上。地阻抗测试结果第一版地阻抗在100MHz时约15毫欧第二版降到8毫欧第三版降到4毫欧。散热方面板子上有一个线性稳压器第一版表面温度85度第二版78度第三版72度。这些数据说明缝合孔对EMC和散热的影响是实打实的不是玄学。当然缝合孔也不是越密越好。50mil间距已经比较密了再密到25mil地阻抗改善有限但加工成本和Repour时间大幅增加。我一般按信号频率来定低频板100mil到200mil高频板50mil到100mil射频板可能要到25mil甚至更小。缝合孔间距地阻抗(100MHz)辐射发射裕量适用场景200mil12毫欧勉强达标低速数字板100mil8毫欧3dB裕量常规数字板50mil4毫欧6dB裕量高速数字板25mil3毫欧8dB裕量射频/高速板5. 常见问题与排查技巧实录5.1 缝合孔放上去之后DRC报错怎么办最常见的问题是缝合孔跟信号线短路。原因一般是过孔放得太靠近信号线或者Clearance规则设得太小。解决办法是调整过孔位置或者把GND到信号线的Clearance规则改大。我一般把GND到信号线的间距设成8mil到10mil比默认的6mil大一点这样缝合孔不容易跟信号线冲突。另一个常见问题是过孔跟焊盘冲突。尤其是BGA或者QFN封装下方焊盘密集缝合孔很容易打到焊盘上。解决办法是在这些区域设置Keepout禁止铺铜和打孔。或者用Altium Designer 20的“Via Under Pad”功能把过孔直接放在焊盘上但这需要加工厂支持树脂塞孔或者电镀填孔成本较高。还有一种情况是过孔跟铜皮没有连接。DRC会报“Un-Routed Net”或者“Isolated Copper”。原因可能是过孔的Net不是GND或者铺铜没有Repour。检查过孔属性确认Net是GND然后Repour All一般就能解决。5.2 铺铜Repour后铜皮消失或变形有时候Repour之后某块铜皮突然不见了或者形状变得很奇怪。这通常是因为铜皮跟其他网络的间距不够Altium Designer 20在Repour时会自动“避让”如果避让之后铜皮面积太小就会被当成死铜删掉。解决办法是调整Clearance规则或者手动修改铜皮边界让它避开冲突区域。铜皮变形的原因可能是板框或者禁布区有改动铜皮没有跟着更新。这时候需要重新定义铜皮边界或者用Polygon Actions - Reshape来调整。我一般会在铺铜之后锁定铜皮防止误操作移动。锁定方法是选中铜皮在属性里勾选“Locked”。5.3 缝合孔导致板子翘曲或加工困难缝合孔太密会导致板子局部应力集中尤其是过孔密集的区域回流焊之后容易翘曲。我遇到过一块板子BGA下方打了200多个缝合孔结果过炉之后板子弯了。解决办法是减少过孔数量或者把过孔分散到更大区域。另外过孔孔径不要太小0.3mm是比较合理的再小加工成本高而且容易断钻。加工方面缝合孔太多会增加钻孔成本。一般加工厂按钻孔数量收费几千个孔和几百个孔的价格差不少。我一般会在设计后期统计一下过孔总数如果超过2000个就要考虑是不是有必要这么密。有时候把间距从50mil放宽到80mil过孔数量减少一半性能下降不多但成本省不少。常见问题可能原因解决办法缝合孔跟信号线短路间距不够调整位置或改Clearance规则过孔跟焊盘冲突焊盘密集区打孔设Keepout或调整位置过孔孤立Net不对或未Repour检查Net并Repour All铜皮消失避让后面积太小调整规则或手动改边界板子翘曲过孔太密减少数量或分散布局加工成本高过孔总数太多放宽间距或减少数量5.4 独家避坑技巧第一个技巧铺铜之前先把GND网络的飞线全部连上。很多人喜欢用铺铜来代替GND走线觉得铺铜连上了就行。但铺铜是“面”连接飞线是“点”连接如果飞线没连DRC会一直报错。我一般先用走线把GND网络连一遍然后再铺铜这样铺铜只是增强连接不是唯一连接。第二个技巧缝合孔不要一次性全放完分区域放。先放晶振、时钟、开关电源这些关键区域Repour并DRC检查确认没问题之后再放其他区域。这样如果出问题排查范围小容易定位。第三个技巧用Altium Designer 20的“Polygon Manager”定期检查铜皮状态。Polygon Manager可以列出所有铜皮显示每块铜皮的网络、层、面积、状态。如果某块铜皮状态是“Suspended”或者“Out of Date”说明需要Repour。我一般每完成一个区域就检查一次避免最后一次性Repour出问题。第四个技巧缝合孔放置之后用3D视图检查一下。Altium Designer 20的3D视图可以直观看到过孔和铜皮的连接情况尤其是多层板可以旋转查看内层连接。我遇到过内层地平面没有跟缝合孔连接的情况2D视图看不出来3D视图一目了然。提示3D视图下按数字键2可以切换回2D按3切换回3D。用Shift右键拖动可以旋转视图Ctrl右键拖动可以平移。6. 从设计到出图的完整检查清单6.1 设计完成前的自检项在把PCB发给加工厂之前我一般会过一遍这个清单。铺铜方面所有GND网络是否已铺铜死铜是否已删除铜皮是否已RepourClearance规则是否合理。缝合孔方面关键区域是否已打缝合孔间距是否合适过孔是否跟铜皮连接是否有过孔落在禁布区。DRC方面是否所有错误都已清除警告是否已评估Un-Routed Net是否为零。另外我会用Altium Designer 20的“Reports - Board Information”看一下板子统计信息包括过孔总数、铜皮面积、层数等。过孔总数如果超过3000我会再评估一下是否有必要。铜皮面积如果太小说明铺铜不充分可能需要调整规则。6.2 出Gerber时的注意事项出Gerber的时候缝合孔和铺铜都在相应的层里。顶层铺铜在Top Layer底层铺铜在Bottom Layer缝合孔在Drill层。我一般会单独出一层“GND Via”的钻孔文件方便加工厂核对。另外阻焊层要确认缝合孔是否开窗我一般不开窗因为缝合孔不需要焊接开窗反而容易氧化。出Gerber之前一定要用Altium Designer 20的“Gerber Preview”检查一遍看看铜皮、过孔、阻焊是否正常。我遇到过Gerber里铜皮缺失的情况原因是铺铜没有RepourGerber用的是旧数据。所以出Gerber之前Repour All是必须的。6.3 和加工厂沟通的要点缝合孔太多的话加工厂可能会打电话来确认。我一般会提前在加工说明里写清楚缝合孔是GND连接孔不需要特殊处理按普通过孔加工即可。如果过孔孔径小于0.3mm要确认加工厂是否支持有些小厂最小孔径是0.3mm再小就要加钱。另外如果板子上有盲埋孔或者树脂塞孔要单独说明。缝合孔一般不用塞孔但如果过孔在焊盘上就需要塞孔或者电镀填孔。这些特殊工艺要提前沟通避免加工厂按普通过孔做导致焊接不良。我个人在实际操作中的体会是整板GND过孔这件事看起来是体力活其实是技术活。铺铜设置里的每一个参数缝合孔的每一个位置都跟板子的性能直接相关。我刚开始画板的时候觉得铺铜就是铺满缝合孔就是随便打打结果板子跑起来问题一大堆。后来慢慢摸索才发现这里面有很多门道。比如Thermal Relief的Air Gap设10mil还是8mil缝合孔间距设50mil还是100mil这些细节在低速板上可能看不出差别但在高速板上就是达标和不达标的区别。最后再分享一个小技巧如果你不确定缝合孔间距设多少合适可以先按100mil打一版打样回来测一下地阻抗和辐射发射如果达标就继续用如果不达标再加密到50mil。这样比一上来就按50mil打要省成本而且能积累自己板子的实测数据。我现在的习惯是每块新板子都留几个测试点专门测地阻抗打样回来用网络分析仪扫一下数据存下来下次画类似的板子就有参考了。
返回列表