
AD20 PCB设计实战解决GND铺铜与过孔布局的常见错误铺铜这活儿看着简单画个板框选个网络按下快捷键铜皮哗啦一下铺满整板。但你有没有遇到过这种情况——板子打样回来焊完一上电某个芯片的GND引脚对地电压偏高或者EMC测试时辐射超标又或者铺铜区域里有几块孤零零的小岛怎么都连不到地上去我在用AD20做PCB设计这几年踩过不少铺铜和过孔布局的坑尤其是GND铺铜这部分几乎每一个看似没问题的板子回头检查时都能揪出一堆隐患。这篇就把我实际折腾出来的经验、参数设置和排错思路整理一遍专治GND铺铜和过孔布局这边各种说不清道不明的毛病。先给不熟悉的读者交代一下背景。AD20是Altium Designer 2020版本PCB设计里最常用的操作之一就是铺铜Polygon Pour而过孔Via则是连接不同层之间铜箔的通道。GND网络作为整个电路的参考地平面它的铺铜质量和过孔分布直接关系到信号完整性、电源稳定性和EMC表现。这篇文章适合正在用AD20画板、准备投板打样或者板子已经回来但遇到GND相关问题的工程师特别是中小功率控制板、电机驱动板和传感器采集板这类场景。1. 铺铜前必须搞清楚的规则不是把铜撒上去就完事很多人第一次铺GND铜皮是直接在顶层和底层各拉一块Polygon Pour网络选GND然后回车完事。这样确实能出铜但铺出来能不能用、好不好焊、过流能力够不够完全是另一回事。我在实际项目里发现铺铜之前的规则设置决定了铺铜百分之七八十的效果。1.1 铺铜网络归属与GND网络的正确设置铺铜的本质是给一整片区域指定一个网络。通常我们的做法是给顶层、底层的大面积铜皮指定为GND。这里有一个经常被忽略的细节网络名的大小写和前缀必须和原理图完全一致。AD20里GND和gnd在电气上是两个不同的网络如果你铺铜时敲了个小写的gnd而原理图里用的是大写的GND那整块铜皮就是孤立的和任何焊盘都连不上。我见过一个很隐蔽的情况项目是从旧版本工程迁移过来的原理图里GND网络被自动改成了GND_PWR之类的带后缀名称但PCB里铺铜却还选的GND。这种问题在DRC检查时一般会报Un-Routed Net但如果你没仔细看光看铜皮上有个GND标签就以为连好了等到焊接测试时才发现地线根本没接通。所以在铺铜前建议先打开PCB面板把Net列表完整看一遍确认GND网络的准确名称再在铺铜属性里选网络。另外对于多层板内层的地平面也建议用铺铜来实现而不是直接画一块无网络的铜皮。AD20里边做内层GND平面可以先用Keepout或者板框定义区域再放置Polygon Pour指定GND网络。这样做的好处是之后修改板框尺寸铺铜会跟随板框自动收缩不会出现内层铜皮露出板边的问题。1.2 间距规则、死铜移除与最小连接宽度铺铜的间距规则直接影响两个东西一是电气安全二是铺铜的连续性。AD20里默认的Clearance规则是0.254mm10mil有些高密度板会调到0.2mm但GND铺铜和高压引脚之间我一般会把间距单独设置到0.5mm以上否则爬电距离不够板子在潮湿环境下容易出问题。具体操作是在Design Rules里新加一条Clearance规则把Where The First Object Matches设置为InNet(GND)把Where The Second Object Matches设置为InNet(HV_PIN)或者InAnyClass然后指定间距。规则也有优先级同一个网络对之间如果命中多条规则AD20会按优先级高的来建议把这种自定义规则放到默认规则前面。死铜也就是铺铜区域内没有连接到网络焊盘的铜皮小岛是GND铺铜最大的坑之一。如果你在铺铜属性界面里把Remove Dead Copper选项勾上AD20会自动删除这些孤岛如果没勾板子上就会留着一块块漂浮的GND铜皮。这些死铜看图时不容易发现到生产线上也没人帮你处理最终结果就是该接地的地方没接上可能还形成寄生天线让EMC问题变得更严重。我个人的习惯是铺铜属性里勾上Remove Dead Copper并且在铺铜完成后主动检查是否有残留孤岛。还有一个比较少人注意的参数Polygon Connect Style也就是铺铜和焊盘的连接方式以及连接导线的宽度。默认是十字形连接连接宽度和规则里的导线宽度一致。如果你在铺铜属性里不单独设置AD20会采用最小连接宽度通常只有0.254mm这对大电流的GND焊盘来说太细了。我一般会把GND铺铜和焊盘的连接宽度设置到0.5mm甚至1mm保证每个GND焊盘有足够的连接面积不至于过流时会烧断铜皮。2. GND铺铜最常见的四类错误与处理手法这部分是我自己踩过最多坑的地方挑四个典型问题展开讲每一个都是真实项目中遇到过的。2.1 铺铜后出现大量死铜区死铜区怎么来的一般是板面上有狭长的槽孔、密集的过孔阵列或者小间距的走线把铺铜区域切割成很多小块这些小块又恰好没有和任何GND焊盘相连就成了死铜。AD20虽然能自动删除死铜但它的判定逻辑是完全孤立的小铜皮才删如果某个小岛通过一段细小的铜皮和主GND区域勉强连在一起它不会删但那段细铜皮很可能只能过很小的电流相当于瓶颈。处理死铜我的建议是两层。第一层在铺铜前先用画线工具在容易出现死铜的区域加一条引导线把铺铜的走向引导到焊盘密集的地方让铜皮更容易和焊盘接触。第二层铺铜完成后用快捷键T - G - A重新铺铜再按T - G - D删除死铜这是AD20里重铺和清除死铜的标准操作。如果发现某个区域依然出现大片死铜与其在那里纠结不如直接在该区域放置几个GND过孔这样铜皮就有锚点可以连接了。2.2 铺铜和器件焊盘连接方式选错导致焊接/散热问题铺铜和焊盘的连接方式有直接连接和热焊盘十字连接两种。选择不对的后果要么是焊盘散热太快导致虚焊要么是大电流焊盘连接太细导致温升高。GND铺铜如果采用直接连接焊接时烙铁的热量会迅速被整片铜皮吸走焊锡很难充分融化手工焊接时特别明显。所以对于普通信号GND焊盘我强烈建议用十字连接这样焊盘和铜皮之间保留了一定的热阻焊接要顺利得多。但反过来对于功率地上需要走大电流的焊盘比如电源芯片的散热焊盘、电机驱动MOS管的源极焊盘就不能用十字连接了因为十字连接相当于给大电流通路加了四个细脖子过流能力严重不足。我一般会单独设置一个规则把这类大电流焊盘所在的器件或网络连接方式改成Direct Connect同时把连接宽度加大到1mm以上。具体操作打开Design Rules找到Polygon Connect Style新建规则Where The First Object Matches选择InNet(PGND)如果你的大电流地是PGND然后把Connect Style设为Direct ConnectConnection Width设为1mm。注意规则顺序这个特殊规则要放在默认规则前面。2.3 铺铜边界与板框、安装孔的间距失控铺铜离板框太近加工时可能被铣刀切到导致铜皮毛边甚至短路离安装孔太近打螺丝时容易碰到螺丝头造成和其他网络的短路。AD20的铺铜区域如果设置成跟随板框一般会自动内缩一个距离但如果你手动画的铜皮形状或者板框改动过就很容易出现边界贴合太近的问题。我的经验是铺铜和板框的间距至少留0.5mm和安装孔尤其是不接地的金属安装孔至少留1mm以上。如果是自定义形状的铺铜画完以后用键盘上的ShiftCtrl单击铺铜区域选中铺铜打开属性面板检查它的边界确认没有和Keepout线、板框的倒角区域冲突。还有一个高频问题改过板框以后铺铜没有自动更新边界边缘留下一道锯齿或者缺一块。AD20里铺铜区域和板框之间不是自动关联的板框改变后旧的铺铜形状不会自动适应。需要手动选中铺铜重新拉一遍边界或者干脆删除铺铜重新铺。我一般会在改完板框后执行一次全板重铺再逐一检查铺铜边缘。2.4 多层板GND铺铜的过孔缝合没做回流路径断了双层板上GND铺铜主要在顶层和底层问题还不算突出到了四层板甚至更多层内层的地平面如果和顶层底层的GND铜皮之间缺少过孔连接回流电流就只能绕远路这等于人为增加了回路电感。过孔缝合Via Stitching这个概念很多新手会忽略。简单说就是在GND铺铜区域的边缘、走线换层的地方每隔一段距离打一个GND过孔把不同层的GND平面缝在一起确保回流电流有最短、最宽的垂直通道。AD20里有一个自动缝合过孔的功能在Tools菜单下选择Via Stitching - Add Stitching Vias可以把网格状分布的过孔快速加到选中的铺铜区域内。但自动缝合的问题在于它打出来的过孔太密既占空间又可能挡住布线通道。我一般不用全板自动缝合而是手动在最需要的地方补几个过孔板边沿每5到10mm一个、高频信号走线两侧各一对地过孔、电源芯片GND焊盘旁边一到两个过孔、BGA扇出区域内部均匀分布几个。3. 过孔布局GND过孔和电源过孔到底该怎么打过孔布局是GND铺铜之外另一个大坑。很多板子铜皮铺得没问题但过孔打得不讲究照样出问题。3.1 过孔孔径、载流能力与间距的匹配过孔孔径和载流能力直接相关。常规信号过孔用0.3mm钻孔/0.6mm焊盘这种过孔通过2A以上电流就明显发热了。如果是用于电源或GND的大电流路径我建议钻孔直径至少0.5mm焊盘直径至少0.9mm到1mm并且一个焊盘旁边最好同时放置两个甚至三个过孔并联分散电流。有人可能会问为什么不能把过孔直接打在焊盘上AD20里可以开Via In Pad也就是过孔打在贴片焊盘中央这在小封装芯片的GND焊盘上很常见能显著降低回路电感。但它的代价是焊接时焊锡可能流失到过孔里造成虚焊。简单的处理方式如果你不是做HDI板也没有树脂塞孔工艺尽量避免在普通信号焊盘上打过孔GND焊盘上的过孔也最好放在焊盘的边缘而不是正中央。3.2 GND缝合过孔的布局密度与回流路径回流路径是高速设计中常说的问题。信号从顶层走线进入某个过孔换到内层回流电流也必须在同一位置附近通过一个GND过孔换层否则回路面积极大环路电感飙升。我见过的快速判断方法信号换层过孔的旁边10到20mil以内至少要有一个GND过孔这样回流电流就能就近跳层。GND缝合过孔的密度取决于工作频率。对一般的MCU板、电机驱动板板边每5mm打一个地过孔已经够用如果板上有射频电路或者高频通信模块板边缝合过孔的距离要缩到2到3mm以内。实际经验里我倾向于沿板边稀疏均匀、敏感信号两侧加密的布置策略而不是全板铺满。3.3 电源过孔的冗余设计电源过孔指的是从电源层或者外接电源入口连接到器件电源引脚的过孔。常见错误是过孔数量不足或者孔径太小导致电源内阻偏高稳压芯片输出动态响应差。我设计电源过孔时会先估算一路电源的电流。比如5V给到多个传感器峰值电流可能有2A那从顶层电源入口到内层电源平面的过孔至少需要两个0.5mm钻孔的过孔并联单个0.5mm过孔在2A时温升大约是20度左右两个并联就安全很多。如果是大功率电机驱动48V/10A级别的母线我一般会用四个以上0.6mm钻孔的过孔同时在过孔旁边留出足够的铜皮散热面积。还有一个容易忽略的细节电源过孔和GND过孔之间的距离。如果靠得太近电源过孔周围的铜皮会被GND过孔的热焊盘切割导致载流截面积下降。一个判断标准电源过孔边缘到最近的GND过孔边缘至少保持0.5mm以上间距确保铜皮连续。4. 铺铜与EMC的恩怨电机、功率电路上方铺铜的坑铺铜不是越满越好这一点在做功率电路和模拟测量时尤其明显。热搜词里有一条电机上面铺铜会导致高EMC这正是我踩过的坑之一。4.1 为什么电机驱动电路上方铺铜反而EMC变差电机驱动的三个半桥输出节点是典型的dv/dt极高的节点电压变化率能达到几十V/ns。如果你在电机驱动走线和MOS管上方大面积铺GND铜皮就会在铜皮和走线之间形成寄生电容。高频噪声会通过这个寄生电容耦合到GND平面上把GND平面变成一个噪声源反而让整个板的EMC变差。所以做电机驱动板时功率管栅极驱动信号、三相输出走线的正上方和正下方都不建议铺完整的地铜皮。正确做法是在这些区域设置禁止铺铜区把铜皮剪开或者用Keepout线画出禁布区域让高频开关节点周围的GND铜皮断开。具体在AD20里怎么操作先在Keepout层画一个闭合的禁布区域覆盖住MOS管和三相输出走线的位置然后再执行铺铜AD20会自动绕开这个区域。注意Keepout区域要稍微比实际走线宽出1mm左右留足安全边界。4.2 罗氏线圈等模拟测量场景下的铺铜禁区热搜词里提到的PCB罗氏线圈设计也很有意思。罗氏线圈本身是利用磁场感应测量电流的器件对空间中杂散的电磁场非常敏感。这时候如果线圈周围有大面积GND铺铜铜皮上的涡流会产生额外的磁场干扰直接影响测量精度。遇到这类模拟测量电路我通常的做法是信号敏感区域完全不做铺铜或者只做很小的局部接地铜皮并且远离线圈绕组。GND铺铜只在外围形成一个屏蔽环通过过孔连接到地的同时保持和敏感电路之间有足够的空气间隙。4.3 高dv/dt节点铺铜的应对策略除了不铺铜这种消极策略还有一种积极的做法给高dv/dt节点加吸收网络从源头减少噪声。常见的做法是在MOS管的D-S之间、或者在桥臂输出端对地加RC吸收电路。这些吸收网络本身也需要一个干净的GND参考点所以不能一刀切地全板不铺铜。我的建议是高dv/dt节点的正下方保留一小块独立的安静地铜皮只通过单点连接到主GND平面这样既给吸收网络提供参考地又避免噪声灌入整个地平面。5. AD20实际操作中的常见报错与细节坑最后这部分是我日常用AD20处理铺铜和过孔时最常遇到的软件操作层面的问题。5.1 UNKNOWN PIN报错的成因与处理AD20在使用过程中经常会在移动器件或者更新PCB时弹出Unknown Pin之类的错误。这个问题的根源一般是原理图和PCB封装库之间引脚编号不一致。比如你在Sch里放置的是一个三脚器件但PCB封装画成了两脚或者封装里引脚编号是A/K而原理图里是1/2。处理Unknown Pin我一般分两步。第一步在原理图里重新编译工程Compile看Messages面板里有没有封装相关的警告确认是哪个器件报错。第二步双击报错器件在Properties面板里重新选择正确的PCB封装或者在PCB Library里修改引脚编号保存后回到原理图更新到PCB。这个错误和铺铜、过孔没有直接关系但它会导致你更新PCB时部分器件的位置、焊盘网络错乱进而影响后续的GND铺铜和过孔连接。所以建议动手铺铜之前先确认整个工程没有任何Unknown Pin报错。5.2 铺铜隐藏/显示与重新铺铜的快捷键操作AD20里铺铜默认是填充显示状态当你编辑底下的走线和过孔时铜皮常常挡住视线。很多新手在这里会卡住不知道怎么把铜皮临时藏起来。我的日常快捷键是隐藏顶底层铺铜先按L打开View Configuration在Show/Hide选项卡里把Polygons那一层临时勾选为Hidden或者直接按快捷键CtrlShiftP在弹出的铺铜操作菜单里选Hide All Polygons。显示全部铺铜并按最新规则重新铺T - G - A也就是Tools - Polygon Pour - Repour All。只想重新铺一块铜皮选中铺铜区域后按T - G - R单独重铺。这里有个容易踩的坑你对铺铜区域做了编辑比如拉伸了边界或者改了网络返回铺铜状态时要手动重铺一次不然板上显示的还是旧的铜皮状态。AD20会把铺铜修改标记为Polygon Pour Modified我习惯在投板前执行一次全板Repour再执行一次DRC确保所有铜皮都是最终状态。5.3 位号镜像与元器件库封装绘制中的隐患位号镜像是AD20画封装和调整丝印时经常用到的功能。位号Designator如果在板上镜像了丝印文字方向就反了生产出来看不清器件编号返修时非常痛苦。常见的操作坑是在PCB Library绘制封装时位号的位置是正确的但更新到PCB后因为层选择错误被镜像了。铺铜场景下位号镜像导致的实际问题主要是当你手动修改丝印位置时如果恰好把位号移动到了铺铜区域上方不会引起电气问题但出Gerber时如果光绘层设置不对丝印会被铺铜盖住或者变成不完整。所以我在投板前都会做最后一遍检查在3D视图里翻转板子看丝印方向确保没有镜像位号。5.4 导出Gerber检查铺铜与过孔避免光绘文件缺层AD20导出Gerber时最容易出问题的就是层设置。铺铜和过孔分别在不同的层上面铺铜在Top Layer/Bottom Layer过孔钻孔数据在Drill Drawing层过孔焊盘在Multi-Layer。如果导出Gerber时漏选了Multi-Layer打样回来的板子上过孔就没有焊盘导致过孔和上下层铺铜之间连接不良。导出Gerber前我一般会确认三层必选Top Layer和Bottom Layer包含对应层的走线和铺铜Multi-Layer包含过孔焊盘、通孔器件的焊盘Drill Drawing包含过孔钻孔尺寸和数量信息另外AD20导出Gerber时有个选项是Plot Lines如果你不小心把Keepout层的线条也导进去了工厂会依照Keepout把板框切掉一部分严重时整个板子都废了。建议Keepout层不要输出到光绘除非你是用Keepout来画板框的。最后说点体会铺铜和过孔布局这件事做多了就会发现它靠的其实不是某个软件里单个神奇功能而是一整套“规则检查经验”的组合拳。我刚接触AD20那会儿也觉得铺铜嘛铺满就完事后来交了一次板子回来发现底层铜皮有一大块死铜导致一个传感器地线接触不良客户反馈数据跳变。从那以后我给自己定了一个死规矩每次投板前至少花半小时按顺序检查网络名、间距规则、死铜、过孔密度、Gerber层设置这五件事。这套检查流程说复杂不复杂但确实能让你少打几次废板。AD20的铺铜和过孔功能本身并不难学真正的提升发生在你理解了为什么这么设置之后。建议你现在就打开一个旧工程按我上面的思路把铺铜规则过一遍把死铜、过孔缝合、禁止铺铜区这些点重新审视一遍很可能你就会发现原来自己的板子一直存在一些看不见的隐患。