ARTICLE DETAIL

资讯详情

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

BGA焊盘选NSMD还是SMD?从原理到实战一次讲清

BGA焊盘选NSMD还是SMD?从原理到实战一次讲清 这段时间帮一个朋友排查板子焊接不良的问题现象挺典型0.4mm pitch 的 BGA 过炉后总有几颗球连锡上了返修台重新植球再贴结果更惨返修取片时焊盘直接从 PCB 上被带走了好几颗。查来查去问题不在回流焊曲线也不在锡膏量而在于最基础的一件事——他给 BGA 焊盘选错了定义方式在根本没有条件用 NSMD 的地方硬用了 NSMD。这个事不稀奇。很多工程师画 BGA 时对 NSMDNon-Solder Mask Defined非阻焊定义焊盘和 SMDSolder Mask Defined阻焊定义焊盘的理解停留在“一个是绿油开口大一点一个是绿油开口小一点”至于大多少、小多少、什么时候该用哪个全靠感觉。但 BGA 引脚藏在封装肚子底下出问题后探针够不着、放大镜看不全、万用表也量不到等你发现不良的时候往往已经烧了一整炉。这篇我不会讲虚的只把 BGA 焊盘用 NSMD 还是 SMD 这件事拆开从制造原理、数值计算、Altium Designer 里的实际操作到我踩过的几个真实坑一次讲清楚。不管你是刚开始画 BGA 的新手还是被焊接不良折磨过几次的硬件老手这篇文章应该能帮你把“凭感觉选”变成“按数据选”。1. 先弄明白一件事谁在决定BGA焊盘的最终尺寸1.1 阻焊层不是装饰它是焊盘尺寸的“裁判”很多人对 PCB 阻焊层Solder Mask俗称绿油的理解是“防氧化、防短路、好看”这话没错但在 BGA 焊盘设计里阻焊层的作用远不止这些。阻焊层开口的尺寸直接决定了焊接时锡膏和焊球实际能接触到多大面积的铜箔。这里要区分两个概念铜箔焊盘尺寸你在 Altium Designer 的 Pad 属性里填的那个直径是 PCB 上实际蚀刻出来的铜箔图形尺寸。阻焊开窗尺寸绿油层上开的洞让焊盘裸露出来供焊接的那部分区域。而 NSMD 和 SMD 这两种焊盘定义方式的根本区别就是谁说了算到底是由铜箔尺寸决定有效焊盘还是由阻焊开窗尺寸决定有效焊盘。NSMD 焊盘阻焊开窗比铜箔焊盘大一圈焊盘四周的铜箔完全裸露出来。这时候真正起焊接作用的焊盘尺寸就是铜箔本身的尺寸阻焊层只是个“旁观者”它的对位偏差不会影响焊盘有效面积。SMD 焊盘则相反阻焊开窗比铜箔焊盘小一圈绿油像包边一样压住铜箔外圈。这时候真正露出来供焊接的尺寸是阻焊开窗的尺寸铜箔本身做多大反而不太重要阻焊开窗才起决定作用。1.2 从剖面上看懂两种焊盘的差异如果拿个刀切下去看剖面差异非常直观NSMD 焊盘的剖面里铜箔焊盘是完整暴露的焊料能包裹住焊盘的顶面和四周侧面。焊盘和 PCB 基材之间除了底部粘接侧面也有焊料包裹机械锁定效果更强。如果用一个画面类比NSMD 焊盘像一棵种在土里、根部完全露出来的树焊料可以直接抱住树根。SMD 焊盘的剖面里铜箔焊盘外圈被阻焊层压住一道边焊料只能接触到中心暴露的部分。这个结构像给树根围了一圈花坛边焊料碰不到被围住的那部分根机械锁定能力会弱一点但花坛边能防止水土流失——也就是说它给焊盘边缘提供了物理保护铜箔不容易在热应力下被“撕”起来。这些差异在普通 QFP 封装上可能感觉不明显但放到 BGA 上会被放大不少。1.3 BGA为什么比QFP更在意这个细节QFP 这类引脚在外围的封装引脚出问题还能用万用表点到、用烙铁补一下、用飞线救一救。BGA 就没有这个条件引脚全是焊球坐在封装底下的阵列里一旦虚焊、连锡、焊盘脱落常规手段根本没法单独补焊只能整片拆下来。拆 BGA 要用返修台加热、取片、植球、重新贴装一系列操作下来对焊盘的热冲击和机械拉扯都远高于普通焊接。更关键的是BGA 的 pitch 越来越小。0.8mm 的 BGA 焊盘直径能做到 0.35mm焊盘之间还有 0.45mm 的间隙怎么设计都很宽裕。到了 0.4mm pitch 的 BGA焊盘直径往往只有 0.2mm 左右两个焊盘边缘之间可能只剩 0.2mm 甚至更少这时候阻焊层哪怕偏了 25μm都会直接影响焊接面积。所以 BGA 焊盘设计里“谁决定尺寸”这件事从来不是可以“凭感觉”的选项而是需要计算的工程决策。2. 用手算代替瞎猜决定NSMD还是SMD的六个数字2.1 焊盘直径和Pitch先看这两个基础参数拿到一个 BGA 封装第一件事不是打开 Altium Designer 画封装而是把这两个数字写在纸上Pitch和焊盘直径。Pitch 好理解就是相邻焊球中心之间的距离。焊盘直径则要看芯片厂商的封装推荐同一颗芯片推荐焊盘可能有 0.25mm、0.3mm 等多个档位取决于你的布线密度和可靠性要求。焊盘选大了布线通道变窄NSMD 需要的空间也更大焊盘选小了焊接面积不够焊点强度下降。实际上我见过不少翻车案例就是画封装时图省事直接默认放了一个 0.3mm 甚至 0.32mm 的焊盘结果后面算阻焊桥的时候怎么算都不够。2.2 阻焊桥宽度NSMD能不能做就看它这是整个决策里最核心的一个数。**阻焊桥Solder Mask Web**就是两个相邻焊盘的阻焊开窗之间那条用来隔开它们的绿油带子。如果这条带子太窄或者根本不存在阻焊开窗就会连成一片焊接时锡膏和焊球很容易顺着连通的区域流到一起形成桥连。NSMD 焊盘下阻焊桥宽度的计算公式是这样的阻焊桥宽度 Pitch - 阻焊开窗尺寸 阻焊开窗尺寸 焊盘直径 2 × 阻焊扩展量Solder Mask Expansion举个实际例子。假设 0.65mm pitch 的 BGA焊盘直径 0.3mmAltium Designer 里默认的 Solder Mask Expansion 经常是 0.1mm那么阻焊开窗 0.3 2 × 0.1 0.5mm 阻焊桥宽度 0.65 - 0.5 0.15mm 150μm150μm 的阻焊桥对大多数板厂来说是可以稳定做的常规能力下限通常要求 75μm 到 100μm所以这个设计是成立的。换到 0.5mm pitch 的 BGA如果还是焊盘 0.3mm、扩展 0.1mm阻焊开窗 0.3 2 × 0.1 0.5mm 阻焊桥宽度 0.5 - 0.5 0mm算出来是零也就是说相邻焊盘之间的阻焊开窗已经完全连上了阻焊桥连影子都没有。这种状态下如果还硬要用 NSMD板厂要么会把开窗做成一大片要么会私自缩小开窗、部分覆盖焊盘边缘结果就是焊接时连锡风险极高或者有效焊盘面积变得不可控。所以遇到这种情况你有两条路一是缩小焊盘直径或减小阻焊扩展量让阻焊桥重新出现二是直接切到 SMD让阻焊层主动压住焊盘边缘用减小焊料接触面积来换开窗独立性。2.3 阻焊对位精度和板厂确认的第一件事很多人在电脑前算完阻焊桥宽度觉得没问题就把板子发出去了却忽略了一个重要参数板厂的阻焊层对位精度。阻焊层曝光和铜箔线路曝光是两套流程两套底片之间不可能完全重合。常规工艺的阻焊对位误差在 ±50μm 到 ±75μm好一点的能做到 ±25μm 到 ±30μm。这个误差对 NSMD 焊盘的影响是焊盘边缘部分被绿油盖上或露得比设计值多一点。由于 NSMD 的有效焊盘面积本来就不由阻焊层决定这点偏差通常可以忍受。但对 SMD 焊盘来说阻焊对位误差直接改变了露出来的有效焊盘尺寸左右偏一点开窗的等效位置就变了焊点的一致性会受影响。所以在对位精度控制不好的板厂做 SMD 焊盘风险比 NSMD 更大这就是为什么很多半导体原厂的封装指南里在工艺允许时更推荐 NSMD 的原因之一。投板前我在 EQ 里一定问板厂三件事阻焊桥最小能做到多少、阻焊对位精度是多少、能不能做 0.4mm pitch 的 SMD 开窗。这三个答案拿回来你的设计才算有依据。2.4 一张表看懂常见Pitch该选谁把这些因素综合起来我按照自己的经验整理了一个决策表可以作为一个起点。注意是起点不是结论具体还要结合板厂能力和产品可靠性要求BGA Pitch常见焊盘直径倾向类型原因≥0.8mm0.35mmNSMD空间充足阻焊桥轻松做到200μm以上焊点强度优先0.65mm0.3mmNSMD阻焊桥可做到150μm左右综合性能好0.5mm0.25mm视情况NSMD或SMD灰色地带算完后阻焊桥≥100μm可NSMD否则SMD0.4mm0.2mmSMDNSMD很难形成可靠阻焊桥≤0.35mm0.18mm或更小SMD或IC载板工艺普通PCB工艺非常吃力需特殊设计这个表格不是用来背的它背后的事实是pitch 越小留给阻焊桥的空间越少从 NSMD 走向 SMD 的压力越大。3. Altium Designer里分别设置NSMD和SMD焊盘3.1 正数还是负数Solder Mask Expansion的两种填法在 Altium Designer 里焊盘默认的阻焊开窗规则通常是一个正扩展值意思就是让绿油开口比焊盘大一圈所以默认情况下你画出来的所有焊盘本质上都是 NSMD。单个焊盘的设置入口很简单双击焊盘打开属性面板找到Solder Mask Expansion这一项。这里有两种模式Expansion value from rules从设计规则里取值通常是默认的 0.1mm 或 0.127mm。这是推荐模式方便后续统一管理和调整。Specify expansion value manually手动指定一个数值。如果你只需要个别焊盘特殊处理可以用这个模式。真正关键的是这个数值的符号正数如 0.1mm阻焊开窗向外扩大最终开窗尺寸大于焊盘这是 NSMD。负数如 -0.05mm阻焊开窗向内收缩最终开窗尺寸小于焊盘这是 SMD。很多人不知道 Altium Designer 里填负数就能实现 SMD 焊盘结果绕了一大圈去手动改阻焊层图形。其实直接在焊盘属性里填一个负的扩展值就行。假设你设计一个 0.4mm pitch 的 BGA铜箔焊盘直径 0.25mm想要 SMD 有效开窗 0.2mm那单边覆盖就是 (0.25 - 0.2)/2 0.025mm。在Solder Mask Expansion里填 -0.025mm 就有这个效果。不过说实话25μm 的对位余量非常紧张一般我会把铜箔焊盘加到 0.3mm开窗还是 0.2mm这时候单边覆盖 0.05mm才算有实际可生产性。3.2 只给BGA单独设立规则别动全板默认值我知道很多人图省事直接在 Design → Rules → Manufacturing → Solder Mask Expansion 里把全板默认值改了。这在板子上只有一种焊盘类型时没问题但如果你同时有 0.65mm 的 BGA、0.5mm 的 BGA、还有一堆普通电阻电容一个全局值很难兼顾所有需求。我习惯的做法是给 BGA 焊盘建一个单独的 Pad Class然后单独设置规则。步骤大概是这样的在 PCB 编辑器里用 Find Similar Objects 选中 BGA 的所有焊盘。框选 BGA 区域后右键选择Find Similar Objects把 Object Type 设成 Pad再根据网络名或者封装名筛选出属于 BGA 的那部分焊盘。在属性面板里给这些焊盘指定一个 Pad Class。类名称我用得比较多的是BGA_NSMD_065或者BGA_SMD_040这种带参数的命名看一眼就知道规则是什么。打开 Design → Rules → Manufacturing → Solder Mask Expansion新建一条规则Query 写法可以参考InPadClass(BGA_NSMD_065)或者IsPad但IsPad的范围太大一般我会用类匹配精确命中。在这条规则里设置对应的 Expansion 值。0.65mm 的 BGA 如果走 NSMD填 0.1mm0.4mm 的 BGA 如果走 SMD填 -0.025mm 或 -0.05mm。把规则的优先级调好确保 BGA 区域的规则优先级高于全板默认规则。这里有一个比较容易踩的坑Altium Designer 的规则是有优先级的默认规则优先级通常最低但如果你之前建过别的规则比如按网络类或者按元件类设置的 Solder Mask Expansion 规则它的优先级可能会压过你新建的 BGA Pad Class 规则。设置完后最好在 Rules 页面点一下Priorities按钮把优先级顺序确认一遍。3.3 按L打开阻焊层肉眼检查开窗是否合理在 Altium Designer 里设置完数值只是完成了一半工作。我强烈建议在投板前至少花五分钟做一次可视化检查。按键盘上的 L 键打开 View Configuration 面板在 Layer 列表里把 Top Solder 和 Bottom Solder 这两个阻焊层打勾显示出来。如果图层配色不合适可以在图层的颜色设置里把阻焊层改成一种半透明的亮色这样能很直观地看到每个焊盘的阻焊开窗形状。检查什么首先要看 BGA 区域里每个焊盘的阻焊开窗是不是独立的。如果看到两个相邻焊盘的开窗连成了一个长条形的开口这就是前面说的阻焊桥断裂说明当前的 NSMD 参数在这个 pitch 下不成立要么改小焊盘、改小扩展量要么切 SMD。另外可以按 3 键进入 3D 预览模式旋转视角从侧面观察 BGA 区域的焊盘和阻焊层的相对关系。NSMD 能看到焊盘边缘一圈铜色裸露SMD 能看到绿油包住焊盘外圈只露出中间的焊盘区域。这个视觉印象比看数字直观得多。3.4 出Gerber前的最后三查很多焊接不良问题不是设计阶段产生的而是制造输出阶段产生的。比如阻焊层没有正确导出、开窗极性反了、或者你用了负片输出但板厂理解的是正片这些都会导致 PCB 回来之后开窗和设计意图完全不符。投板前我一般固定做三件事第一用 OutJob 统一管理制造输出。在 Altium Designer 里建一个 Output Job 文件把 Gerber、钻孔文件、装配图、BOM 都放进去一键生成。这样能避免每次手动导出时漏掉某一层。热词里有人搜“altium designer 使用outjob文件快速输出文档”说的就是这个功能它确实能减少漏导出导致的低级事故。第二Gerber 导出时确认阻焊层的选项。在 Gerber Setup 里要明确看到 Top Solder 和 Bottom Solder 被勾选并且输出格式是正片Most positive还是负片Negative要和板厂确认。大多数情况下阻焊层导出为正片但不同板厂的习惯不一样提前在 EQ 里确认一下不丢人。第三有条件的话把 Gerber 文件拿到第三方 CAM 工具里看一遍。Altium Designer 自带的 CAM 编辑器可以打开自己输出的 Gerber检查阻焊层和铜箔层的对位情况。重点看 BGA 区域的开窗是不是每个焊盘都正确露出、有没有不该露的地方被开窗了、开窗边缘有没有和相邻走线靠得太近。4. 实战复盘0.5mm和0.65mm pitch BGA的两种命运4.1 0.65mm Pitch BGANSMD的舒适区我最近做的一块核心板上面有一颗 0.65mm pitch 的 FPGA封装里推荐的焊盘直径是 0.3mm。按照前面提到的计算方法阻焊开窗 0.3 2 × 0.1 0.5mm 阻焊桥宽度 0.65 - 0.5 0.15mm 150μm150μm 的阻焊桥对绝大多数板厂来说都是可以稳定生产的。我直接选了 NSMDSolder Mask Expansion 用 0.1mm没有额外做特殊规则。这块板子投出去回板后焊接良率很稳定BGA 部分基本没有因为焊盘设计问题返修过。返修台上如果有空焊需要拆片NSMD 焊盘因为焊料能包裹焊盘侧面机械固定强度更足拆焊时焊盘不容易被带着走。这是我用下来最喜欢 NSMD 的地方。4.2 0.5mm Pitch BGANSMD翻车实录同一时期我在另一块板子上用了 0.5mm pitch 的 DDR 颗粒。当时没多想套用了 0.65mm 的经验焊盘直径设为 0.3mm扩展量继续用 0.1mm。结果一算阻焊桥宽度直接是零阻焊开窗 0.3 2 × 0.1 0.5mm 阻焊桥宽度 0.5 - 0.5 0mm当时没太在意想着板厂有经验会自己处理。板子回来BGA 底部确实没有出现整排桥连但用 X-Ray 检查发现有零星几颗球连到了一起而且位置不固定今天这炉这几颗明天那炉那几颗。后来和板厂沟通他们反馈因为阻焊桥宽度几乎为零他们的工艺只能把阻焊开窗整体缩小一点结果焊盘边缘被部分覆盖有效焊盘面积不一致有些焊球的接触面积偏小加上锡膏印刷本身的厚度波动就出现了随机连锡和虚焊并存的情况。这个案例给了一个教训NSMD 能不能用不是看板厂会不会“帮我处理”而是看你自己算出来的阻焊桥宽度是否满足最低工艺能力。后面我把 0.5mm 那颗 DDR 的设计改成了这样才稳定下来铜箔焊盘直径从 0.3mm 改成 0.25mmSolder Mask Expansion 从 0.1mm 改成 0.075mm重新计算阻焊开窗 0.25 2 × 0.075 0.4mm 阻焊桥宽度 0.5 - 0.4 0.1mm 100μm100μm 的阻焊桥板厂可以做良率也稳定了。当然代价是焊盘面积变小了布线空间也要重新规划。如果布线实在走不通下一招就是切到 SMD。4.3 0.4mm及以下SMD是理智之选0.4mm pitch 的 BGA比如一些较新的 SoC 或者大容量存储芯片焊盘直径通常只有 0.2mm 左右。这时候你就算用 0.05mm 的扩展量阻焊开窗 0.2 2 × 0.05 0.3mm 阻焊桥宽度 0.4 - 0.3 0.1mm 100μm看起来好像还能做 NSMD问题是 0.2mm 的焊盘本来就很小实际蚀刻出来可能只有 0.18mm再加上阻焊对位偏差 ±50μmNSMD 焊盘边缘被覆盖或者多露出来的比例相对焊盘整体尺寸来说已经很大焊接面积的一致性非常难保证。这时候用 SMD 反而更可控。典型参数可以是铜箔焊盘直径 0.25mm 到 0.3mm阻焊开窗 0.2mm也就是 Solder Mask Expansion 填 -0.025mm 到 -0.05mm。这样阻焊开窗由你精确控制板厂只需要保证开窗位置不偏移太多焊球落在开窗范围内就能形成可靠的焊点。当然SMD 焊盘的焊点机械强度不如 NSMD在需要频繁返修或者冲击振动比较强的产品里要留好余量。返修台上的表现也要特别注意我已经见过不止一次 SMD 焊盘在多次返修后阻焊层边缘破损、铜箔翘起的案例这个放到后面踩坑部分细说。5. 踩过坑才懂的经验从设计到返修台的自查清单5.1 返修台上的教训焊盘跟着焊球一起走文章开头提到的那个朋友他的板子后来被拉去返修台上处理结果拆 BGA 的时候有几颗焊盘跟着焊球一起被带了起来板子直接报废。这里面既有 NSMD 选错的因素也有返修操作的因素但根源还是在设计阶段。0.4mm pitch 的 BGA他用了 NSMD而且焊盘选得偏大阻焊桥根本无法形成。这种焊盘在正常回流焊时因为开窗连成片焊球边缘的锡会往相邻焊盘浸润导致桥连。返修时加热不均匀焊盘和基材之间的粘接力本来就有限一旦取片角度不对、温度没拉到位焊盘就会从板面上剥落。返修台上还有一种常见情况SMD 焊盘返修几次后阻焊层边缘开始破损尤其是拆片时焊盘受拉力绿油包边一旦崩开铜箔就容易从边缘起翘。所以如果说 NSMD 的风险是“桥连”那 SMD 在返修场景下的风险就是“阻焊层破损焊盘边缘起翘”。二者都需要靠设计和工艺去控制不是选完就一劳永逸。5.2 投板前确认信息完备再说综合我自己的项目经验现在每画完一块带 BGA 的板子投板前都必须过一遍下面这几条缺一条我都不太安心焊盘直径和 pitch 对得上按照芯片厂商推荐或者 IPC 标准取值不要随手放一个“看起来差不多”的焊盘。阻焊桥宽度算过NSMD 焊盘必须保证相邻开窗之间有足够的阻焊桥常规要求 100μm 以上极限也别低于 75μm。Solder Mask Expansion 符号正确NSMD 用正值SMD 用负值别在 Altium Designer 里填反了。阻焊层可视化检查过按 L 打开 Solder 层确认 BGA 内部开窗没有连成片。Gerber 里的阻焊层确认存在用 OutJob 输出后检查顶层和底层阻焊层都在。板厂能力确认过阻焊对位精度、阻焊桥最小能力、对 0.4mm pitch SMD 开窗是否有经验这几件事迟早要问不如投板前就问清楚。这套清单看起来啰嗦但能挡住大多数低级问题。我起码有三次是靠这个清单挡住了“看起来能做实际上不行”的设计尤其是 0.5mm pitch 灰色地带的那类板子。5.3 我个人的默认选择路径最后分享一下我画 BGA 时默认的处理方式当一个参考拿到封装先看 pitch。如果是 0.65mm 及以上基本默认走 NSMD焊盘直径按芯片厂商推荐的上限取扩展量 0.1mm然后算一下阻焊桥宽度这步只是走个形式因为通常都够。如果是 0.5mm先把焊盘直径定在 0.2mm 到 0.25mm扩展量先按 0.075mm 估算算完阻焊桥宽度如果低于 100μm直接切 SMD不纠结。如果是 0.4mm 及以下默认走 SMD铜箔焊盘稍微做大一点用负扩展量把开窗控制到和焊球尺寸匹配的范围内。这些默认值不是金科玉律它只是在我合作过的几类板厂工艺能力下最不容易出错的起点。真正决定最终方案的还是板厂的实际工艺边界和你对可靠性、返修率、成本的取舍。把这些参数设计进去把计算逻辑走一遍再在 Altium Designer 里配上对应的规则和检查BGA 焊盘这件事就不会再是“靠感觉选了”。
返回列表