PCB上打缝合孔,看着就是把过孔一个个码进铺铜区里,真上手的时候一堆人翻车:要么阵列孔全部悬空没跟地铜相连,要么间距不合规矩灌铜后DRC满屏报错,要么一铺铜过孔直接“消失”。如果你用的是PADS VX2.4,这篇我建议从头到尾看完。它讲的就是从铺铜开始、到阵列过孔结束的缝合孔添加全流程,适合刚接触PADS的Layout新手,也适合被缝合孔折腾过的硬件工程师。我会把原理、参数、操作细节和踩坑点一次说清楚。
1. 缝合孔不是装饰:先搞懂原理再动手
1.1 缝合孔在PCB里到底干什么
缝合孔(Stitching Via)本质上是把不同层的参考平面,尤其是地平面,用大量过孔并联起来。很多人把它理解成“多打几个地孔”,这个方向对,但理解得太浅。多层板内部通常有好几个GND层,这些GND层在电气上看似连在一起,实际上如果只在电源入口、接插件附近零星几个孔连接,地平面彼此之间就是“隔空相望”的状态。
高频信号在PCB内流动时,回流电流永远走阻抗最小的路径。地平面之间的连接点太少,回流电流就不得不绕远路,比如从某一边的过孔跑到另一边,再折回来。绕路意味着更大的回路面积,回路面积一大,天线效应就来了,EMI辐射直接飙升。缝合孔的作用,就是给回流电流修一条“电梯通道”,让电流能在最短距离内跨层,从而把回路面积压到最小。
可以用一个生活化的类比:一栋楼每层都有完整地面,但整栋楼只有一部电梯,所有人都挤在电梯口进出,效率低不说,秩序也乱。缝合孔就是多开几部电梯,均匀分布在各个区域,让楼里的人就近上下。PCB里的“人流”就是高频回流电流,“电梯”就是过孔。
还有一点容易被忽略:缝合孔能抑制缝隙天线效应。两个相邻地平面边缘如果没有缝合孔连接,结构上就像一条扁平的缝隙,在一定频段会形成无意中的“缝隙天线”。沿板边或铜箔边缘均匀布置缝合孔,相当于把这条缝隙在多个点位上“缝合”起来,从根本上破坏天线辐射条件。这也是“缝合孔”名字的由来——真的是把两层地缝合在一起。
1.2 什么场景必须加缝合孔
第一个典型场景是板边。PCB最外侧一圈,尤其是多层板,要沿着边界每隔一段距离打一排缝合孔,把顶层和底层的GND铜皮、以及内层GND平面全部“捆”在一起。这能明显降低边缘辐射,也是很多EMC整改报告中很常见的举措。
第二个场景是高速信号换层附近。信号从顶层走到内层,回流电流也需要跟着换层。如果信号过孔旁边没有配套的缝合孔,回流电流就要在附近“找个缝隙”穿过去,一不小心就会跨过一条电源分割槽,形成巨大的回流环路。所以在高速信号的换层过孔旁,通常加一对或一圈缝合孔,距离控制在30~60mil以内效果较好。
第三个场景是屏蔽罩或射频电路周围。屏蔽罩本身要通过地孔和GND平面紧密连接,否则屏蔽效果等于零。射频走线两侧也往往要打满地缝合孔,把射频区域“围”起来,形成实质意义上的隔离。
第四个场景可能出乎很多人意料:电机驱动板。热词里提到“电机上面铺铜会导致高EMC”,这不是铺铜的锅,而是铺铜没配合好缝合孔的结果。电机驱动板上有大功率MOS管,开关节点电压变化非常快,开关噪声会通过杂散电容耦合到铜皮上。如果MOS管上方的GND铺铜与其它地层之间缝合孔不足,或者铺铜本身网络错误、形成大块浮铜,这块铜皮就会变成一个高效的辐射天线。我之前处理过一块电机驱动板,EMI在几十MHz段超标了大概8dB,最后排查下来,就是MOS管上方那一片GND铜皮和底层地只靠角落一个过孔连接。补了两排缝合孔之后,余量直接回来了。所以电机驱动板不但要铺铜,还要在铺铜区域内系统性地布置缝合孔,铺铜和缝合孔必须成对出现。
2. 动手前的准备:过孔定义与设计规则
2.1 缝合孔的尺寸与间距怎么定
缝合孔没有万能参数,但有一套成熟的经验值,直接抄作业基本靠谱。对于常规的数字电路板,缝合孔钻孔直径取12mil、成品焊盘直径取24~28mil,孔间距按100~150mil布置。对于高速数字或射频板,钻孔降到8mil、焊盘20mil左右,间距缩到60mil以内,有时甚至更密。对于电机驱动板这类有大电流需求的板子,缝合孔要适当加大,钻孔直径16~24mil,间距放宽到150~200mil,因为这种板子工作频率不高,主要诉求是降低阻抗和过电流能力。
为什么间距不能拍脑袋?有一个粗略但实用的原则:缝合孔间距应小于最高噪声频率对应波长的二十分之一。举个例子,如果板上存在1GHz的噪声,自由空间波长约300mm,二十分之一就是15mm。但板内介质有缩短效应,实际波长更短,所以经验上取3mm左右的间距已经很稳妥。如果噪声是100MHz级别,波长3m,二十分之一是150mm,对应到板级尺寸,沿板边每隔2~3mm打缝孔就远远够用了。
还要注意过孔孔径和焊盘的比例。焊盘比钻孔大得太多,灌铜后过孔间距明明看着很宽,DRC却报错,通常是焊盘外径之间触线了。PADS里设置的间距规则默认是“焊盘边缘到焊盘边缘”,不是“钻孔边缘到钻孔边缘”,所以算间距要按焊盘外径来算,不要只盯着钻孔。
2.2 在PADS VX2.4里把过孔写进规则
在PADS VX2.4里开始放缝合孔之前,先确认两件事:一是这个过孔类型已经存在,二是设计规则允许使用它。
过孔类型一般在Pad Stacks里管理。打开Setup > Pad Stacks,右边可以看到所有孔型列表。如果里面没有你要用的缝合孔,可以新建一个,主要设置钻孔直径、焊盘内外径,以及它穿透的层范围。缝合孔是贯穿所有层的通孔,所以Top到Bottom都要有焊盘,中间层可以不设大焊盘,但至少要能连通。
下一步是让设计规则接受这个过孔。进入Setup > Design Rules > Default,切到Routing标签,在Vias区域会列出当前规则允许使用的过孔。把之前新建的缝合孔类型勾上。这一步漏掉的话,后面放孔时PADS会直接禁用该过孔,或者放上去之后DRC疯狂报错。
放孔之前还要在编辑器里指定当前默认过孔。在Design工具栏选中Via工具,然后看Options面板,里面有一个Via下拉列表,选好你要的缝合孔类型。这个操作特别基础,但很多人烦恼“怎么放出来的孔不是我想要的”,十有八九就是这里没选。
3. PADS VX2.4铺铜到缝合孔全流程实录
3.1 铺铜区域怎么画才对
先说最终顺序我的建议:先画铺铜边界,再放缝合孔,最后灌铜。不要先在裸板上把孔打完再画铺铜,那样很容易出现孔明明在附近、却不在铺铜区域内的尴尬局面。
把当前层切换到GND层。在顶部工具栏的Design工具盒里选择“Copper Pour”图标,开始在板上绘制封闭图形。画完之后双击铺铜边界,在属性窗口里把Net设置为GND。这一步非常关键,如果Net留空,后面放上去的缝合孔就算物理上在铜皮里,电气上也连不上。
如果你的板子存在某些区域不允许铺铜,比如天线净空区、高压隔离区,或者是电机驱动板上控制信号比较敏感的区域,需要用Keepout工具先画禁止铺铜区。PADS里选择Keepout图标,绘制封闭区域,然后在属性里设置它禁止的对象,一般把Copper和Copper Pour都勾上。这个功能跟Cadence里的Route Keepout、AD里的禁止铺铜区是同一个思路。先画禁止区、再画铺铜区,这样灌铜时PADS会自动避开。
铺铜区域画好后,建议先用Tools > Pour Manager里的Flood预览一次,确认铺铜轮廓和禁止区符合预期。这时候不用急着检查过孔,先把基础形状确认掉。
3.2 手动放孔和阵列粘贴手法
第一个缝合孔通常手动放。在Design工具栏选择Via工具,Options面板里选好缝合孔类型,在铺铜区域内单击放置。放完之后要检查这个孔的网络。选中过孔打开属性,如果网络是空的,给它改成GND。更稳妥的做法是在放孔之前就把默认网络设成GND,但PADS的Via工具默认不会继承你当前正在布线的网络,所以养成选中后检查属性的习惯最保险。
要阵列化了,很多人习惯一个孔一个孔点,这样也能用,但效率太低。我常用的方式是配合栅格做“复制粘贴接力”。先把栅格设为统一值,无模命令输入G 100,把栅格设为100mil。然后选中刚才那个孔,按Ctrl+C,再按Ctrl+V,光标上会带着新副本,移动到下一个位置单击放置。由于栅格是100mil,第二个孔落点天然和第一个对齐。
如果你想做两行以上的阵列,就把第一行孔全部框选,然后Ctrl+C、Ctrl+V整体复制,移动到下一行位置放置。这样做的好处是行内间距完全不变,整体阵列非常整齐。只是每个副本间距依赖栅格,如果你的缝合孔间距不是整数栅格值,比如需要95mil间距,那就要先算好栅格,或者用坐标精确输入。
3.3 阵列过孔的高效批量技巧
手动接力摆摊虽然稳,但孔多的时候还是会累。PADS VX2.4里有没有类似阵列过刀的命令?其实有,但藏在无模命令里,叫SR(Step and Repeat)。
操作流程是这样:先选中一个或一组已经放好的缝合孔,按Ctrl+C复制,再按Ctrl+V,此时处于粘贴悬停状态。直接在无模命令框输入SR,回车,PADS会提示你输入步进重复参数。不同小版本的具体提示顺序可能略有差异,但通常需要输入横向增量、纵向增量、重复数量。比如你要做一列5个孔、X方向每个间隔100mil,就输入X增量100、Y增量0、数量5,点击基准点,PADS会一次性生成一串等间距副本。
这个命令我在VX2.4上实测过很多次,熟练之后效率很高,而且比手动“拷贝-粘贴-再拷贝”更容易保证间距一致性。有一点要提醒:每次粘贴时基准点选在哪个位置,决定了后续增量从哪开始算。如果基准点选在孔的焊盘中心,后续副本就会以焊盘中心为基准偏移;如果选在某个角落,整个阵列会整体平移一段距离。所以实际阵列前,最好把光标精确移动到过孔焊盘中心,必要时用S无模命令直接输入坐标定位。
用SR做整面矩阵也方便:放好第一行后,把整行孔选中,复制并粘贴,用SR设置Y方向增量,生成第二行、第三行。注意复制整行时,增量数量要减去第一行本身,比如你总共要6行,第一行已经存在,增量数量填5。
3.4 灌铜之后的连接检查
缝合孔全部放好后,回到Tools > Pour Manager,点击Flood开始灌铜。灌铜过程中PADS会重新计算所有铺铜区域与铜箔、过孔的连接关系。
灌完铜先别急着关界面,重点检查两件事。第一,过孔是否被赋予了正确的GND网络。最简单的方式是用鼠标点击一个缝合孔,看状态栏或者属性窗口里的网络名。如果是空网络,铜皮不会理它,两个地平面依然是孤立的。第二,过孔和铺铜之间是否形成了有效连接。把显示层全部打开,放大缝合孔位置看热焊盘或直接连接区域是否真实存在,不要只看孔在铜皮内就认定连接了。
我还会习惯性跑一遍Verify Design安全间距检查。如果报出一堆“Clearance”错误,先别慌点开详细信息,看一下报错对象是不是缝合孔与铺铜边缘距离不够,还是孔间距违反了规则。真问题还是假问题,通过报错坐标很快能分辨出来。
4. 缝合孔常见问题与排查实录
4.1 过孔没跟铜连上
这是最常见的问题,症状表现为灌铜后缝合孔周围没有热焊盘,点击过孔发现网络为空,或者网络正确但DRC提示未连接。主要原因有三个。第一个原因是过孔网络没设置,前面反复强调过,PADS里复制出来的过孔不一定继承原始网络的,必须逐个或批量确认。第二个原因是过孔被定义成了“Isolated”隔离属性,在Pad Stack或过孔属性里,连接方式可能是Isolated,这会导致哪怕网络正确,铺铜也不连它。第三原因是过孔落在了禁止铺铜区或铺铜边缘的外面,检查一下过孔坐标与铺铜边界的关系。
4.2 阵列孔间距不均匀
阵列孔看起来乱,九成九是栅格和基准点问题。放进第一个孔之前,先统一栅格值,建议用G命令设为缝合孔间距的公因数。例如间距120mil,栅格可以设成30mil,这样落点非常自由。如果使用SR命令阵列,检查一下增量参数有没有正确输入,曾经见过有人把X增量填成了0,结果一行孔全部叠在一起,DRC直接爆炸。另外,放置过程中如果PADS打开了磁铁吸附(Snap to Object),可能会把光标吸到旁边的线段端点或焊盘中心,导致整排孔偏斜。放阵列时建议临时关闭不需要的吸附项。
4.3 灌铜后DRC报错怎么区分
跑完Verify Design,报错大致分三类:第一类是Clearance错误,多半是过孔焊盘间距不足,或者过孔与铺铜边缘之间距离小于设计规则。第二类是Connectivity错误,说明过孔网络没连上铺铜,通常是网络属性问题。第三类是Broken Copper或Isolated Copper,这类在缝合孔场景里也很常见,因为灌铜参数里如果没有勾选“去掉孤立铜皮”,多余的小块铜皮会留在板上,看起来好像有什么作用,实际是悬空的,遇到这种情况可以在Pour Manager的设置里打开孤岛去除选项,或者在Design Rules里的Copper Pour相关规则中把最小铜皮面积调大。
为了让排查过程更直观,我把常见情况整理成了速查表:
| 现象 | 直接原因 | 处理办法 |
|---|---|---|
| 缝合孔网络为空 | 放孔时没有设置网络 | 选中所有缝合孔,右键属性改成GND |
| 孔在铜皮内但未连接 | 过孔属性为Isolated | 在Pad Stack或属性中改为Direct/Full Contact |
| 灌铜后孔周围出现空隙 | 禁止铺铜区覆盖了孔 | 检查Keepout区域,调整孔位 |
| 阵列孔叠孔 | SR增量参数错误或栅格为0 | 重做阵列,检查增量和栅格 |
| DRC报Clearance | 孔间距小于规则或焊盘过大 | 调整孔距或减小焊盘外径 |
| 灌铜后留下碎铜 | 孤立铜皮未去除 | Pour Manager里开启去除孤立铜皮 |
4.4 避开“电气假连”的大坑
有一种情况最能迷惑人:缝合孔网络正确、灌铜也正常,电阻表量上去却是通的,但高速信号回流就是不顺畅。原因是热焊盘连接。PADS默认对孔采用热焊盘连接,热焊盘通过四根细辐条和铜皮搭在一起,辐条截面积远小于整块铜皮,高频电流经过时会产生明显阻抗。缝合孔是拿来过电流和做回流通道的,不是用来焊接的,所以它不需要热焊盘,应该设为全连接(Direct)。这个细节测试阶段用万用表根本测不出来,只能通过EMI问题事后发现。正确做法是提前把缝合孔设置成全连接,直接和铜皮整面相连。
5. 避坑心得与经验补充
5.1 热焊盘和全连接怎么选
在PADS里修改缝合孔连接方式,可以选中目标过孔后打开属性,在Pad Stack或连接类型里把Thermal改为Direct。如果你用的是自定义过孔,最好在Pad Stacks里把该过孔类型的默认连接方式直接设为Direct,这样后面所有同类缝合孔都自动全连,不用一个个改。
我做过的板子里,缝合孔全连接带来的EMC改善确实比热焊盘更明显。不要担心焊接问题,缝合孔上没有元件需要焊接,即便单面贴片也不会使用孔内焊接来固定元件,所以热焊盘的散热顾虑在这里不成立。真要说例外,只有当你把缝合孔兼作手工测试点、需要频繁焊接飞线时,热焊盘才有它的价值,但这种场景极少,而且完全可以用单独测试点替代。
5.2 AD、Cadence转PADS的差异提醒
如果你是Altium Designer或者Cadence用户转过来的,会有一段时间不太习惯PADS的铺铜交互。AD里隐藏铺铜可以用快捷键,显示也很快;Cadence里画禁止铺铜区用的是Route Keepout。PADS这边,隐藏/显示铺铜主要通过Layer和Display Colors控制,铺铜预览状态则是Tools > Pour Manager里的Flood/Plane Connect。刚上手时不要试图用AD的思维方式硬套,多在PADS里走一遍“画Copper Pour边框 -> 设网络 -> 放孔 -> Flood”的流程,肌肉记忆建立起来之后就顺了。
另一个差异是AD的阵列粘贴有直观对话框,PADS的SR无模命令显得原始,但实际用熟了你会发现这种命令行方式更灵活,尤其是在连续复制几组不同增量时,不用反复弹窗口,键盘操作能达到很高的效率。
5.3 先打孔还是先灌铜,我的习惯
回到最开始那个问题,先打孔还是先灌铜?我的习惯是:先在PADS里画出铺铜边框,确认铺铜区域和禁止铺铜区都没问题,然后在边框范围内放置缝合孔,最后统一执行Flood灌铜。这样做的好处是过孔位置始终处于铺铜覆盖范围内,不会出现“孔在旁边、铜皮不管它”的状态。
如果你拿到一块已经灌好铜的板子,临时想补缝合孔,也没问题。VX2.4支持直接在有铜皮的区域放置过孔,放完后重新执行一次Pour Manager里的Flood,让铜皮重新计算连接关系即可。只是这时候要格外注意过孔是否落在了原有铺铜边缘以外,有时候你以为补在铜皮里面了,其实刚好落在Keepout区域的边缘,重新灌铜后照样不连接。
实际项目里我还习惯在最后检查阶段把缝合孔和信号过孔分开筛选,比如在PADS的选择过滤器中只选Via,然后用颜色高亮所有缝合孔,确认整板分布是否均匀。这个方法能快速发现“哪里漏了一大片”的问题。缝合孔这个东西,宁可多打一排,也不要漏掉关键位置,等产品做回来说EMI超标,再去改板,成本和周期完全不是一个量级。