1. 为什么整板GND缝合孔值得单独拿出来讲
很多人画完板子,铺完铜,DRC一跑没报错,就直接出Gerber了。结果板子打回来一测,EMC辐射超标,或者模拟部分底噪大得离谱,又或者某个高速信号眼图睁不开。回头查半天,发现地平面被各种走线割得七零八落,回流路径绕了一大圈。这种问题,十有八九是GND缝合孔没做到位。
Altium Designer 20(后面简称AD20)在铺铜和过孔处理上其实给了不少工具,但很多人只用到最基础的那一档——铺铜选个GND网络,然后手动打几个过孔意思一下。真正要把整板GND做到低阻抗、回流路径短、屏蔽效果好,需要一套完整的流程:从铺铜参数怎么设、过孔怎么批量放、缝合孔阵列怎么规划,到最终怎么验证。这套流程走下来,板子的地平面质量会有质的提升。
这篇内容适合已经会用AD20画基本板子、但对地平面处理还停留在“铺铜+随手打过孔”阶段的硬件工程师。也适合那些板子能跑但EMC总差一口气、想从layout层面找原因的人。我会把每一步的操作意图、参数背后的逻辑、以及实际项目中踩过的坑都摊开讲,尽量让你看完就能在自己的板子上复现。
2. 铺铜之前的准备工作:网络与规则先行
2.1 确认GND网络已经正确分配
铺铜之前最容易忽略的一步,是确认GND网络到底有没有被正确识别。有些项目里原理图用了多个地符号——AGND、DGND、PGND,到了PCB层面如果没做单点连接或者网络合并,铺铜的时候选GND网络,结果只连上了一部分,另一部分浮空。这种板子打回来,万用表一量,两个地之间几百毫伏压差,信号质量能好才怪。
在AD20里,你可以通过Design -> Netlist -> Configure Physical Nets查看当前PCB中所有网络的物理连接情况。重点看GND相关的网络是不是都指向同一个网络标号。如果原理图里分了AGND和DGND,通常做法是在PCB上用一颗0欧电阻或者磁珠在单点桥接,铺铜时分别铺,最后通过那个桥接点连通。不要图省事直接在整个板子上铺一个大GND然后把AGND和DGND混在一起,数字噪声会直接灌进模拟部分。
提示:如果你的项目里GND网络名称不统一,比如有的地方叫GND,有的叫VSS,建议在原理图阶段就统一。到了PCB再改,飞线会乱,铺铜也容易漏。
2.2 铺铜规则里必须改的几个默认值
AD20默认的铺铜规则对GND整板铺铜来说偏保守,直接用的结果就是铜皮到走线、到焊盘的间距太大,地平面碎得像拼图。我一般会在Design -> Rules -> Plane -> Polygon Connect Style里做几件事。
第一,把Polygon Connect Style里GND网络的连接方式从默认的Relief Connect改成Direct Connect。Relief Connect是热焊盘连接,好处是焊接时散热慢,但缺点是高频下电感大,地平面的低阻抗优势被削弱。对于整板GND,尤其是高速板,直接连接更合适。如果你担心焊接问题,可以只对通孔焊盘保留热焊盘,表贴焊盘用直接连接。
第二,在Clearance规则里,给GND网络单独设一个更小的间距。比如默认全局间距是0.254mm,GND到其他网络的间距可以放到0.2mm甚至0.15mm(取决于你的PCB厂工艺能力)。这样铺铜时铜皮能更充分地填充走线之间的空隙,地平面更完整。
第三,Plane -> Polygon Pour里有个Remove Islands选项,默认是Always。这个选项会把小于某个面积的孤立铜皮删掉。整板GND铺铜时,建议改成Never或者把阈值调小,因为有些小岛虽然面积小,但可能是连接两个区域的关键通道,删了反而造成地平面断裂。
2.3 层叠规划对GND平面的影响
铺铜质量跟层叠结构关系很大。如果是四层板,通常第二层是完整GND平面,第四层是信号加电源。这种情况下,顶层和底层的GND铺铜主要是为了屏蔽和辅助回流,真正的主力是第二层那个完整平面。但很多人四层板把第二层割得乱七八糟,电源走线、信号线都往上面挤,结果GND平面千疮百孔。
我的习惯是:四层板第二层尽量保持完整,只做GND,不走任何其他信号。电源走线放到第四层,或者用顶层/底层的铜皮做电源分割。如果实在需要第二层走线,那至少保证高速信号下方有连续的GND参考。六层板的话,通常第三层做完整GND,第二层和第五层做电源和低速信号。
层叠确定之后,铺铜才有意义。否则你在顶层铺再多GND,回流路径还是绕远路,缝合孔打再多也救不回来。
3. 整板GND铺铜的参数设置与实操
3.1 铺铜网格与填充模式的选择
AD20铺铜有两种模式:Solid和Hatched。Solid就是实心铜,Hatched是网格铜。整板GND我一般用Solid,因为实心铜的阻抗更低,屏蔽效果更好。Hatched铜主要用于柔性板或者需要一定柔韧性的场景,刚性板没必要。
但Solid铜有个问题:大面积铜皮在回流焊时容易受热不均,导致板子翘曲。尤其是板子比较大、铜皮面积超过50%的时候。解决办法不是改成Hatched,而是在铺铜时设置Grid参数,让铜皮内部有一些细小的网格状分割。AD20里在Polygon Pour属性里有个Grid Size,可以设成比如0.5mm,这样铜皮内部会有微小的网格,既保持低阻抗,又减少热应力。
另一个参数是Track Width和Grid Size的配合。如果Grid Size设得比Track Width小,铜皮会变成实心;如果Grid Size大于Track Width,就会出现网格。我通常设Track Width为0.2mm,Grid Size为0.5mm,这样铜皮看起来是实心的,但内部有细微的网格结构,兼顾性能和工艺。
3.2 铺铜顺序与优先级管理
整板GND铺铜不是一次铺完就完事。如果板子上有多个电源域、多个铺铜区域,铺铜的顺序和优先级会直接影响最终效果。AD20里每个铺铜都有一个Priority属性,数值越大优先级越高。高优先级的铺铜会先填充,低优先级的会避让。
我的做法是:先铺小面积、高优先级的铜,比如某个芯片底部的局部GND、某个连接器的屏蔽地。然后再铺整板的大GND。这样小铜皮不会被大铜皮覆盖或者切割。如果反过来,先铺大GND,再铺小铜皮,小铜皮可能会因为避让规则被挤掉一部分,甚至完全消失。
还有一个细节:铺铜的Net属性一定要选对。有些人在顶层铺铜选了GND,在底层铺铜忘了改,结果底层铺的是VCC,短路了。AD20在铺铜属性里会显示当前网络,铺之前扫一眼,养成习惯。
3.3 铺铜后的检查:别只看DRC
铺铜完成之后,DRC跑一遍是必须的,但DRC只能查间距、短路这些硬性错误,查不出地平面的完整性问题。我一般会做两件事。
第一,用Tools -> Polygon Pours -> Repour All重新铺一遍,确保所有铜皮都是最新的。有时候改了走线但忘了重新铺铜,铜皮还是旧的,DRC查不出来但实际板子有问题。
第二,把视图切换到单层模式,只看GND层,肉眼扫一遍。重点看几个地方:高速信号下方有没有被走线割断;晶振、时钟线附近有没有完整的GND包围;连接器接口处GND有没有充分覆盖。如果发现某个区域GND被割成了一条细线,那就要考虑调整走线或者增加缝合孔来桥接。
注意:AD20有个
Polygon Pour Manager,可以一次性查看所有铺铜的状态。如果某个铺铜显示Out of Date,说明需要重新铺。别忽略这个提示。
4. 缝合孔阵列的规划与批量放置
4.1 缝合孔到底解决什么问题
缝合孔(Stitching Via)的作用是把不同层的地平面连在一起,缩短回流路径,降低地平面阻抗,同时抑制边缘辐射。很多人以为缝合孔就是“多打几个过孔”,其实它的布局是有讲究的。
最典型的场景是:顶层和底层的GND铜皮,通过缝合孔连接到中间的完整GND平面。这样顶层信号的回流电流可以就近通过缝合孔流到中间平面,再通过另一个缝合孔回到源头,形成一个紧贴信号走线的回流环路。如果缝合孔离信号线太远,回流环路面积大,辐射和敏感度都会变差。
另一个场景是板边屏蔽。在板子边缘每隔一定距离打一排缝合孔,把顶层和底层的GND铜皮“缝”在一起,形成一个类似法拉第笼的结构,可以有效抑制板边辐射。这个间距一般取最高频率对应波长的1/20到1/10。比如最高频率1GHz,波长300mm,1/20就是15mm。实际项目中我一般取5mm到10mm,更密一些更保险。
4.2 用AD20的Via Stitching工具批量放置
AD20有一个专门的功能叫Via Stitching,在Tools -> Via Stitching/Shielding下面。这个工具可以沿着铺铜边缘、沿着走线、或者在指定区域内自动放置缝合孔阵列。很多人不知道这个功能,还在手动一个一个打过孔,效率低还容易漏。
具体操作:先选中你要缝合的铺铜区域,然后打开Via Stitching对话框。里面有几个关键参数:
Via Style:选择过孔类型,通常用GND网络的过孔。Grid:阵列间距,我一般设5mm到8mm。Stagger:是否交错排列,勾上之后孔位会错开,屏蔽效果更好。Edge Clearance:孔到铺铜边缘的距离,一般设0.5mm到1mm。
设置好之后点OK,AD20会自动在铺铜区域内生成缝合孔阵列。生成之后要检查一下,有没有孔打到了走线上或者焊盘上。虽然AD20会避让,但有时候规则没设好还是会出问题。
4.3 手动补充缝合孔的几个关键位置
自动工具虽然方便,但有些位置必须手动补。我一般会在以下几个地方额外加缝合孔:
第一,高速信号换层的位置。信号从顶层换到底层,旁边一定要有GND缝合孔,让回流电流能就近换层。距离一般控制在信号过孔周围2mm到3mm以内。
第二,晶振、时钟芯片、ADC/DAC的GND引脚附近。这些器件的GND引脚最好直接通过缝合孔连到内部GND平面,不要走长线再打孔。
第三,连接器接口处。比如排针、USB、HDMI这些接口,GND引脚附近要多打几个缝合孔,把接口地和板内地紧密连接。
第四,板边每隔5mm到10mm打一排。这个可以用自动工具生成,但要注意避开板边的安装孔和定位槽。
4.4 缝合孔与走线的间距控制
缝合孔虽然连的是GND,但也不能随便打。如果离信号线太近,会改变信号线的阻抗,尤其是差分对。我一般会设一个规则:缝合孔到任何非GND走线的间距不小于0.3mm。如果是差分对,间距不小于0.5mm,并且尽量对称。
AD20里可以在Clearance规则里给过孔单独设间距。Design -> Rules -> Clearance -> Via to Track,设一个最小值。这样放置缝合孔的时候,DRC会自动检查,避免太近。
还有一个细节:缝合孔的孔径和焊盘尺寸。整板GND缝合孔一般用0.3mm孔径、0.6mm焊盘就够了。太小了PCB厂不好做,太大了占地方。如果是大电流路径上的缝合孔,孔径要相应加大,比如0.5mm孔径、1.0mm焊盘,具体根据电流算。
5. 铺铜与缝合孔的联合验证
5.1 用3D视图检查地平面连续性
AD20的3D视图不只是用来看板子长什么样的,还可以用来检查地平面。按快捷键3切换到3D模式,然后隐藏所有非GND层,只显示GND铜皮和缝合孔。这样你可以直观地看到地平面是不是完整的,缝合孔是不是均匀分布。
我经常在3D视图里发现一些问题:比如某个区域GND铜皮被走线割开了一个大口子,自动缝合孔没覆盖到;或者某个角落缝合孔太稀疏,明显是个薄弱点。这些问题在2D视图里不容易发现,3D视图一目了然。
5.2 回流路径的目视检查方法
回流路径这个东西,DRC查不出来,但可以用目视法检查。具体做法:在2D视图里,选中一条高速信号线,然后看它下方的GND平面。如果GND平面是完整的,没有跨分割,那回流路径就没问题。如果信号线跨过了GND平面上的一个缝隙,那回流电流就得绕路,问题就来了。
AD20里可以用Ctrl+H选中整条网络,然后按L切换到单层模式,只看GND层。这样信号线的投影和GND平面的关系一目了然。如果发现跨分割,解决办法有两个:一是调整走线避开缝隙,二是在缝隙处补缝合孔把两侧GND连起来。后者更常用,但要注意缝合孔要足够密,一般缝隙两侧各打一排,间距2mm到3mm。
5.3 用DRC自定义规则检查缝合孔密度
AD20的DRC可以自定义规则,但默认规则里没有“缝合孔密度”这一项。不过你可以用Room或者Polygon来间接检查。比如在板边定义一个Room,然后在Room里设一个规则,要求过孔数量不少于某个值。这个操作稍微麻烦一点,但对于大批量生产或者对EMC要求高的项目,值得做。
更简单的办法是导出钻孔文件之后,用CAM工具检查。把钻孔文件导入CAM350或者免费的Gerber查看器,统计GND过孔的数量和分布。如果发现某个区域过孔密度明显偏低,回头在AD20里补几个。
6. 实际项目中踩过的坑与经验总结
6.1 缝合孔打太多导致焊接不良
有一次做一块大板,整板GND铺铜之后用自动缝合孔工具生成了几百个过孔,间距设了3mm。板子打回来发现,有些区域过孔太密,回流焊时热量被过孔迅速导走,导致焊盘温度不够,出现了虚焊。后来把间距放宽到6mm,并且把过孔焊盘改小,问题才解决。
这个坑的教训是:缝合孔不是越多越好。密度要根据板子的热容量和焊接工艺来定。一般消费类电子产品,5mm到8mm间距足够了。工业级或者高可靠性产品可以密一些,但也要考虑焊接工艺能不能跟上。
6.2 铺铜优先级设错导致GND被割裂
另一个项目里,板子上有一个大功率电源模块,需要一块独立的PGND铺铜。我先把整板GND铺了,然后再铺PGND,结果PGND的优先级设得比GND低,铺铜的时候PGND被GND挤掉了大半,电源模块的地平面严重不足。后来把PGND的优先级调到比GND高,重新铺铜才正常。
AD20里铺铜的优先级是数值越大越优先。默认新建铺铜的优先级是0,如果你先铺了一个优先级为0的大GND,再铺一个小PGND也是0,那AD20会按创建顺序处理,后创建的可能会被先创建的避让。所以铺铜之前,先规划好哪个区域用哪个网络,优先级怎么排,别铺完了才发现顺序不对。
6.3 缝合孔离晶振太近导致频偏
有个项目用了一颗32.768kHz的晶振,铺铜之后自动缝合孔在晶振周围打了一圈。板子回来发现晶振频率偏了,而且起振时间变长。查了半天,发现是缝合孔离晶振太近,晶振的负载电容受到了GND铜皮和过孔寄生电容的影响。后来把晶振周围的缝合孔移开,至少保持3mm距离,问题解决。
晶振、谐振器这些对寄生参数敏感的器件,周围铺铜和过孔都要小心。不是不能铺,而是要留出足够的禁布区。AD20里可以用Keepout层在晶振周围画一个禁布区,铺铜和过孔都会自动避让。
6.4 忽略铜皮到板边的距离导致生产问题
整板GND铺铜的时候,铜皮到板边的距离是个容易被忽略的参数。AD20默认的板边间距是0.5mm,但有些PCB厂要求更大,比如1mm。如果铜皮离板边太近,铣板的时候铜皮可能会翘起或者短路。我一般会在Design -> Rules -> Clearance里设一个Board Outline Clearance,至少0.5mm,保险起见设1mm。
另外,板边的缝合孔也要注意。如果缝合孔离板边太近,钻孔的时候可能会崩边。一般缝合孔中心到板边距离不小于1mm,焊盘边缘到板边不小于0.5mm。
6.5 重新铺铜后缝合孔丢失的问题
AD20里有个坑:如果你先放了缝合孔,然后重新铺铜,有些缝合孔可能会被删掉。因为缝合孔是依附于铺铜存在的,铺铜重新生成时,如果缝合孔的位置不再满足规则,就会被移除。解决办法是:先铺铜,再放缝合孔。如果必须重新铺铜,铺完之后检查一遍缝合孔,缺的补上。
或者用Tools -> Via Stitching/Shielding -> Remove Stitching Vias先移除旧的,重新铺铜后再生成新的。这样虽然麻烦一点,但不会出现缝合孔丢失的情况。
7. 从铺铜到缝合孔的完整操作清单
把上面这些内容串起来,整板GND过孔处理的完整流程大概是这样的:
- 确认GND网络统一,AGND/DGND在单点桥接。
- 设置铺铜规则:GND直接连接、间距适当、移除孤岛设为Never。
- 规划层叠,确保有一层完整的GND平面。
- 按优先级铺铜:先小区域高优先级,再整板大GND。
- 铺铜后Repour All,单层模式目视检查地平面完整性。
- 用Via Stitching工具生成缝合孔阵列,间距5mm到8mm。
- 手动补充关键位置:高速信号换层处、晶振周围、连接器接口、板边。
- 设置过孔间距规则,避免影响信号阻抗。
- 3D视图检查地平面连续性,目视检查回流路径。
- 导出钻孔文件,用CAM工具统计过孔密度。
- 注意晶振禁布区、板边间距、焊接热容量等细节。
这套流程走下来,一块板子的GND处理基本就到位了。当然,具体参数还要根据板子的实际情况调整。比如高频板缝合孔要更密,大电流板过孔要更大,柔性板可能要用网格铜。但核心逻辑是一样的:让地平面尽量完整,让回流路径尽量短,让不同层的地紧密连接。
我在实际项目中最大的体会是,GND处理这件事,功夫在铺铜之前。网络规划、层叠设计、规则设置这些前期工作做到位了,后面铺铜和打孔就是水到渠成的事。如果前期没规划好,后面再怎么补缝合孔,效果也有限。所以别急着铺铜,先把规则和层叠想清楚。