ARTICLE DETAIL

资讯详情

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

Altium Designer死铜清理全攻略:从判定逻辑到实战排查

Altium Designer死铜清理全攻略:从判定逻辑到实战排查 Altium Designer里处理铺铜Copper Pour时的死铜Dead Copper是我这几年做PCB Layout时见过最会“装死”的一类对象。你明明在属性里勾选了Remove Dead Copper也执行了Repour All但打开Gerber一看内层电源层边缘还是孤零零立着几块铜。一开始我以为是软件坏了后来发现问题往往出在你对AD“生死观”的理解上——它对“死”的判定、对重铺时机的把握、对连接方式的取舍都有自己的一套逻辑。这篇就围绕“死铜为什么总清除不干净”把判定机制、操作误区、规则陷阱和一次完整排查过程讲清楚适合正在被铺铜问题折磨的PCB工程师也适合刚学Altium Designer、还不熟悉铺铜设置的新手朋友。1. 死铜为什么会被“认”死AD的判定逻辑1.1 铺铜不是手画的是“倒进容器里的水”很多刚从旧版本走过来的工程师可能还习惯把铺铜理解成用多边形工具画一块实心铜皮。实际上Copper Pour是一个参数化对象你定义好边界、所在层、网络、间距规则然后AD根据这些条件实时“填”出铜皮。填出来的结果和边界内部的对象焊盘、过孔、走线、Keepout有关还和当前所有电气规则Clearance、Polygon Connect Style、Board Outline等有关。这种参数化带来的好处是修改规则后重铺就能自动适配但也带来一个副作用它不会在你改完参数后立刻自动更新必须手动触发重铺Repour。我观察过不少朋友在铺铜上遇到“死铜删不掉”的第一个卡点其实就是改了参数但没重铺。放置铺铜的快捷键是P G N放置后在Properties面板里能看到网络、层、填充模式、Remove Dead Copper等一堆选项但那只是定义了“水要倒进什么容器”真正的成型动作是后面的Repour。类比一下铺铜就像把水倒进一个由规则围起来的容器里焊盘、过孔、Keepout是容器里的隔板。死铜就是被这些隔板切出去、失去了与主水域连通的小水洼。1.2 “死”的判定标准是电气连通性AD在完成铺铜计算后会做一次连通性分析。它会找出当前铺铜区域内、与铺铜属性中所设网络没有电气连接的所有环形铜皮并把它们标记为死铜。这里的“没有电气连接”是重点——哪怕只有一条极细的铜丝把孤岛和主铜皮连起来AD也会认为这块铜是“活着”的于是它不会出现在死铜列表里。这也就解释了一个常见现象你总觉得死铜清不干净实际上是有些明明看着像孤岛的铜皮其实通过某个不易察觉的细脖子和主铜皮连着。AD的判定只要“电气上连通”不会去判断这条铜丝能不能稳定制造、符不符合工艺要求。所以死铜清除不干净的真相之一恰恰是AD认为它不该被清除。死铜不能随它去原因不是强迫症。孤岛铜皮在射频和高速电路里可能成为无意中的天线产生EMI问题在制造端浮铜会导致电镀不均匀有些板厂甚至会主动发邮件问你“这些小块铜皮我帮你删掉还是保留”。我见过一块板子因为内层死铜太多在3C认证预测试里高频辐射超标最后查出来是几个电源层死铜在“广播噪声”。所以死铜清理不只是美观问题直接关系产品能不能过认证。1.3 No Net状态的铺铜没有“生死”之分还有个容易忽略的点如果把铺铜的网络设成No Net无网络AD在做连通性分析时根本没有比较基准因为整个铺铜区域自己就是孤岛。我在一些初学者板子上见过他们为了“先铺一片看看效果”把网络留空然后提出“为什么这里一大片铜皮删不掉”——其实那不是死铜而是No Net铜皮AD根本不会对它执行死铜清除逻辑。正确的做法是一开始就给铺铜指定正确的网络比如GND而不是图方便留空。如果一定要用No Net那就要接受它连死铜清除也不会帮忙处理。另外No Net铜皮在DRC里也不会报告未连接问题这会让很多电气错误被隐藏掉。所以我在公司里带新人时第一条规定就是铺铜必须设置网络哪怕最后改也不要留No Net过夜。2. 操作层面的坑勾了没重铺、网络没设对、规则没刷新2.1 Remove Dead Copper这个开关真想让它生效没那么简单AD的铺铜属性面板里有个“Remove Dead Copper”移除死铜选项位置在Net设置下方。很多人以为勾上它就万事大吉实际上它只在重铺Repour的时候才会被读取。换句话说你一定先勾选该选项再执行重铺死铜才会被清理如果勾选后没有重铺那屏幕上显示的依然还是旧铺铜结果。我见过最典型的一个案例同事把整板铺铜的Remove Dead Copper都勾上了却没执行Repour All然后问我“AD是不是有bug”。实际上操作顺序反了勾上开关不等于立即触发删除它只是一个“允许删除”的授权删除动作本身必须由Repour来完成。具体来说在较新的AD版本里选择铺铜后再回到Properties面板Remove Dead Copper复选框位于Net和Layer附近的区域。如果只想快速清理单个铺铜可以勾选后选中该铺铜按右键执行Polygon Actions → Repour Polygon或者用菜单Tools → Polygon Pour → Repour Selected。实测下来单块重铺比全板重铺快不少适合只改了一小块区域时使用。2.2 Repour All和Repour Selected别再搞混了在Altium Designer中重铺铜的入口比较集中操作菜单路径快捷键全板重铺所有铜皮Tools → Polygon Pour → Repour AllT G A只重铺选中铜皮Tools → Polygon Pour → Repour SelectedT G S部分版本不同隐藏/显示铺铜View Configuration → Polygon显示开关CtrlD后设置或ShiftP刷新视图View → RefreshEnd我的建议是一旦涉及死铜清理优先做全板Repour All因为死铜的判定是基于全板连通性的单块重铺有时因为相邻铺铜还没更新会留下意外的空白或碎片。多次实测下来Repour All之后如果死铜还是没消失再单独选中可疑区域Repour Selected两步配合基本能把绝大多数“显得没清干净”的问题解决掉。2.3 改间距规则后没重铺旧规则残留被当成死铜这类情况在改版时特别常见你在Rule Manager里把某个网络的Clearance从0.2mm改成0.3mm或者调整了某条网络的线宽然后直接去看铜皮发现边缘出现了很多细小的“毛刺”或缺口。这些不是死铜而是旧铺铜结果没有跟着新规则刷新。AD不会在规则变化后自动重算所有铺铜必须手动Repour。尤其是当你动过Clearance、Polygon Connect Style这些和铺铜强相关的规则时一定要记着把相关铺铜区域重铺一遍。有一个小技巧改完规则后随便选中一块铺铜打开Properties把Remove Dead Copper取消勾选再重新勾选再执行Repour All。这个动作能强制AD把这块铺铜当“新铺铜”重新算一遍避免旧运算残留。3. 被规则和对象“设计”出来的死铜真正的潜藏陷阱3.1 间距规则里的细丝AD说它活着制造端不认这是我最想强调的一个点。之前提到AD的死铜判定只看电气连通性那么问题来了一条宽0.1mm、长5mm的铜丝在电气角度确实把两个大铜皮连在一起AD不会认为它们是死铜。但在制造端这样的细脖子在大面积铜皮中间异常脆弱制板过程中很容易被蚀刻断掉结果就是你拿到实物板之后发现这块铜怎么变成孤岛了。所以检查死铜时不能只看AD有没有清掉还要人工判断是否有“细脖子”。我一般会把铜皮的显示切到半透明CtrlD然后在View Configuration里把Polygon的透明度调到70%左右仔细观察大铜皮之间有没有不符合制造工艺的窄连接带。板厂常规工艺一般要求最小铜皮宽度不低于0.2mm如果细脖子低于这个值就算AD认它活着我也不会让它活着——我会手动加一块小铜皮把它加宽或者在Rule里调大间距规则让它重铺后干脆断开再让AD清除掉。3.2 Thermal Relief热焊盘制造死铜的高发区域再看一个跟规则设计直接相关的场景铺铜与器件焊盘、过孔的连接方式里有个Polygon Connect Style。当连接方式设为Thermal Relief热焊盘时铜皮会通过几根细辐条Spoke与焊盘连接目的是方便焊接和散热控制。但在高密度板子上这些Spoke经常会被其他规则“误伤”。连接方式主要有三种区别我整理在下面连接方式铜皮与焊盘/过孔的连接适用场景死铜风险Solid实心连接整圈连接铜皮完全贴住焊盘电源层、地层大面积铺铜低Thermal Relief热焊盘通过4根细辐条连接插件器件过波峰焊、需要控制散热高No Connect不连接完全不连接焊盘周围自动挖空特定隔离要求中我遇到过的情况是这样一个功率MOS管的散热焊盘thermal pad周围被一圈地过孔包围每个过孔与该层铜皮的连接方式都是Thermal Relief。由于过孔和散热焊盘之间、过孔和过孔之间的间距规则值设置得偏小重铺后部分Spoke被割断散热焊盘周围的一大圈铜皮失去了与主GND铜皮的连接瞬间变成了环状死铜。AD试图清除它们但因为碎片太小、边缘太复杂Repour后依然能看得到一些残留的小块。处理方式通常有两种把该层焊盘/过孔的Polygon Connect Style从Thermal Relief改为Solid再Repour。或者保留Thermal Relief但把Clearance规则调大确保Spoke有足够宽度连接主铜皮。具体怎么选取决于波峰焊需求和你的散热策略。我个人的经验是数字电路里的电源层、地层铺铜绝大多数情况直接用Solid连接更稳性能问题反而少只有对过波峰焊的插件器件才需要认真考虑Thermal Relief。3.3 Keepout、板框和开窗区域的“切口”把铜皮切成碎块Keepout区域会把铺铜“挖空”。如果Keepout边界正好设计在一些敏感的拐角处挖完之后剩下的铜皮很容易被切成一个个小孤岛。我见过一块板的设计文件在板子角落放了一个Keepout形状复杂的结构框铺铜之后整个角落碎成七八块微型死铜。当时也是怎么Repour都清不干净后来把Keepout边界修成规整的矩形问题立刻消失。和“铺铜开窗”相关的还有一种场景为了散热或者天线净空有些人会在铜皮上开一排槽孔Board Cutout或Slot开槽区域的边缘会产生不规则的锯齿形边界边角处的铜皮也可能变成孤岛。开窗本身不会直接生成死铜但开窗/开槽的边界越复杂越容易在角落留下微型碎片。建议在满足设计需求的前提下尽量把开窗区域做成矩形或规则多边形不要随手画N个螺丝孔状的Keepout堆在一起。工程师里有个说法复杂的Keepout边界就像用剪刀剪纸剪出来的纸屑越多你后面收拾的时间就越长。3.4 同层多块重叠铺铜优先级扣空后的残留同一层上如果画了两块重叠的铺铜AD会按铺铜优先级Polygon Priority来处理优先级高的铺铜保留优先级低的铺铜在与高优先级铺铜重叠的区域被扣空。扣空操作是在多边形运算层面完成的运算边界一旦出现极小角度、极窄区域就有可能在两个铺铜交界处留下细碎铜皮。解决重叠铺铜的推荐方案是尽量别让同层铺铜重叠。如果一定要做电源分割可以使用内层Internal Plane的Split Plane或者在同一层把两个铺铜区域在几何上严格分开不要留重叠边界。我见过有人在信号层上画了三块彼此重叠的GND铜皮结果交叠处每次重铺都会冒出新死铜到最后只能全部删除重画白白浪费半天时间。4. 一次真实排查四层板电源层多出来的13块死铜4.1 现象复现Repour之后的“幽灵铜皮”背景是一块四层板第二层本来是完整GND平面后来因改版需要把第二层改成电源分割层被切成了VCC、3V3、GND三块。改完规则后我执行了Repour All但查图时发现整个层上依然散落着13处小铜皮。第一感觉是AD出现了死铜清除bug后来通过一步步排查发现真正的原因在“规则 热焊盘连接方式”的叠加。排查开始前我先用PCB面板过滤功能把所有铺铜列出来确认这13处确实是被识别成Polygon对象的铜皮而不是普通的线段残留。然后又用PCB Filter输入IsPolygonTrue批量选中所有铺铜直接在Properties面板里查看它们各自的网络和Remove Dead Copper状态。初步确认所有主铺铜的Remove Dead Copper都已勾选GND网络也没设错这才把方向转向“为什么这些铜皮会被判定为活着或没被清掉”。4.2 逐层拆解从怀疑软件bug到锁定连接规则排查过程的第1步先确认不是显示缓存问题。我在View ConfigurationCtrlD里把Polygon Layers的透明度调高又在单层模式下ShiftS逐个区域看了一遍。有些“看起来是死铜”的东西其实只是旧显示缓存按End刷新之后就消失了。结果排除缓存问题后还剩13处是真实存在的孤立铜皮。第2步查死铜的网络归属。逐个点击这些孤岛Properties里显示Net仍然写着GND。这很关键既然网络是GND但物理上和主GND铜皮断开那就说明是某种对象切断了连接而不是网络设置错误。第3步框选孤岛周围区域放大到局部。发现几乎所有孤岛都出现在功率MOS散热焊盘附近。散热焊盘四周有一圈地过孔而这圈过孔与散热焊盘的距离很密导致过孔之间形成的铜皮边界相互挤占。规则里过孔和散热焊盘都设置了Thermal Relief连接方式跑出来的Spoke宽度非常有限在最小间距规则约束下部分Spoke被完全裁掉。第4步验证方案。我先把散热焊盘所在的Polygon Connect Style改成Solid连接对附近那片铺铜执行Repour Selected立刻看到13处孤岛消失了9处。剩下的4处分布在几个靠近板边的开槽位置属于开槽边界切出来的碎片。我调整了开槽的几何边界再Repour All全部清干净。这次排错前后花了大概一个下午。如果一开始不查连接方式而是盲目地反复Repour大概率一整天都找不到根因。5. 暴力清除的手段与长期预防哪些做法值得用5.1 三板斧从强制重算到删除重画如果确认不是显示缓存、也调整过规则后死铜依然顽固我一般会用三招按顺序尝试。第一招强制重算选中铺铜在Properties里先取消勾选Remove Dead Copper再重新勾上然后T G A全板重铺。这能强制AD对这块铺铜做一次完整的重新建模。这个办法对大多数“参数没刷新”引起的残留有效。第二招试探网络归属把铺铜网络暂时改成No Net再改回原来的网络再执行Repour All。改网络会让AD抛弃原来的连通性分析结果重新计算一次。相当于让软件“失忆再恢复”。这个招数看起来有点土但对新版AD偶尔出现的铺铜引擎状态错乱很管用。第三招删除重画选中所有异常铺铜按Delete删除然后用快捷键P G N重新画一块重新设置网络、间距、Remove Dead Copper再铺一次。虽然麻烦但这是对付新引擎偶发异常最彻底的办法。注意千万不要用Explode Polygon把铺铜拆成普通线条这会彻底破坏铺铜的参数化属性。之后你没法再通过规则重铺修改板子时只能手工去删线、画线隐患非常大。5.2 快速定位死铜面板、透明度和选择过滤排查死铜时不要一个个去点。AD的PCB面板可以过滤出所有Polygons对象具体操作是右下角面板按钮 → PCB → 在层级里选择Polygons能在面板里看到一个铺铜列表逐一选择可以快速定位每一块铜皮。另外可以配合View Configuration把Polygon透明度调到半透明查看铜皮下面的走线和焊盘分布。这一步很关键因为死铜往往被其他层的对象遮住单层模式ShiftS也可以用来隔开其它层。如果想用选择过滤器可以在PCB Filter面板输入IsPolygonTrue直接选中所有铺铜对象再配合Properties面板批量检查参数。隐藏铺铜后再单独打开某一层也是判断铜皮是否为孤岛的常用办法——把其他铜皮全藏起来死铜就藏不住了。5.3 一个土办法清理缓存和重启工程往往能“治好”假死铜AD偶尔会出现铺铜显示异常Repour All之后实际数据已经更新但屏幕仍显示旧的死铜。这种时候不要急着改设计先按End刷新或者保存工程后重启AD再打开。如果重启还不行可以清理一下AD的缓存。不同版本路径略有不同一般可以在Preferences → Data Management → Cache里找到缓存目录手动删除临时文件前一定先备份工程。这类“土办法”我实测对大工程尤其有效能解决大概一半“死铜删不掉”的伪现象。有一次我处理一块16层服务器主板整板重铺后还有几百个“死铜”的DRC报错但删缓存重启后报错瞬间清零当时办公室里几个人都松了口气。5.4 从设计习惯上减少死铜比事后清理更省事最后说点预防。与其纠结死铜清不干净不如在设计阶段减少生成死铜的可能性。板框画规范铺铜边界尽量沿板框内缩不要让铜皮漫到板框外再靠AD去裁剪。建议在规则里设置板框到铺铜的间距或者直接在铺铜的边界多边形上多花一点精力。分割层用正规手段内层电源分割用Split Plane一次性完成不要在信号层手动画多块重叠铺铜。Split Plane在生成时就会考虑板框和分割线死铜问题要少得多。焊盘连接方式大面积电源/地平面优先用Solid少用Thermal Relief尤其在高密度板型上。Thermal Relief是死铜产生的“主力”没有特殊工艺需求就别用它。开槽和Keepout简化形状越规则越不容易把铜皮切成孤立碎片。最后出图前做一次全板检查用OutJob输出Gerber和渲染图再用支持AD格式的查看器做最终确认和直接看板子一样直观能避免不少返工。尤其是发给板厂前自己先在Gerber Viewer里把每一层翻一遍比收到板厂“这里有孤铜你确认一下”的邮件要体面得多。这些年处理死铜问题的过程中我养成了一个固定的排查顺序先刷显示再查网络归属再检查Thermal Relief和Clearance最后才考虑删铜重铺。按照这个顺序绝大多数“死铜清不干净”其实都能在半小时内定位到根因。如果你现在正对着Altium Designer里那块删不掉的铜皮发火不妨从“AD到底把什么当作死铜”这个角度重新想一遍大概率会有豁然开朗的感觉。
返回列表