ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

Allegro异形焊盘制作全流程:从Shape到Padstack的完整指南

Allegro异形焊盘制作全流程:从Shape到Padstack的完整指南 第一次在Allegro里做异形焊盘我就在一个L形接地焊盘上卡了一整个晚上。当时板边有个连接器的固定脚焊盘下方必须避让一颗电容的轮廓标准的Padstack只能选Rectangle、Circle、Oblong怎么也表达不出来。后来才明白Allegro里真正的异形焊盘从来不是“画”出来的而是“Shape转出来的”。这篇分享就把整套链路拆开讲清楚Shape怎么画、怎么导出成Allegro认的ssm文件、怎么在Padstack Editor里组装成异形焊盘最后怎么放进封装里用起来。全程按Allegro 17.4的实际操作来写适合正在做封装库、或者被连接器固定脚、屏蔽罩接地焊盘、特殊散热焊盘折磨的硬件工程师和PCB Layout工程师。1. 异形焊盘的定位与Allegro的实现逻辑1.1 哪些场景绕不开异形焊盘很多人做了一年PCB设计可能都没亲手做过一次异形焊盘因为常规元器件根本用不上。电阻电容这类标准件0805、0603、SOD123、TSSOP这些封装焊盘基本都是方形、圆形、椭圆用Padstack Editor自带的几种几何形状就能搞定。真正需要异形焊盘的场景通常集中在下面几类板边连接器、带卡扣的固定脚焊盘要和机械结构贴合经常是L形、T形、带圆弧避让的形状。屏蔽罩的接地焊盘为了兼顾接地和散热往往要沿着屏蔽罩轮廓开一个大面积的异形焊盘。电源模块、MOS管这类大电流器件散热焊盘经常不是规则的方形需要按照芯片散热片的实际形状来做。RF电路里的特殊地焊盘为了匹配阻抗或控制回流路径会把焊盘做成带有缺角、弧线的形状。还有一类是“挖孔”需求焊盘中间要避开螺丝孔或定位柱必须做镂空。这些需求用标准图形拼起来也不是不行但拼出来的东西会有内部缝隙DRC经常报错生产上也容易出问题。正确做法就是做一个完整的Shape再把这个Shape变成焊盘。1.2 理解Shape与Padstack的分工Allegro和AD、PADS最大的不同在于它的库结构是分层的。AD里你直接在建封装时画一个铜箔区域它就能当成焊盘用。Allegro不是这样它把“图形”和“焊盘”分成两套体系Shape是纯粹的几何图形可以画在任意层本身不是焊盘。Padstack是真正的焊盘文件定义了各层应该长什么样用什么几何图形去填充。异形焊盘要走的完整链路是下面这条在PCB Editor里用Shape命令画出异形区域。把这个Shape导出成.ssm文件。在Padstack Editor中新建焊盘把Regular Pad的几何类型选成Shape再加载这个.ssm文件。在封装编辑器Package Symbol中把这个焊盘放到对应位置。这套逻辑虽然比AD绕但好处是库文件极度规范同一个异形焊盘可以被多个封装复用改起来也只要改一个.ssm文件。后面所有操作的底层逻辑都是围绕这条链路展开的。2. 动手前必须做好的三件事2.1 单位与精度一次错误会导致尺寸缩放25.4倍我见过最典型的翻车现场是有人画Shape的时候用mm导出后在Padstack Editor里打开单位变成了mil加载进去焊盘尺寸直接缩水成1/25.4整个封装全废。Allegro的单位设置要在两个地方检查清楚。第一个是画Shape的PCB Editor环境路径在Setup → Design Parameter Editor → Design → User Units。里面可以选Mils、MM、Microns等一般做封装主流是Mils做那些引脚间距只有0.4mm甚至更小的精细封装建议用MM并开到3位小数以上。第二个是Padstack Editor环境打开软件后先看右下角或Setup菜单里的单位设置一定要和画Shape时保持一致。还有一个容易忽略的格点Grid设置。默认格点是25mil画异形焊盘的时候这个分辨率太粗了圆弧、斜线根本对不齐。建议在Setup → Grids里把Non-Etch层的格点调成1mil或0.1mm精细操作的时候甚至可以调成0.1mil。养成好习惯开工之前先确认单位再确认格点。这两个东西没设对后面全是白干。2.2 图层分配与显示颜色设置很多新手画Shape画到一半找不到图形了第一反应是Shape丢了其实是图层显示问题。Allegro默认很多层是不显示的画图形的时候选错了Active Class和Subclass画完只要一切视角图形立刻“消失”。我的习惯是把工作图层固定下来。画异形Shape我会选Board Geometry → Top或Drafting层红色显示方便看清边界。如果你画的是实际铜箔可以考虑直接画在Etch → Top层但个人更推荐先画在非电气层确认形状没问题再Z-Copy到需要的地方避免误操作把铜箔改错。图层显示用Display → Color/Visibility打开里面可以一键开关所有层。17.4里这个界面已经改成了彩色方块的搜索式布局按关键字搜层名效率很高。画Shape之前至少把这三个层打开并调到明显颜色你画Shape用的层Etch顶层看和其他铜箔的相对位置所有和结构、机械定位相关的层如果嫌每次手动调颜色麻烦可以直接用Display → Color/Visibility把配置保存成.color文件下次做别的封装直接加载。2.3 常用快捷键与env自定义思路Allegro的快捷键没有快捷键面板这个东西都是在env文件里用funckey定义的17.4也一样。很多人问allegro 17.4快捷键设置在哪其实就是查找你的HOME路径下allegro.env文件用记事本打开就能加行。这里分享我自己的经验不用记一大堆常用的就几个snap pick to吸附到指定点鼠标操作异形焊盘顶点时必备。命令框输入坐标Allegro支持直接在命令框打“x 100 200”这样跳到绝对坐标画Shape的时候定位非常准。Shape相关命令Shape Add、Shape Merge、Shape Subtract、Z-Copy这组命令用熟了异形焊盘就搞定了一大半。如果你希望按一个键就能调出某个命令在env里加一行类似下面的内容就行funckey s shape add funckey m shape merge注意funckey后面只能跟一个字母或F1到F12这类键位命令名要写Allegro认识的名字不确定的话可以在命令框里输入前几个字母后用Tab补全看到完整的命令名再往env里写。3. Shape绘制的核心操作与实例3.1 Shape Add新建Shape的正确姿势进入绘制命令有两种方式菜单路径是Shape → Add或者在命令框直接输入shape add。启动命令后右侧Options面板会变成Shape绘制参数需要关注这几个选项Active Class和Subclass选你打算放置Shape的图层。Segment Type选Line直线、Arc圆弧还是Circle整圆。画异形焊盘时直线和圆弧结合最常用。Line Width如果是画边界一般填0或1mil避免边界本身有宽度影响尺寸。Fill Shape控制是否填充显示建议先开着方便看出最终形状。绘制逻辑其实很像画PCB走线左键点一点走一段换方向继续。角度锁定功能在Allegro里一直可用默认能锁45度和90度方向按住Shift可以临时解锁任意角度。如果画错了某个点不要急着撤销右键用Oops选项可以回退上一个点这个比CtrlZ好用因为它是按操作步骤回退不会把整个Shape边界都删掉。画完后右键选Done如果边界没有闭合Allegro会自动闭合同时状态栏会提示该Shape已经闭合。3.2 Merge、Subtract、Z-Copy三件套单个Shape画不出复杂的异形焊盘真正干活靠的是这几个组合操作。Merge是合并菜单路径Shape → Merge shapes。它可以把多个独立的Shape合并成一个。比如L形焊盘可以先画两个矩形选中后就变成一个巨大的L形。合并之后整个图形只有一个边界没有内部缝隙后续导出ssm不会出问题。Subtract是裁剪菜单路径Shape → Shape Subtract。它从一个Shape里挖掉另一个Shape。比如你要在焊盘中间避让一颗电容就画一个电容大小的圆形Shape用Subtract从焊盘主体里扣掉它。注意操作顺序先选中被裁剪的主体Shape右键Done再选中用来裁剪的Shape右键Done主体上就被挖出一个洞。Z-Copy是复制偏移菜单路径Edit → Z-Copy。它能把一个Shape复制到另一层同时按设定值向外或向内偏移。这个命令在生成阻焊开窗、Place Bound层时特别好用可以把已经画好的异形焊盘轮廓直接复制出来再扩大2到3mil免去重复画的麻烦。这三个命令配合起来几乎能画出任何工艺能实现的异形焊盘。3.3 实操案例一个圆角L形地焊盘我拿实际做过的案例来走一遍完整流程。项目里需要一块L形地焊盘两边宽100mil转角处做R30mil的圆角中间还要避让一个直径50mil的定位柱。第一步画主体。先画一个100mil乘200mil的矩形再画一个100mil乘150mil的矩形两个矩形垂直摆放组成L形位置关系要算好重叠区域留够。然后选中两个ShapeShape → Merge shapes合并得到直角L形。第二步做圆角。Allegro的Merge不会自动倒圆角需要用Arc来修。选择Shape → Edit Boundary进入边界编辑模式把转角处的直角顶点删掉用Arc画一段半径30mil的圆弧替代。这一步考验鼠标操作我习惯先把格点调到1mil然后仔细捕捉圆弧的起止点。第三步避让定位柱。画一个直径50mil的Circle Shape圆心定位到定位柱的中心然后用Shape Subtract从L形主体中剪掉这个圆就得到一个带孔洞的圆角L形焊盘轮廓。第四步检查。菜单Shape → CheckAllegro会检查这个Shape是不是闭合、有没有自相交、节点有没有重叠。这一步别省检查不过的话后续导出和加工都会出问题。3.4 导出ssm让Padstack读取你的ShapeShape画好之后要把它从PCB Editor里导出成独立文件。菜单路径是File → Export → Shape选中你要导出的Shape输入文件名。这里有个命名规范问题强烈建议把尺寸和特征写进文件名比如SHAPE_L100W100_R30_HOLE50这样一看就知道这个焊盘是什么形状、多大尺寸、有哪些特征团队协作的时候大家不用打开文件就知道能不能复用。导出的文件后缀是.ssm全称叫Shape Symbol File这个文件就是异形焊盘的核心后面Padstack Editor加载的就是它。导出时还会弹一个选项问你导出到哪一层我个人习惯统一导出到顶层或任意非电气层因为Padstack Editor在加载ssm时会把它当作焊盘的边界图形层的归属并不重要。到这里异形焊盘的“图形”部分完成了接下来进入“焊盘”部分。4. 从Shape到Padstack异形焊盘的诞生4.1 建焊盘前先理清各层定义打开Padstack Editor新建焊盘文件你会看到左侧一列层级定义这里很多人一开始就懵了。一个标准的SMD异形焊盘至少要定义这些层Begin Layer顶层焊盘实际铜箔加载ssm文件。Top Soldermask顶层阻焊开窗区域一般比焊盘大3到5mil可以用Z-Copy偏移生成也可以在Padstack Editor里手动设置。Top Pastemask顶层锡膏钢网开孔区域一般和焊盘一样大或者比焊盘小1到2mil。如果是双面板底层焊盘还要配置End Layer、Bottom Soldermask、Bottom Pastemask。很多人只设置了Begin Layer忘记阻焊和锡膏层做出来的焊盘看起来没问题打样回来后才发现要么被绿油盖住要么钢网开孔对不上。还有一种情况是异形焊盘用在Bottom层那就要把Bottom层相关配置也加上不能只做顶层。4.2 Regular Pad、Thermal Pad与Anti Pad到底填什么这三个概念是Allegro焊盘编辑里最容易混淆的。Regular Pad是正常连接铜箔时焊盘的实体形状异形焊盘就填在这里。在Padstack Editor右侧把Geometry类型选成Shape再通过browser选择你导出的ssm文件。Thermal Pad是热焊盘用于连接大面积铜箔时控制散热连接。对于异形焊盘如果这个焊盘要连接内电层的大面积铜皮最好也指定一个Thermal Pad否则在负片层上连接关系会出问题。热焊盘可以用Flash类型或者也用Shape类型取决于你选择的连接方式。Anti Pad是隔离焊盘用于负片层上把焊盘和铜皮隔开一般比Regular Pad大10到20mil。留太小的间距会导致负片层隔离不够电气上出问题。一个容易踩的坑是很多人做了异形焊盘的Regular Pad却在Thermal Pad或Anti Pad里留空这在正片层也许勉强能用但一旦设计里有负片层平面就会出现铜皮连接异常、DRC报错、甚至生产出来的板子短路。所以异形焊盘的三类Pad配置尽量都做全。4.3 异形通孔与Slot槽孔的处理严格来说上面讲的都是表贴异形焊盘异形通孔焊盘是另一类需求。连接器的固定脚经常是长条形孔或者带倒角的孔这类焊盘在Padstack Editor里要用到Slot功能。如果孔本身是规则的长条在Drill/Slot页面选择Slot填写Slot Width和Slot LengthAllegro会自动生成槽孔。这个做法最简单通用性也最强。如果孔的形状更复杂比如钥匙孔、一边圆一边方这种Allegro支持用Shape定义孔轮廓但这里要特别提醒一句孔形越复杂板厂加工越麻烦成本也越高。我一般的做法是先在结构设计阶段就和板厂确认最小槽宽和公差再决定是不是要用异形孔很多情况下用标准圆孔加方形焊盘就能解决问题没必要为了孔形而增加工艺难度。还有一个关键点异形通孔焊盘的Regular Pad、Thermal Pad、Anti Pad需要同时配置Start层、Internal层、End层每一层都可以加载同一个ssm文件但要分别设置千万不要只设了顶层的Pad内层和底层空着否则多层板做出来焊盘不完整。4.4 阻焊层和锡膏层的开窗规则异形焊盘的阻焊开窗我建议不要直接在Padstack Editor里绕效率太低了。更好的办法是在画Shape的PCB Editor里利用Z-Copy把所有需要的Mask层一次生成。具体做法是选中已经画好的异形ShapeEdit → Z-Copy目标层选Top Soldermask偏移量填2到3mil再执行一次Z-Copy到Top Pastemask偏移填0或负1mil。这样阻焊和锡膏的形状就自动跟着焊盘轮廓走了不用重新画一遍。阻焊开窗比焊盘大一点的理由是防止绿油上盘如果开窗太紧绿油对位偏差会把焊盘边缘盖住造成焊接不良。锡膏层一般和焊盘一样大或者小一点避免钢网开孔比焊盘大而让锡膏流到焊盘外面。异形焊盘最容易翻车的点就在这里Regular Pad做对了阻焊和锡膏还是用软件默认的矩形做出来的焊盘周围多出一圈不该有的铜或者锡膏打样回来直接报废。5. 封装落地从Padstack到Package Symbol5.1 新建封装与原点策略到这里异形焊盘本身已经做好了现在要把它放进封装里。新建封装的路径是File → NewDrawing Type选Package symbol。Allegro会进入封装编辑器扩展名是.dra。进入后先做两件事第一再查一遍单位跟你的焊盘单位保持一致第二想清楚原点放哪里。我的经验是原点优先放在元件的几何中心而不是放在第一脚原因是后面PCB布局的时候元件的中心位置往往就是坐标定位的基准选几何中心能少算很多偏移量。如果元件形状很不规则没有明显的中心那就放在和连接器接口对齐的位置或者放在结构图纸里定义的坐标原点。关键是全项目统一规则否则不同工程师画的封装原点位置五花八门布局阶段会互相看不懂。5.2 放置焊盘与Place Bound层的重要性放置焊盘的菜单是Layout → Pins这跟画原理图符号完全是两码事Allegro的PCB封装焊盘放置靠坐标和格点来定位。在Options面板里选好焊盘文件然后在命令框输入坐标比如x 0 0回车后第一个焊盘就落在原点上了。后续焊盘根据间距继续输入相对坐标比较快的做法是输入相对偏移ix 50表示相对当前点沿X轴移动50mil。这个方法在精确放置异形焊盘时特别有用因为异形焊盘没法像普通焊盘那样靠脚距平均排布必须逐个对坐标。焊盘放完之后一定要画Place_Bound_Top。这个层决定了元器件在PCB上的占位面积Allegro的布局DRC就是靠它判断器件之间是否重叠。画Place_Bound的时候用到的是Shape不是Line。很多人用Line画个方框结果布局阶段DRC完全不识别器件几乎重叠了也不报错。我用Z-Copy从焊盘外轮廓复制一个Shape出来再做一次Merge把所有外扩区域合并成一个整体最后放到Place_Bound_Top层。Place Bound一般比元件实体大5到10mil给贴片机吸嘴留点裕量太紧的话设备识别和吸取都可能出问题。5.3 丝印、装配层与位号规范异形焊盘的封装里丝印层同样需要额外细心。标准的矩形封装丝印就是四条直线加一个引脚标记。异形焊盘的丝印如果也跟着“异形”走很容易画得乱七八糟甚至和焊盘重叠。我的建议是丝印画成能表达元件轮廓的简化形状就行不需要和焊盘边界完全一致。关键是保证丝印距离焊盘至少5mil避免丝印上盘影响焊接时的人工检查。引脚1标记一般用小圆点或者斜角表示放在丝印的明显位置。装配层Assembly Top要和元件实体一致方便后段进行光学检测和维修定位。位号Ref Des用封装里的文字功能放置字号一般在40到60mil太小的字打印到图纸上根本看不清。异形焊盘所在的封装还有一个很容易忽略的地方如果焊盘上有定位孔丝印最好也标注一下孔的尺寸和位置PCB调试和返修时会省很多事。5.4 库路径、封装更新与替换技巧封装画完保存会生成两个文件.dra是封装源文件.psm是封装符号文件。焊盘和Shape还是独立的.pad和.ssm文件。在PCB里使用封装先要把库路径配好。Setup → User Preferences在路径设置里找到padpath和psmpath把你自己封装库的路径加进去。如果不配置Allegro在打开PCB时会报找不到焊盘或找不到封装。正式设计过程中Layout改封装是家常便饭。更新单个封装我用的是Place → Update Symbols在Package symbols列表里勾选要更新的封装勾上Update symbol padstacks这样焊盘和封装一起更新不会出现封装换了但焊盘还是旧形状的错位。如果只想替换一个元器件的封装而不是全板更新直接在PCB里选中器件右键Replace Package Symbol选新封装就完事了。这个方法适合个别元件临时变更封装比如把贴片电阻改成插件电阻或者把连接器从直插改成卧式。6. 避坑实录高频问题与排查思路6.1 尺寸漂移单位不一致的经典翻车现场这个问题我在第2节强调过但因为它太典型了值得再拿出来说一次。症状是Padstack Editor里加载ssm后图形显示正常但尺寸和预期差很多或者放进封装里后焊盘之间距离全乱。排查思路是先看PCB Editor里画Shape时的单位和Padstack Editor里定义焊盘的单位如果一个是mil一个是mm那加载ssm时所有数值都会按单位换算图形被放大或缩小。对策只有一条做异形焊盘全流程从画Shape开始到最后进封装单位统一精度统一。我用的是mil加两位小数这是一般PCB生产工厂最熟悉的精度图纸对接也不容易出错。6.2 Shape无法导入或丢失Shape画好了Export也成功了结果Padstack Editor里加载ssm的时候报错或者加载进来是空的。这种情况八成是Shape本身有问题。最常见的是两个原因一是Shape边界有自相交二是Shape里包含了太多碎小的节点。自相交的检查可以在画Shape的环境里做Shape → Check命令会给出提示。如果检查通过还是导入失败试着把Shape的节点简化一些不必要的细节删掉再用Export重新导出。还有一次我遇到的问题是导出ssm之前Shape还依赖着某个层的一堆其他图形Z-Copy之后原层被删导致导出文件不完整。我的经验是用Z-Copy把Shape独立复制到一个干净的新层再在这个新层上导出能避免很多外部依赖问题。6.3 忘画Place Bound引起的布局假象某些初学者做的封装里没有Place_Bound在PCB布局时整板DRC也查不出重叠问题在小板项目里可能侥幸没出事但一旦板子元器件密集就会在后期出现一堆本可避免的间距错误。为什么异形焊盘封装更容易漏Place Bound因为异形焊盘的轮廓是从焊盘上复制出来的很多人画完丝印就以为完事了完全没有“占位区”的概念。这个问题的好处是修复很简单回到封装编辑器用Z-Copy从焊盘Shape生成一个轮廓Merge后放到Place_Bound_Top层保存再在PCB里Update Symbols就行。6.4 大面积异形焊盘的散热与焊接工艺异形焊盘经常是大面积焊盘大焊盘最大的坑是散热太快手工焊接或者回流焊的时候锡膏被“吸”到地平面造成虚焊。我遇到过一块屏蔽罩焊盘按常规方式全部铺铜连接打样回来一压屏蔽罩焊盘上翘起来一大块就是因为背面大平面散热太快焊料没有完全润湿。解决思路有几个方向。第一在大焊盘上开设散热过孔阵列让焊盘与内层和底层都相连提高连接可靠性。第二在焊盘设计上根据工艺要求适当降低与平面的连接面积比如使用热释放连接或者做格状焊盘。第三和板厂确认回流焊工艺窗口必要时钢网开孔做分段式设计避免一整片锡膏堆积。这些虽然属于工艺范畴但封装设计阶段就要考虑否则等到试产再改焊盘整个库都得跟着动。6.5 团队协作中的库文件管理最后聊聊团队协作。异形焊盘涉及.ssm、.pad、.dra、.psm四种文件数量比普通封装多不少非常容易在共享过程中丢失依赖文件。我见过的情况是A工程师做好的异形焊盘封装发给B工程师打开B电脑上直接报“找不到shape symbol”因为B的库路径里没有对应的.ssm文件。所以做异形焊盘封装必须把ssm、pad、dra、psm放到同一个共享目录下并且路径统一配置。更稳的做法是用版本管理工具统一管理库文件每次修改都留历史记录避免多人同时覆盖同一个焊盘文件。还有一个小细节ssm文件命名里写清楚版本号比如加了R30圆角就在文件名里体现改了小版本加V2这样哪怕文件被覆盖了也能通过文件名回溯出改动历史。我自己做异形焊盘到现在最大的感受是异形焊盘不是画得越复杂越好而是用最简单的Shape组合出最符合制造要求的轮廓。每次动手前先想清楚这个焊盘要解决什么问题——是避让、是散热、还是接地再决定要不要用异形方案。能把普通焊盘解决的事绝不上异形真到非上不可的时候Shape → ssm → Padstack → Package Symbol这条链路每一步都按规范走后面打样和生产就会一路顺畅。
返回列表