做PCB设计的老伙计们应该都有体会,Allegro里建封装焊盘,圆形、方形、椭圆形这些标准形状,按照常规路线走一遍Padstack Editor基本就完事了。可一旦碰到异形焊盘——比如大电流功率器件底部的裸露焊盘、BGA正下方的散热焊盘、射频电路里为了阻抗匹配特意做出来的阶梯状盘——很多人就卡住了。网上搜了一圈教程,要么是讲老版本菜单界面,要么就只说了一句“用Shape Symbol啊”,然后就没下文了。实际动手才发现,从画形状到引用到焊盘,再到封装里放上去,中间每一步都有讲究,坑还不少。
这篇我把自己从最初被异形焊盘折磨到后来能顺手做出一套完整库的完整操作流程,原原本本写出来。包括怎么用Shape Symbol把不规则轮廓画出来、怎么在Padstack Editor里正确引用、怎么处理开窗和钢网、怎么放进封装里不跑偏、以及最后在PCB上花连线和检查安全间距需要注意什么。适合三类人看:正在建封装库的库工程师、做电源或射频板子的Layout工程师、还有从AD转过Allegro不久还在适应焊盘机制的新手。
1. 异形焊盘到底用在哪,Allegro为什么非要搞个Shape Symbol
1.1 实际设计里最常见的四类异形焊盘
先说清楚我们为什么要费劲去做异形焊盘。大部分人对异形焊盘的认知停留在“BGA中间的散热大焊盘”,但其实板级设计里遇到异形焊盘的场景远不止这一种。
第一类是大电流功率焊盘。现在很多MOS管、电源模块、LED驱动芯片,底部会有一个大面积的裸露焊盘(Exposed Pad),这个焊盘不是用来焊接信号的,主要作用是把芯片内部产生的热量导到PCB上,同时充当大电流通路。这类焊盘通常是长方形或方形,为了过更大的电流,很多人会把它直接加宽成异形,比如一个“凸”字形,把电流路径平滑扩展开。我之前做一块电源板,主功率MOS的漏极焊盘就做成了阶梯状,从引脚区宽度6mm逐步扩展到散热铜皮区宽度12mm,这样既不影响引脚焊接,又能把热和电流都顺畅带走。
第二类才是大家最熟悉的BGA散热焊盘。芯片底部的大焊盘如果做成实心圆形或方形,焊接时锡膏里的助焊剂气化后容易在焊盘中间形成空洞,回流焊时芯片甚至会因为气泡压力浮起来。所以很多封装厂会要求把这个大焊盘做成“网格状”或“花瓣状”,也就是在整块铜皮上开若干个方形或圆形窗口,让气体有地方跑。这种形状用标准焊盘做不出来,必须用Shape Symbol来做基底,再在内部挖空。
第三类是板边连接器焊盘。比如金手指、SIM卡座、Type-C连接器的一些特殊引脚,它们不是简单的圆形或方形,而是包裹着板边轮廓的弧形、L形。这类焊盘如果做成标准圆形,焊接强度和爬锡效果都会打折扣。还有天线焊接点,有些天线馈点焊盘是特意做成一端宽一端窄的楔形,用来配合阻抗匹配。
第四类是射频电路里的特殊焊盘。像PA的输出匹配网络、滤波器输入输出引脚,有时需要焊盘本身参与阻抗计算。这时候焊盘不是简单矩形,而是要做成“T形”或者“犬牙交错”的形状,配合微带线宽度渐变。这种异形焊盘做得好不好,直接影响射频性能。
1.2 Allegro标准焊盘做不到的事,Shape Symbol恰好能补上
很多人刚接触Allegro时都会有个疑问:我明明能画任意多边形铜皮,为什么不直接在封装里画一块铜皮当焊盘,非要搞个Shapesymbol出来呢?
这里就要说清楚Allegro焊盘的底层机制了。Allegro的Padstack(焊盘栈)本质上是一个数据结构,它定义了引脚在每一层(Begin Layer、Default Internal、End Layer、Soldermask、Pastemask)上呈现什么形状、多大尺寸、怎么连接。而它支持的“形状”类型,除了常规的Circle、Square、Oblong、Rectangle、Octagon之外,还有一种就叫Shape Symbol。意思就是:我Padstack自己不知道长得什么样,但我引用一个外部的shape符号文件(.ssm),你就到那个文件里去找到底应该长成啥样。
这种“焊盘引用外部图形”的机制,好处非常明显。其一,同一个异形轮廓可以被多个焊盘复用,改一次.ssm文件,所有引用它的焊盘批量更新;其二,焊盘形状完全不受标准几何形状限制,只要是能在PCB编辑器里画出来的封闭图形,都能变成焊盘;其三,shape符号本质上就是一块铜皮,天然支持与板上的普通铺铜融合连接,不会出现“焊盘是焊盘、铜皮是铜皮,中间还得靠一根短线连起来”的尴尬局面。
理解了这一点,后面所有操作就都顺了:想让焊盘长得奇怪,就去画一个奇怪的Shape Symbol文件,然后让Padstack引用它。
2. 准备工作做扎实:先把异形轮廓画成Shape Symbol
2.1 新建Shape Symbol画布的正确姿势
异形焊盘的第一步不是打开Padstack Editor,而是先在PCB Editor里画出一个形状文件。很多人第一步就反了,跑到Padstack Editor里找半天“画多边形”的按钮,当然找不到。
具体操作流程:打开Allegro PCB Designer,菜单File -> New,弹出来的New Drawing对话框里,Drawing Type这一项必须选择Shape Symbol,然后输入文件名。文件名的命名建议直接和后续焊盘用途关联,比如 PAD_SSM_MOSFET_DRAIN、PAD_SSM_BGA_THERMAL_10X10,千万别叫啥shape1、shape2,不然库文件多了之后你自己都找不到哪个是哪个。
这里还要注意画布设置。Form菜单的Design Parameter Settings里,有几点必须确认。单位选择要和后期焊盘设计一致,我自己习惯用mil,但如果你画板一直用mm,那这里也用mm,避免单位混用导致的尺寸错乱。绘图范围Extents建议设置到至少300mil * 300mil(或者对应8mm * 8mm),别开太小,否则后续画形状时鼠标容易飘到边界外。
还有一个很多人忽略的地方:Shape Symbol画布里的坐标原点(0,0)就是将来焊盘引脚的中心点。这一点一定要牢记。很多人画形状时随意性很强,画完了才想起来焊盘中心应该在某处,结果整个形状偏离原点好几毫米,放进封装里引脚位置全跑偏,再回头一个个改,工程量不小。我一般画之前先在原点附近把参考网格打开,Design Parameter Settings里的Grid设置成5mil一格(公制就0.1mm一格),然后以原点为中心构思形状范围。
2.2 三种画异形轮廓的实用方法,由简到难
第一种方法,纯手工用Add -> Shape命令画多边形。这是最直接的方式,适合形状本身不算特别复杂的场景。以画一个“凸”字形大电流焊盘为例,先在Shape菜单下选择Polygon,然后在Options面板里确认Active Class和Subclass选的是ETCH/Top(或者你想放到底层就是ETCH/Bottom),Shape Fill Type选Solid,这一项很重要,如果选成Crosshatch,焊盘会变成网格状,虽然视觉上有纹理,但后续连接性和载流能力都会受影响。然后用鼠标一格一格点出多边形轮廓,需要转折的地方点一下,最后右键Done闭合。画完之后可以选中这个Shape按鼠标右键,在Shape Fill菜单里选择实际填充,确认它是实心状态。
第二种方法,用Z-copy从已有图形生成。这个技巧特别适合“想借用板框或已有铜皮的局部形状来做焊盘”的场景。比如你想做一个沿着板边轮廓弯曲的L形焊盘,先在板框层把轮廓画好,然后选择Shape -> Manual Void/Copy或者直接使用Z-copy命令,选中源图形,在Options里设置New Subclass为ETCH/Top,缩放系数Scale Factor填1,偏移填0,回车后一块和源图形完全一致的Shape就出现在铜层上了。这个方法的好处是能保证焊盘和板边轮廓的贴合度,不会出现手工画导致的几mil偏差。
第三种方法是DXF导入,适合处理结构工程师提供的复杂外形。很多时候异形焊盘的轮廓不是电气工程师自己拍的,而是来自结构给出的器件开孔图、外壳限位图。这时候直接在Allegro里手工描太费劲,不如让结构把DXF文件导出来,然后用File -> Import -> DXF导入。导入时注意设置好dxf文件的单位(公制还是英制),导入图层映射里把轮廓线导入到一个临时机械层,然后用Z-copy或者Shape -> Compose Shape把闭合的线段转换成一块铜皮Shape。这个转换过程有个小坑:DXF导入后的线段往往没有完全闭合,接头处可能断了几mil,直接用Compose Shape会提示失败。解决办法是把线宽临时设大一点(比如设成5mil),让线段头尾之间的小间隙在线宽范围内自然连接,再Compose就很容易成功。生成Shape后再把线宽改回0,别让多余的辅助线影响后续DRC。
无论用哪种方法画完,最后一步都是保存。Shape Symbol的后缀是.ssm,在编辑器里直接File -> Save就会自动存成这个格式。保存到哪也有讲究,建议单独建一个文件夹专门放异形焊盘用到的shape符号,例如library/shape_symbol,不要和封装文件混在一起。后面Padstack Editor要引用它时,路径才能找得到。
3. 在Padstack Editor里把Shape Symbol变成真正的焊盘
3.1 从画shape到引用shape:焊盘参数逐层搞定
形状文件画好,异形焊盘就算完成了一半。接下来打开Padstack Editor(有些版本里叫Pad Designer),开始定义焊盘本身。
菜单File -> New,先选择焊盘类型。表贴器件用SMD Pin,通孔器件用Through Pin。目前绝大多数异形焊盘的需求场景都是表贴,所以重点讲SMD Pin。
打开SMD Pin后,界面左侧是层结构,右侧是参数。最关键的一步是左侧选中Begin Layer,右侧Geometry类型下拉框里不要选Circle或Square,而是选择Shape Symbol。选完后下方原来输入宽高的位置会变成两个按钮,一个叫Browse,一个叫Edit。点击Browse,找到刚才画的.ssm文件选中,焊盘的几何形状就绑定到这个shape符号上。此时你会发现最上方那个“Width/Height”的数值虽然还留着一串数字,但它已经不再起作用了,真正决定焊盘尺寸的是shape文件里的图形轮廓。所以这里无论填多少都无所谓,但很多人不知道,还会反复纠结“宽度到底填多少”,这里我明确告诉你,不需要纠结,随便留个默认值就行。
内层处理上,SMD焊盘不存在Default Internal,但如果你的器件焊盘要贯通到内层铜皮(比如多层板上密集过孔散热),需要在Inner Layers里按需配置。注意如果内层也选择Shape Symbol引用同一个形状,那内层的“空心/实心”设置要单独确认,一般默认None即可,具体根据你要不要再此层扩大连接范围来定。
在Soldermask层,也就是开窗层,建议不要直接引用异形shape文件,而是选择Standard,按照“焊盘外形外扩4~6mil”的思路设置。原因在于,异形焊盘的轮廓边缘,soldermask如果做得和外轮廓完全等大,生产时阻焊层对位偏差超过2~3mil就可能导致焊盘边缘被绿油覆盖,出现少锡、虚焊的问题。我的经验是:如果形状比较简单,用Standard尺寸,在宽和高两个方向都加上8~12mil(即单边外扩4~6mil);如果形状太复杂(比如有很多狭长分支),直接用Shape Symbol引用一个“外扩等距”的ssm文件,这个文件可以通过Shape -> Resize/Re-shape把原焊盘shape向外偏移5mil得到。这也是一个很实用的技巧。
Pastemask层开钢网,这里反而不能盲目外扩。钢网开孔越大,锡膏量越多,太大会导致回流焊时锡珠溢出。对于异形焊盘,我通常的做法是Pastemask层用Standard,面积和焊盘本体相当,但要注意留出中心开孔的余地。如果焊盘是大面积的散热盘,钢网通常是“开窗口”而非整面覆盖,这时就要控制Pastemask层的图形面积,而不是让钢网覆盖整个焊盘。通常我会在画shape符号时,焊盘本体是实心,但把Pastemask单独做一个开孔版本,或者用Shape Void在焊盘上挖几个小窗口。这个避坑点后面详说。
3.2 散热焊盘别忘了Flash符号和Thermal Relief连接
如果你是给BGA或大功率芯片做底部散热焊盘,那Padstack Editor里还有一个关键环节:Thermal Relief连接方式。
常规引脚在内层连接铜皮时,会通过“花焊盘”连接(也就是Flash Symbol),避免大面积实心连接导致散热过快、焊接困难。花焊盘的形状是一个Flash Symbol(.fsm文件)。对于标准圆形或方形焊盘,可以直接在Padstack Editor的Default Internal和Inner Layers里,Geometry选择Flash,然后输入Flash symbol的名称或者引用一个现有的.fsm文件。但异形焊盘的问题是,Flash Symbol必须和焊盘外形匹配,而Allegro系统自带的Flash只有圆形和方形两种,并没有适用异形轮廓的花焊盘。
所以散热异形焊盘的正确做法通常是:内层不选择Flash连接,而是用Orthogonal或45度连接方式,也就是内层铜皮通过几条短的空心热桥连接到焊盘周边,每条热桥可以单独设置宽度和数量。这个连接方式在Padstack Editor的Connect下拉菜单里配置。如果多层板内层需要用大面积铜皮散热的,干脆Internal层直接选Full Contact,全部实心连接,散热优先,牺牲一下焊接难度。这个要根据实际产品的散热需求和工厂焊接能力权衡,没有绝对答案。
我在做BGA散热焊盘时,一般会把内层设成Orthogonal,热桥宽度设为10~12mil,数量默认4~8条,这样既保证了散热通道,又给了锡膏气泡一定的逸出空间。如果你非要用花焊盘形式但又找不到匹配的Flash符号,也可以自己在Shape Symbol画布上手工画一个花焊盘形状,再保存成Flash Symbol(.fsm),方法类似,但相对繁琐,多数情况下用Orthogonal就够用。
4. 别把异形焊盘孤立在封装之外,完整走一遍封装和PCB流程
4.1 放到封装里:引脚位置、命名和库路径一个都不能错
焊盘文件定义好后,就要进封装编辑器(Package Symbol .dra)里实际放置引脚了。这个环节操作本身很简单,但有几个容易忽略的细节。
首先,打开封装文件,快捷键或菜单Place -> Pin,弹出Place Pin对话框。先点击右侧的Padstack列表,选择刚才保存的那个异形焊盘文件,然后在Options面板里确认是否按增量编号(比如引脚编号为1、2、3…,如果你在画管脚位号,可以设置成按步进递增)。此时把鼠标移动到画布上,你会发现光标上挂着的不再是一个简单的圆形或方形,而是刚才定义的异形轮廓。鼠标瞄准预计的引脚坐标位置,单击放下即可。
这里有一个非常关键的“原点意识”。前面我强调过shape文件的原点就是焊盘中心,现在到了这一步,这个焊盘引脚的实际物理位置,就等于你在Place Pin时鼠标停留的坐标点。如果当时画shape时原点偏了,此刻引脚就会偏离应放的位置。所以我做封装时,放完第一个引脚后会习惯性地打开Display -> Element命令,点击该引脚,在属性里看一下它的Pin Location和Shape Origin是不是一致,发现偏移立刻回padstack里修。
其次,封装保存后,必须确认Allegro能找到这个焊盘文件。在PCB Editor里,Setup -> User Preferences -> Design Paths -> Padpath,把焊盘文件所在目录加进去;Shape Symbol文件则对应Shapepath。这一步漏了,后面打开PCB时会报一大片“Pad not found”警告,异形焊盘全变成一个小圆圈,整个板子看着跟筛子似的。路径顺序也有讲究,把自己公司的库路径放在系统库之前,防止用了旧版本的同名文件。
为了批量处理,我习惯把封装和焊盘文件名保持一致,比如封装叫SOIC-8_POWER,焊盘叫SOIC-8_POWER_1、SOIC-8_POWER_5等,这样查找和更换焊盘时一目了然。命名里尽量包含尺寸、形状特征信息,比如PAD_SSM_DRAIN_12X6_R等,避免将来维护库时靠猜。
4.2 在PCB里布线和调整:异形焊盘与铜皮、开窗、DRC的关系
封装在原理图和PCB里放置后,异形焊盘会以一块“特殊铜皮”的形式出现在板上。此时你会发现它和普通铺铜之间有着天然的良好结合性:只要网络相同,走线从引脚出来直接贴近焊盘边缘就能连上,不需要像连接普通焊盘那样必须引入一条Route Keepout或特殊宽度的线。这一点在做大电流路径时特别舒服,我经常直接从异形焊盘边缘拉出一块同网络的Shape铜皮,两者自动融合成一个大面积导通区域,载流能力非常可观。
不过这里要注意一个Allegro特有的“优先级”问题。如果你在覆铜(Dynamic Copper)时遇到异形焊盘和周围铜皮连接不理想,比如焊盘明明是同网络,却只通过一个很细的脖子相连,那就是动态铜皮连接方式没设置对。选中那块动态铜皮,右键Parameters,在Shape Fill里把Connect to SMD Pin设置为Full Contact或Orthogonal,而不是Minimum Connectivity。尤其是异形焊盘这种面积大但网络单一的情况,Minimum Connectivity会以为只要连上一小段就行,结果热性能大打折扣。这一点也是很多热词里“铜皮优先级”相关问题的来源,不少人在电源板上反映“异形焊盘和铺铜连接不上”,十有八九是这个参数在作祟。
布局布线还有一个关键动作:检查开窗。异形焊盘的Soldermask会自动从Padstack里带入,但因为shape的特殊性,你最好在出光绘之前在PCB Editor里用Display -> Color Visibility打开Soldermask Top层,目视检查一遍异形焊盘的阻焊开窗范围。如果开窗比焊盘还小,或者某些分支区域没开窗,会直接影响焊接良率。发现开窗异常时,可以直接用Shape -> Edit Boundary去修改soldermask层的shape范围,或者在Padstack里重新设置后Tools -> Padstack -> Refresh同步过来。
DRC检查方面,异形焊盘出现最多的DRC错误是Shape spacing和SMD Pin spacing。因为异形焊盘形状不规则,它的边缘离旁边的引脚、过孔、铜皮可能在物理上很近,但视觉上不像标准焊盘那么容易被察觉。所以板子完成后,建议设置一个专门的Spacing规则:把异形焊盘所在的网络(或器件)单独建一个Spacing Constraint Set,让周围走线、过孔和它的间距比普通规则放宽2~3mil,给生产留一点余地。这个思路尤其适合电源板,我之前一块板子就是因为异形焊盘和相邻信号过孔间距只留了5mil,光绘厂直接反馈良率风险,后面改成7.5mil后问题消失。
还要提一个动态铜皮和静态铜皮的坑。有时候为了好看,有人喜欢把异形焊盘外围再用静态铜皮(Static Shape)包一圈。但静态铜皮不会跟随焊盘自动更新,焊盘换版本后静态铜皮还留在原地,很容易“踩线”报错。我后来统一改成只用动态铜皮,并用Route Keepout把异形焊盘周边需要避让的区域提前圈好,这样无论是改焊盘尺寸还是调整铜皮范围,系统都会自动重新约束,不容易留下死角。
5. 常见问题与排查技巧实录:我踩过的大部分坑都在这里
5.1 高频报错和警告速查表
新手和中级用户最容易在异形焊盘上翻车的地方其实高度集中。我把这几年见过和踩过的高频警告整理成了一张表,按Tab键频率从高到低排列:
| 现象/警告 | 根本原因 | 解决方法 |
|---|---|---|
| 打开PCB后焊盘显示为小圆点,并报“Pad not found” | Padstack文件未被找到(路径缺失) | 在Setup -> User Preferences -> Design Paths -> Padpath里添加焊盘文件路径 |
| 焊盘显示为方框或空轮廓,不是异形 | Shape Symbol文件未找到 | 在Shapepath里添加shape符号目录,并确认.ssm文件名和padstack引用一致 |
| 异形焊盘和同网络铺铜之间连接不上,只有一丝丝细线 | 动态铜皮的SMD pin连接方式设置为Minimum Connectivity | 选中动态铜皮,Parameters里改为Full Contact或Orthogonal |
| Soldermask覆盖了焊盘边缘,开窗偏小 | Soldermask层引用shape符号时没有外扩 | 将Soldermask设为Standard并单边外扩4~6mil,或新建外扩版ssm |
| 过回流焊后焊盘中心空洞、气泡 | 大面积焊盘没有开钢网窗口,气体排不出去 | 在Pastemask层对焊盘做网格或窗口化处理,钢网开孔率控制在50%~75% |
| 引出线碰到异形焊盘边缘时报DRC | 焊盘边缘离周边铜皮/过孔太近 | 对该网络专用Spacing规则放宽间距,或者用Route Keepout提前预留 |
| 修改了.ssm文件后PCB上焊盘没有变化 | 焊盘引用的shape符号没有刷新 | Tools -> Padstack -> Refresh,或者在PCB里点选焊盘后右键Refresh Padstack |
| 封装里引脚位置偏移,和原理图对不上 | shape文件原点不在焊盘中心 | 回到Shape Symbol画布,用Move把图形移动到原点附近,重新保存后刷新 |
5.2 那些文档里不会写的操作经验
除了表格里的这些“明牌”问题,还有几个经验属于非标操作场景,但碰到的概率也不低。
第一个是版本兼容。不同版本的Cadence打开异形焊盘时,shape符号文件格式可能存在差异。比如在16.6里保存的.ssm,拿到17.2/21.1里打开一般没问题,但反过来从新版本保存的.ssm,老版本可能识别不了或提示“invalid shape symbol”。如果公司内部有多个版本混用,我建议统一用相对低一点的版本新建和保存shape符号,避免高版本格式向下不兼容的尴尬。别问我怎么知道的,有一次我给外包的板子做了个漂亮的异形焊盘,对方用16.3打开直接崩了,后来重新用低版本做了一遍才解决。
第二个是坐标精度问题。Shape Symbol画布里的网格如果设得太大(比如25mil一格),画出来的异形轮廓边缘会出现明显的“台阶”,影响焊盘精度和阻抗连续性。我画高频焊盘时会把非线性格子设成0.5mil(或0.01mm),然后关闭抓取格子(Toggle the snap to grid),改用对齐到对象端点或交点的模式。这样画出来的轮廓即使在圆弧过渡区域,也不会有肉眼可见的锯齿。
第三个是焊盘命名和维护。异形焊盘比标准焊盘更容易遇到“改版”的麻烦。比如结构改了,散热器尺寸变了,需要把BGA散热焊盘从10mm10mm改成9.5mm9.5mm。这时候不要直接在原.ssm文件上修改后覆盖保存,我的做法是新建一个带版本号的shape符号,比如PAD_SSM_BGA_THERMAL_9X5,然后同步更新Padstack和封装。这样万一新版设计有问题,还能快速切回旧版,而不至于连回滚的机会都没有。
第四个是异形焊盘和测试点的配合。很多异形焊盘面积大,测试工程师喜欢直接在上面扎针。但焊盘上开了多个窗口后,测试点的位置如果正好落在窗口空洞里,就会导致探针接触不良。实操时我会在封装阶段,专门在异形焊盘旁边放一个圆形测试点焊盘(Test Point),并把测试点的网络和焊盘设成一致,这样既方便测试又不会破坏焊盘的完整性。这个细节看着小,在批量产线调试时能省下不少返工时间。
5.3 光绘输出前的最后一道检查
异形焊盘在Gerber输出时也有玄机。常规焊盘在Artwork Control Form里只需对应输出Etch层、Soldermask层和Pastemask层即可。但异形焊盘因为本质是一块铜皮,有些设计软件在光绘输出时会遇到填充样式问题。比如在Artwork控制面板里,如果Undefined line width设成0,异形焊盘在Gerber里可能输出成空心轮廓,生产厂看到的就是一块没有填充的图形,做出来铜皮直接镂空。这个坑排查起来要命,因为屏幕上看起来完全正常,光绘预览也看不出异样,直到工厂打样回来才发现铜皮中间是空的。
我的建议是,在出Gerber之前一定做一次“光绘预览”或跑一遍DFM检查。Allegro里可以先用Manufacture -> Artwork打开Artwork Control Form,逐个层确认Fill style是Solid(不是Hollow或Crosshatch),同时在Output design parameters里把Undefined line width填一个非0值,比如6mil(具体值根据最小线宽需求定)。跑完光绘后用CAM工具或用Allegro自带的Artwork审查功能打开生成的.art文件,重点看异形焊盘周边的铜皮是否是实心,有没有出现不该有的空隙或断口。这一步真的很重要,毕竟异形焊盘本身就是大电流或者高射频的路径,要是中间断了一截,性能直接崩。
6. 实操心法:从画shape到投板,几点实操总结
6.1 建库流程的“三步一步查”习惯
做了这么多年封装库,我总结出一套适合异形焊盘的建库流程,叫“三步一步查”。
第一步,拿到器件的参考图或DXF轮廓图后,先在Shape Symbol画布里把外形轮廓画出来,确认焊盘中心在原点,把文件保存成带语义化名称的.ssm文件。
第二步,打开Padstack Editor,新建SMD Pin,在Geometry类型里选择Shape Symbol并引用这个形状,把Soldermask和Pastemask层按前面讲的规则配好,保存焊盘文件。如果异形焊盘用在散热场景,还要回到PCB Editor里,根据需要做一份用于Thermal Relief的Flash符号,或者直接在内层按Orthogonal连接。
第三步,打开封装编辑器,Place -> Pin把焊盘放到位,确认引脚编号、位置、原点一致,顺便放上丝印、装配层、位号,保存封装。
一步查,就是在所有文件保存后,用一个新建的PCB文件,把该封装放上去测试一下。放置后打开Display -> Element检查几个关键点:焊盘的shape符号能否正确显示、距最近引脚边缘是否避免出现DRC、Soldermask是否覆盖正常。测完没问题,这个异形焊盘库才算真正可以用。
6.2 后续迭代中的小技巧:替换焊盘和批量更新
板子画到一半,突然觉得原来做的异形焊盘不够大,想整体换一个新的,这种情况在改版时太常见了。方法其实很简单,不用把封装删了重画。在PCB Editor里,用菜单Tools -> Padstack -> Replace,Select a padstack to replace选择旧的异形焊盘,Then with选择新的焊盘,点击Replace后所有使用旧焊盘的引脚都会自动换成新焊盘。如果是在封装阶段想改,直接Tools -> Padstack -> Refresh把修改过的padstack刷新一遍即可。
但这里提醒一下,Replace和Refresh的区别要搞清楚。Replace是把引脚指定到另一个全新的Padstack;Refresh则是保持当前引脚用的Padstack名称不变,重新读取同名padstack文件的最新参数。如果你只是想改尺寸但不换焊盘名,那就用Refresh;如果你想彻底换一个不同名字的焊盘,那就用Replace。每次刷新完焊盘后,还要把受影响的动态铜皮重新填充一遍(Display -> Shape Fill手动刷新),否则铜皮边界不会自动更新,视觉上还是旧的轮廓。
最后说一个很多人容易忽略的细节:异形焊盘尽量在封装阶段就固定下来,不要在PCB阶段频繁改。因为封装里所有引脚编号、位号、丝印等都是围绕引脚固定的,而PCB上很多厂商的DFM检查也会针对焊盘做分析。你今天在PCB上把异形焊盘Replace了一次,明天又Refresh了一下,板子上可能出现残留的旧焊盘信息(比如碎的flash符号、多余的thermal relief连接线),清理起来很麻烦。有几次我就是在PCB阶段图方便直接改焊盘,结果光绘出来Gerber里残留了几个孤立的flash小铜圈,排查了一晚上才发现是旧焊盘的碎片。从那以后我给自己定了规矩:异形焊盘改版一律回封装库改,改完再更新到PCB,干净利落。
异形焊盘这个事儿,说起来只是一个Padstack和Shape Symbol的结合,但真正在工程里滚一圈,会遇到单位混乱、原点偏移、库路径缺失、铺铜连接不良、光绘空心等等一连串问题。把它完整搞定之后,你会发现再做电源板的大电流铺铜、射频板的特殊焊盘、BGA的散热焊盘,都会顺手很多。如果这套流程里有哪个环节你还卡着,按我上面写的步骤一步步来,基本都能顺利走到最后投板。个别版本上菜单名称有差异的,对着界面找一下对应关系就行,核心机制是不变的。