ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

AD20过孔盖油设置全解析:规则、实操与板厂沟通

AD20过孔盖油设置全解析:规则、实操与板厂沟通 1. 为什么过孔盖油这件事值得单独拿出来讲画PCB的人都有一个共识原理图连对了、布局布线走通了不代表板子回来就能用。真正让硬件工程师半夜睡不着觉的往往是出Gerber这个最后环节。尤其是过孔盖油这个设置看起来只是勾一个选项的事但每年都有大量工程师因为这个小细节收到一批焊盘上莫名其妙被盖上绿油的板子或者过孔开窗导致短路、氧化、虚焊。我做了十多年硬件经手的板子从两层板到十几层HDI都有踩过最多的坑不是布线而是出Gerber时的规则配置。AD20作为目前国内使用最广的PCB设计工具之一它的过孔盖油逻辑和AD09、AD17有细微差别和AD21、AD24的默认行为也不完全一样。很多教程只告诉你“勾选Tented”但没告诉你为什么勾了之后焊盘也被盖了也没告诉你不同板厂对Gerber文件的解析方式差异有多大。这篇内容就是把我这些年积累的过孔盖油设置经验完整拆开从规则原理、参数含义、实操步骤到板厂沟通全部讲透。不管你是刚学AD20的新手还是已经画过几十块板的老手只要你的板子上有过孔这篇内容都值得花时间看完。尤其是那些遇到过“过孔盖油后焊盘也被盖住”“过孔没盖油导致短路”“板厂说文件有问题”的朋友这里面大概率有你要的答案。2. 过孔盖油的核心逻辑与常见误区拆解2.1 盖油与开窗的本质区别过孔盖油英文叫Tented Via意思是把过孔的表面用阻焊油墨覆盖住不让铜环裸露。与之对应的是开窗也就是Via Exposed或者Non-Tented过孔铜环裸露在外可以被焊锡浸润。这两种处理方式没有绝对的好坏取决于你的板子用在什么场景。盖油的好处是防止过孔氧化、防止锡珠通过过孔漏到背面、防止密集过孔之间短路。开窗的好处是方便调试时用探针测量、方便手工补焊、在某些高频场景下可以降低过孔阻抗。但问题在于AD20默认的过孔处理方式并不是统一的。它在不同层、不同规则优先级下的表现不一样。如果你只是简单地在Pad属性里勾一个选项很可能出现一部分过孔盖了、一部分没盖或者焊盘被误盖的情况。2.2 焊盘误盖的根源在哪里焊盘被误盖根本原因是AD20的阻焊层生成逻辑它会把所有阻焊开窗区域之外的地方全部铺上阻焊油。而过孔盖油的实现方式是通过设置过孔的阻焊开窗为0也就是不产生开窗。但如果你的规则设置不当比如把过孔和焊盘放在了同一个规则条件下或者阻焊层扩展值设置错误就会导致焊盘的开窗也被吞掉。具体来说AD20里控制阻焊开窗的核心参数是Solder Mask Expansion也就是阻焊层扩展。这个值决定了阻焊开窗比焊盘大多少。如果这个值设置成0或者负数焊盘的开窗就会消失阻焊油就会盖到焊盘上。很多人在设置过孔盖油时误操作了这个参数导致焊盘跟着遭殃。另一个常见原因是规则优先级混乱。AD20的Design Rules里阻焊规则可以针对All、针对特定网络、针对特定封装。如果你给过孔单独建了一条规则但这条规则的优先级低于全局规则那么过孔盖油的设置就不会生效。反过来如果过孔规则的优先级过高又可能影响到焊盘。2.3 不同板厂对Gerber的解析差异这一点是很多人忽略的。你发给板厂的Gerber文件板厂并不是直接拿去生产而是要先经过CAM工程师处理。不同的板厂使用的CAM软件不同有的用Genesis 2000有的用Ucam有的用CAM350。这些软件对Gerber里阻焊层的解析方式有细微差别。比如有些板厂会把Gerber里的阻焊层理解为“负片”也就是有图形的地方是开窗没图形的地方是盖油。另一些板厂则理解为“正片”有图形的地方是盖油。虽然主流板厂都遵循负片逻辑但如果你在AD20里导出的Gerber层设置错了板厂CAM工程师又没仔细检查做出来的板子就会完全相反。我遇到过最离谱的一次是过孔盖油的设置完全正确但板厂把阻焊层和线路层搞反了结果整板焊盘全部盖油过孔反而开窗。所以出完Gerber之后一定要自己用CAM软件预览一遍或者至少让板厂发一份CAM预览图确认。3. AD20过孔盖油规则设置的完整实操流程3.1 前期准备确认过孔属性与层设置在开始设置规则之前先要确认你的过孔属性是否正确。打开PCB文件双击任意一个过孔查看它的属性。重点看两个地方一是过孔的直径和孔径二是过孔是否勾选了Tented选项。在AD20里过孔的Tented选项在Properties面板里分为Top和Bottom两个勾选框。如果你勾了Top那么过孔在顶层就会被盖油勾了Bottom底层盖油。两个都勾双面盖油。但这里有个坑这个勾选框只对当前选中的过孔生效如果你有几百个过孔一个个勾是不现实的。所以正确做法是先确认你的过孔是否使用了统一的过孔类型。在AD20里过孔类型是在Pad Via Library里管理的。你可以通过Design - Pad Via Library打开过孔库查看当前板子用到的过孔类型。如果过孔类型统一那么后续的规则设置就可以批量生效。另外还要确认你的层设置是否正确。在Design - Layer Stack Manager里确认阻焊层Solder Mask和助焊层Paste Mask都已经启用。有些新手在两层板设计时不小心把阻焊层关掉了导致出Gerber时根本没有阻焊层输出板厂自然无法处理盖油。3.2 规则设置阻焊层扩展与过孔盖油的联动这是整个流程的核心步骤。打开Design - Rules找到Manufacturing - Solder Mask Expansion。这里你会看到一条默认规则通常叫All它的扩展值默认是4mil或者0.1mm。这个值的意思是阻焊开窗比焊盘每边大4mil。比如你的焊盘是10mil宽那么阻焊开窗就是18mil宽。这样做的目的是保证焊盘边缘也能被焊锡浸润避免阻焊油盖到焊盘上。现在关键来了如果你想让过孔盖油就需要让过孔的阻焊开窗为0也就是不扩展。但你不能直接改全局规则因为那样焊盘也会跟着变成0扩展导致焊盘被盖油。正确做法是新建一条规则专门针对过孔。在Solder Mask Expansion上右键选择New Rule命名为Via_Tented。然后在Where The First Object Matches里选择Custom Query输入IsVia。这样这条规则就只对过孔生效。接下来设置这条规则的扩展值。如果你想让过孔完全盖油就把扩展值设为0。但这里有个细节设为0并不意味着阻焊开窗完全消失而是开窗大小等于过孔焊盘大小。如果板厂的CAM工程师处理时稍微偏移一点还是可能露出铜环。所以更稳妥的做法是设为负值比如-2mil或者-0.05mm让开窗比过孔焊盘小一圈确保阻焊油完全覆盖。但负值也不能太大否则可能导致阻焊油侵入过孔孔壁影响孔金属化。一般来说-2mil到-4mil是比较安全的范围。我通常用-3mil实测下来大部分板厂都能处理得很好。设置完扩展值后还要检查这条规则的优先级。在Rules对话框里规则是从上到下按优先级执行的。Via_Tented规则必须排在All规则上面否则不会生效。你可以用Move Up按钮调整顺序。3.3 焊盘保护确保焊盘不被误盖的检查清单设置完过孔规则后必须回头检查焊盘是否安全。有几个地方需要逐一确认第一确认全局Solder Mask Expansion规则的值是否正确。通常4mil是安全的但如果你用的是0201或者更小的封装可能需要减小到2mil甚至1mil。因为小焊盘的阻焊桥很窄扩展太大会导致阻焊桥消失焊盘连在一起。第二检查是否有针对特定封装的规则覆盖了全局规则。比如你之前可能给某个BGA封装单独建过阻焊规则那条规则的优先级可能高于全局规则导致BGA焊盘的开窗异常。第三检查助焊层Paste Mask的设置。助焊层和阻焊层是两回事助焊层是钢网开孔阻焊层是绿油开窗。有些人会把两者搞混改了助焊层以为改了阻焊层。在AD20里助焊层的规则在Paste Mask Expansion里默认值通常是0。第四用3D视图或者阻焊层预览功能检查。在AD20里你可以按L键打开View Configuration把Solder Mask层打开然后切换到3D视图就能直观看到哪些地方盖油、哪些地方开窗。这是最可靠的检查方式比看2D图准确得多。3.4 出Gerber时的关键参数配置规则设置好之后就可以出Gerber了。在File - Fabrication Outputs - Gerber Files里有几个参数必须注意在Layers标签页确保Solder Mask Top和Solder Mask Bottom都被勾选。如果你只勾了Top底层过孔就不会盖油。另外Mechanical Layer通常不需要输出除非板厂特别要求。在Drill Drawing标签页选择Drill Drawing或者NC Drill取决于板厂的要求。大部分板厂现在都要求NC Drill文件也就是 Excellon格式的钻孔文件。在Advanced标签页有几个参数影响过孔盖油的效果。一个是Plot Solder Mask必须勾选。另一个是Use Software Arcs建议勾选避免圆弧被离散成线段。还有一个是Embedded Apertures建议勾选RS274X格式这是目前最通用的Gerber格式。出完Gerber后一定要用CAM软件预览。我常用的是CAM350或者免费的Gerber Viewer比如KiCad自带的Gerber Viewer也可以。重点看阻焊层过孔位置应该是暗的表示盖油焊盘位置应该是亮的表示开窗。如果发现过孔位置是亮的说明盖油没生效如果焊盘位置是暗的说明焊盘被误盖了。4. 常见问题排查与板厂沟通技巧4.1 过孔盖油不生效的排查思路如果你发现过孔盖油没生效按以下顺序排查先检查规则优先级。打开Rules对话框确认Via_Tented规则排在All规则上面。如果顺序不对用Move Up调整。再检查Custom Query的语法。IsVia这个查询语句在AD20里是有效的但如果你写成了Is Via或者isvia可能不被识别。正确的写法就是IsVia大小写不敏感但不能有空格。然后检查过孔属性。双击过孔确认Tented选项是否勾选。如果你在规则里设置了盖油但过孔属性里没勾Tented有些版本的AD20会以属性为准。所以最好两边都设置。最后检查Gerber输出设置。在Gerber Setup里确认Solder Mask层被正确输出并且没有勾选Mirror或者Negative选项。有些新手不小心勾了Negative导致阻焊层变成负片效果完全相反。4.2 焊盘被误盖的紧急补救方法如果板子已经做回来了发现焊盘被盖油先别急着报废。有几种补救方法如果是少量焊盘可以用手术刀轻轻刮开阻焊油。但这种方法只适用于大焊盘0201这种小焊盘基本刮不了容易伤到铜箔。如果是整板焊盘都被盖那基本只能重新做板。但在重新做之前一定要找到根本原因否则下一批还是同样的问题。如果是过孔盖油导致焊盘边缘被轻微覆盖不影响焊接那可以先用着。但如果是BGA或者QFN这种底部焊盘盖油会导致虚焊必须重新处理。我个人的经验是出Gerber之前一定要用3D视图检查一遍。AD20的3D视图可以直观显示阻焊层比任何2D检查都可靠。花五分钟检查能省下两周的返工时间。4.3 与板厂CAM工程师的高效沟通话术和板厂沟通时不要只说“过孔盖油”因为不同板厂对这个词的理解可能不同。更专业的说法是“过孔阻焊开窗为0焊盘阻焊开窗正常。”如果你有特殊要求比如过孔单面盖油、另一面开窗一定要在Gerber文件里明确体现并且在邮件里用文字说明。最好附上一张截图标出哪些过孔要盖油、哪些要开窗。另外建议在Gerber文件里加一个Readme层用文字标注你的要求。虽然板厂CAM工程师不一定看但万一有问题这就是证据。还有一个技巧让板厂发CAM预览图确认。大部分板厂在收到Gerber后会做一份CAM预览图你可以要求他们发给你确认后再生产。这一步能拦截90%以上的问题。4.4 常见问题速查表问题现象可能原因排查方法解决方案过孔盖油不生效规则优先级错误检查Rules顺序将Via规则移到All上面焊盘被误盖全局阻焊扩展为0检查Solder Mask Expansion恢复全局扩展为4mil部分过孔盖油部分不盖过孔属性不统一检查Pad Via Library统一过孔类型板厂反馈文件有问题Gerber格式不兼容检查RS274X设置勾选Embedded Apertures过孔开窗导致短路盖油规则未生效3D视图检查重新设置规则并出Gerber小焊盘阻焊桥消失扩展值过大检查0201封装减小扩展值到1-2mil5. 进阶技巧特殊场景下的过孔处理策略5.1 高频板过孔盖油的特殊考量高频板对过孔的阻抗和寄生电容比较敏感。盖油会改变过孔的介电常数从而影响阻抗。如果你的板子有50欧姆或者100欧姆的差分阻抗要求过孔盖油可能会让阻抗偏离设计值。这种情况下有两种处理方式一是过孔不盖油保持铜环裸露但这样会导致氧化和焊接问题二是盖油但在仿真时把盖油的介电常数考虑进去。我通常建议高频板过孔盖油因为氧化带来的损耗比介电常数变化更严重。但如果你做的是毫米波频段那最好还是开窗并且用金手指或者沉金处理。5.2 密集过孔区域的盖油与散热平衡有些板子在BGA区域有大量过孔间距可能只有0.2mm甚至更小。这种密集过孔如果全部盖油阻焊油可能会连成一片导致过孔之间的阻焊桥消失。虽然过孔之间不需要阻焊桥但阻焊油连成一片会影响散热。我的做法是在密集过孔区域适当保留一些过孔开窗作为散热通道。具体比例看你的功耗一般每10个过孔开1-2个窗就够了。开窗的过孔可以兼做测试点一举两得。5.3 过孔盖油与测试点的兼容处理如果你需要把过孔当测试点用那过孔就不能盖油。但测试点通常需要比过孔更大的焊盘所以更好的做法是单独放测试点焊盘而不是用过孔代替。如果你非要用过孔当测试点那就在规则里给这些过孔单独建一条规则设置阻焊开窗为正常值。然后在Custom Query里用网络名或者坐标范围来限定这些过孔。这种方法比较麻烦但能精确控制。5.4 AD20与AD21/AD24在过孔盖油上的差异AD20的过孔盖油逻辑和AD21、AD24有细微差别。AD21之后Altium引入了更智能的阻焊层管理过孔盖油的设置更加自动化。但AD20的规则优先级逻辑更直观不容易出错。如果你从AD20升级到AD24要注意迁移规则时可能会丢失优先级设置。我建议升级后重新检查一遍Rules确保Via_Tented规则还在并且优先级正确。另外AD24的Gerber输出界面和AD20不同Solder Mask的选项位置变了。如果你习惯了AD20第一次用AD24可能会找不到。在AD24里Solder Mask的设置移到了Layer Stack Manager里需要先启用阻焊层然后在Gerber Setup里选择。6. 我个人在实际操作中的几点体会过孔盖油这件事说大不大说小不小。但每次出Gerber前我都会花十分钟做三件事第一打开3D视图把阻焊层显示出来从头到尾扫一遍第二检查Rules里Via_Tented规则的优先级和扩展值第三用CAM软件预览Gerber确认过孔和焊盘的开窗状态。这三件事看起来简单但能拦住绝大多数问题。我见过太多工程师原理图检查了三遍布线优化了五遍最后栽在过孔盖油上。板子做回来不能用交期耽误了项目进度拖了老板问起来只能说“板厂做错了”。但板厂真的错了吗很多时候是我们自己的Gerber文件没设置对。还有一个经验不要迷信默认值。AD20的默认阻焊扩展是4mil这个值对大部分板子没问题但对0201或者更小的封装4mil可能导致阻焊桥消失。我通常会把全局扩展改成2mil然后给大焊盘单独建规则放宽到4mil。这样既能保护小焊盘又不影响大焊盘。最后分享一个小技巧如果你不确定板厂会怎么处理你的Gerber可以先发一份给板厂的CAM工程师让他们帮你检查。大部分板厂都提供免费DFM检查服务他们会告诉你哪些地方有问题。这比你自己猜要靠谱得多。我合作过的板厂里有几家会在收到文件后主动发CAM预览图让我确认这种服务能省掉很多扯皮的时间。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进