ARTICLE DETAIL

资讯详情

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

Cadence Allegro 17.4 PCB封装制作全流程:从焊盘到丝印实战详解

Cadence Allegro 17.4 PCB封装制作全流程:从焊盘到丝印实战详解 1. 为什么封装这一步直接决定你后面的板子能不能画得下去先把这个话题摆到桌面上很多刚接触Cadence 17.4 Allegro的工程师最容易犯的一个共同错误就是急着去画原理图、摆器件、走线结果到了布局阶段才发现——库里面要么找不到自己需要的封装要么找到的封装焊盘尺寸、丝印方向、装配层信息全是乱的最后只能一边画板一边改封装改到半夜还容易出一堆低级错误。我自己早年也走过这段弯路。那时候用别的EDA工具封装库相对“傻瓜化”点了就生成不太需要关心底层的焊盘结构。换了Allegro之后第一反应是“这东西怎么这么麻烦”一个封装要从焊盘开始一个个建Padstack Editor、Package Symbol、Assembly、Silkscreen、Place_Bound……一层层弄下来头都是大的。但等我真的把一套完整的封装制作流程跑通之后回头看才发现Allegro这种“把每一步拆开、交给你自己控制”的设计哲学其实才是保证封装质量最可靠的方式。这篇教程就是把我用Cadence 17.4 从零开始制作一个完整PCB封装的完整过程一步一步拆给你看。从打开Padstack Editor创建焊盘到Package Symbol里画封装本体再到丝印、装配层、Place_Bound、位号、栅格点、高度信息最后到如何检查、保存、调用全部走一遍。不管你是刚入门的学生还是从其他工具转过来、被Allegro的封装流程折磨过几天的工程师这篇都适合你。我会把每个菜单在哪里、每个参数为什么这么填、哪些坑是我实际踩过的都尽量说清楚。需要先说明一点不同芯片的封装类型直插、表贴、BGA、QFN、异形焊盘等在细节上会有差异但底层的制作逻辑是完全一致的。你只要把一套标准表贴封装做透了其他类型的封装无非是在这个框架上做参数调整和地方性变通而已。2. 动手之前先把焊盘这件事彻底想明白2.1 焊盘不是“一个金属块”而是一组图层的集合在Allegro里面焊盘Pad和封装Symbol是两套完全独立的文件体系。焊盘文件以.pad结尾封装文件以.dra和.psm结尾。很多新手一上来就懵就是因为搞不清楚这两者的关系。我先打个比方如果把PCB封装比作一栋房子的户型图那焊盘就是每一个房间的门窗规格。门窗规格决定了你未来能不能顺利装上门窗、家具能不能搬进去焊盘规格则决定了元器件引脚和PCB铜箔之间能不能形成可靠的电气连接和机械连接。Allegro为什么强制你先做焊盘再做封装因为一个封装是由多个焊盘组合而成的焊盘做错了封装就是空中楼阁。一个完整的表贴焊盘在Allegro里通常需要定义以下关键图层BEGIN LAYER顶层焊盘也就是你实际看得见、摸得着的那个金属焊盘对应PCB顶层铜箔。SOLDERMASK_TOP顶层阻焊开窗也就是绿油或其他颜色阻焊油开口的大小通常比焊盘本身大一点点确保焊盘不被绿油覆盖。PASTEMASK_TOP顶层钢网层用于SMT贴片时锡膏印刷的开窗通常和焊盘等大或略小。SOLDERMASK_BOTTOM如果是通孔或底层焊盘才需要底层阻焊开窗。对于通孔焊盘还有DRILL钻孔层、FLASH热焊盘等这些需要根据孔径和连接方式单独设置。很多新手会问为什么BEGIN LAYER和SOLDERMASK_TOP的尺寸不一样我在实际项目里见过有人把这两个层的尺寸建得一模一样结果板厂生产时因为对位公差绿油盖住了焊盘边缘贴片后虚焊率明显上升。常规做法是阻焊开窗比焊盘每边大0.05mm到0.1mm保证有足够余量。当然如果是细间距器件阻焊桥太窄时也可以选择按11开窗甚至不开阻焊桥但这需要和板厂确认工艺能力不能自己想当然。2.2 Padstack Editor界面的几个关键参数最好一次设对在Cadence 17.4中打开Padstack Editor的路径是开始菜单→Cadence→Release 17.4-2019→PCB Editor Utilities→Padstack Editor。也可以在Allegro PCB Editor里直接输入命令padstack_edit或者在Setup→User Preferences里绑定快捷键。我个人习惯在Allegro里调用因为可以边看封装边改焊盘不用来回切换窗口。创建新焊盘时File→New弹出来一个选择界面注意这里有三个选项Padstack普通的焊盘文件后缀.pad。Flash symbol热焊盘符号后缀.fsm是负片层使用的多在电源层、地层大面积覆铜时使用日常表贴封装用不到但通孔器件做散热焊盘时可能会用到。Symbol这个是给机械焊盘用的很少用到。选择Padstack输入文件名比如我要做一个0805贴片电阻的焊盘命名为R0805_60x90含义是焊盘尺寸0.6mm x 0.9mm具体命名规则可以根据公司规范来。接下来进入参数设置界面这里我挑几个最容易出错的地方详细讲Layer选项卡里的参数参数项推荐值/做法为什么Type选择Through通孔或Blind/Buried盲埋孔或Single表贴表贴选择SingleBEGIN LAYER Geometry选Rectangle、Circle、Oval等常用矩形或圆形BEGIN LAYER Width/Height填焊盘实际尺寸单位建议用mm先确认左下角单位设置SOLDERMASK_TOP比BEGIN LAYER每边大0.05-0.1mm防阻焊覆盖焊盘边缘PASTEMASK_TOP与BEGIN LAYER等大或小0.025mm钢网开窗略小于焊盘可减少锡珠Drill/Slot仅在通孔焊盘出现通孔焊盘的钻孔直径一般设置为元件引脚直径0.2~0.3mm。比如一个0.8mm引脚的直插电阻钻孔可以设1.0mm到1.1mm。孔径太大焊接时焊锡容易流走孔壁铜厚也会影响可靠性孔径太小引脚插不进去强行插还会损坏焊盘或引脚。单位问题我单独拎出来说Allegro默认单位可能显示的是mil或micron新建焊盘时在Setup→Design Parameter Editor里把Display单位改成mm不然你看到0.6还以为是毫米实际是0.6mil那就差出一个数量级了。我见过不止一次有工程师把焊盘尺寸输错三个数量级画出来的封装在PCB上小到看不见还以为是软件显示问题查了半天才发现是单位错了。2.3 热焊盘Thermal Relief和反焊盘Anti Pad到底要不要填这个知识点主要针对通孔焊盘和过孔但做封装时也可能会用到这里顺便说清楚。在负片层电源层、地层通常画成负片铜箔是默认保留的、走线是“挖掉”的。焊盘连接到负片铜箔时如果你做的是实心连接大面积铜箔会把焊盘的热量全部导走焊接时温度上不来就会出现冷焊。所以要在负片层上做“花焊盘”也就是热焊盘——焊盘和铜箔之间通过几根细的连接筋相连既保证电气连接又减少散热面积。在Padstack Editor里对应的就是FLASH层。你需要先在Padstack Editor里创建一个Flash symbol后缀.fsm设置内径、外径、连接筋数量通常是4个夹角45度然后在通孔焊盘的FLASH层里去调用它。如果这里不填负片层上焊盘和铜箔的连接关系就是断开的或者被默认的空心圆环隔开最终光绘出来电源层在这个焊盘附近就是孤立的电气上就不通了。我做过的很多项目中直插电解电容、变压器引脚这类大电流通孔器件我都会给它们在电源/地层单独设计热焊盘。实际操作时Flash symbol的内径需要比钻孔直径大0.2mm左右外径则根据焊盘环宽计算连接筋宽度通常取0.25mm到0.5mm具体取决于电流大小。这一步虽然繁琐但如果你做的是电源板或者涉及到多层板内层电源分割提前把Flash做好后面能省大量返工时间。3. 在Package Symbol里把封装“画”出来这些命令要摸透3.1 新建Package Symbol从单位、栅格到绘图原点焊盘准备就绪后开始画封装本体。打开Allegro PCB EditorFile→New选择类型为Package Symbol.dra文件。注意不要选成Board或Module。进入界面后首先要做的还是设置单位Setup→Design Parameter Editor在Design选项卡里把User Units改成Millimeter精确度Size一般保留小数点后两位或三位。精确度我用3位因为有些器件引脚间距是0.5mm、0.65mm保留两位在某些坐标偏移计算时会出现舍入误差虽然是微米级的但积累起来也够你喝一壶的。接下来是设置栅格GridSetup→Grids把Non-Etch非走线层的X、Y栅格设为0.05mm或0.1mm。画封装时坐标控制非常重要我推荐开启全栅格捕捉Snap to Grid在绘图过程中你可以用右键的Snap Pick to→Grid Point来精确捕捉。如果你习惯用坐标输入可以直接在命令行输入x 10 10这种格式来跳转到指定坐标点这在精确放置引脚时比鼠标点击快得多。绘图原点建议放在封装的中心这样在PCB布局时以原点为参考来旋转、移动封装会非常方便。尤其是做对称封装时以中心为原点左右焊盘坐标天然对称根本不需要计算。3.2 放置焊盘Pin的编号顺序是有讲究的在Package Symbol界面里放置焊盘的命令是Layout→Pins或者在右侧面板直接点Place Pin图标。快捷键默认是P。点击后弹出一个Options窗口里面需要你选择焊盘文件Padstack Selector也就是你刚才做好的.pad文件位号Ref Des说明你放置的是1号引脚、2号引脚等旋转角度数量比如要一次放一排可以填数量和间距这是整个封装制作中最需要细心的一步。引脚编号顺序必须和原理图符号的引脚号一一对应一旦这里错乱导入PCB后网络连接就是乱的。IC类器件尤其要注意1号引脚的位置决定了整个封装的极性方向比如QFP芯片1号引脚在左上角逆时针编号如果放反了芯片转180度引脚全部对不上。放置焊盘时我习惯用坐标方式精确控制。比如做一个SOIC-8封装引脚间距1.27mm两排引脚间距跨距6.0mm那么左右两排的中心坐标分别是X±3.0mmY从-4.445mm到4.445mm8个引脚7个间距。我直接在命令行输入坐标逐点放置每次放置后检查Options窗口里的Pin Number是否正确递增。对于QFN这类底部有大面积散热焊盘的器件散热焊盘通常用编号0Pin 0或者单独的散热焊盘编号如25、49等具体看器件手册怎么定义。Allegro支持一个封装里有不同形状、不同尺寸的焊盘这点不用担心。放置完焊盘后用Layout→Pins的Options窗口里那个“Check”按钮有的版本叫Done前的预览可以快速查看每个焊盘的坐标和编号。这里我教你一个小技巧先用Tools→Report→Pins报告一下生成一个当前封装的引脚列表里面有每个引脚的编号、坐标、焊盘名称。把这个报告和芯片手册里的引脚图挨个对照一遍比你肉眼在屏幕上数要可靠得多。3.3 封装本体轮廓画的是“器件占位面积”不是“3D模型”画完焊盘接下来画封装的外框轮廓。这里用的命令是Add→Rectangle、Add→Line或者Add→Cline。注意画在不同图层上的线含义完全不同Assembly Top装配层是给贴片机看的器件轮廓也用于装配图和文件输出通常画在器件本体的边缘比实物略大0.1mm左右线条宽度可以用0.127mm5mil左右。Silkscreen Top丝印层是给板厂印在PCB表面的白色丝印线是给维修、焊接人员看的通常画在器件本体外缘再往外扩0.2mm左右线宽0.15mm到0.2mm6~8mil需要确保丝印不会被焊盘吃掉。Place_Bound Top占位边界是给布局布线用的用于定义这个器件在板上占用的空间范围包括器件本体、引脚和可能有的散热区域。这个边界画对了Allegro的DRC才能正确检查器件之间是否打架。Place_Bound的尺寸比Assembly层再大一圈通常每边外扩0.5mm到1mm具体根据器件类型和工艺要求来。用通俗的话来理解Assembly层是“器件的真实身材”Silkscreen是“给丝印机画的站位示意”Place_Bound是“给布局工具画的一堵隐形的墙”。画丝印时还有几个容易被忽视的细节。比如电容、二极管这类有极性标识的器件需要在丝印层上加一个极性标记一个圆点或一条粗线。又比如QFN、BGA这类封装1号引脚附近一定要画一个明显的圆点或斜角标记方便焊接后人工检查方向。很多工程师画到这里嫌麻烦随便画个方框就算完事但在实际维修和调试时这个标记能帮大忙。3.4 位号、高度、器件型号这些“看不见的信息”同样重要封装不只是图形它还是一组数据的集合。在Package Symbol里你还需要加上Ref Des位号就是U1、R1、C1这些。放置时用Layout→Labels→RefDes选择Silkscreen Top和Assembly Top两个图层都要放置装配层和丝印层的位号位置可以相同也可以分开调整。位号的字体大小丝印层建议字高0.6mm到1mm根据器件大小定装配层可以稍大比如1.2mm。Device Name器件型号比如“ATMEGA328P-AU”、“RC0805FR-0710KL”放在Assembly Top层。这个信息主要是给BOM物料清单和信息管理系统用的虽然在图形上表现得不明显但在输出制造文件时它会被自动导出到BOM中。如果这一步漏了后期整理BOM时你就要手工一个一个去补别问我怎么知道的。Height高度在Setup→Areas→Height里设置。器件的高度信息对于那些需要计算3D空间干涉的结构设计至关重要比如外壳高度只有10mm板上的器件高度却设了12mm结构检查时就会报警。设置高度时要给这个封装画一个高度边界通常直接选中Place_Bound的外框在属性里填上高度值比如1.6mm。Allegro还支持更多自定义属性比如Power Dissipation、Pin Delay等这些在一般的封装制作中不需要全部填但器件型号、高度、位号这三个强烈建议每次做封装都填完整养成习惯后你后面建BOM、出装配图、做结构干涉检查都会轻松很多。4. 从焊盘到丝印的完整操作流程以SOT-23封装为例每一步都给你看清楚理论讲得再多不如实际操作一遍。我这里用一个最典型的SOT-23三极管封装来做示例。为什么选SOT-23因为它小、常用而且包含了三个焊盘和一个散热焊盘部分型号有封装结构有一定代表性更关键的是SOT-23的丝印极性方向搞错的人特别多借这个例子讲清楚你以后做任何封装都能避开低级错误。4.1 第一步查手册拿数据拿到一颗SOT-23封装的管子不要凭经验脑补尺寸去芯片官网下载它的封装推荐焊盘图Recommended PCB Layout。以一颗常见的MMBT3904为例它的封装数据大致是引脚间距1.90mm中心到中心两排引脚跨距2.40mm中心到中心引脚宽度0.60mm典型焊盘推荐尺寸1.00mm x 1.00mm根据手册推荐焊盘图实际焊盘比引脚宽大方便焊接这些数值在画焊盘和放置引脚时要用到。很多新手的封装画得“约莫差不多”其实是不行的。PCB制造有公差焊接有公差封装尺寸一点偏差贴片时就会出现立碑、虚焊、连锡。数据一定要从手册里来。4.2 第二步做焊盘文件打开Padstack Editor新建一个Single类型的焊盘命名为SOT23_PAD_1x1名字随你但建议带有尺寸信息方便后续查找。BEGIN LAYERShape选RectangleWidth1.00mmHeight1.00mmSOLDERMASK_TOPWidth1.10mmHeight1.10mm每边大0.05mmPASTEMASK_TOPWidth0.95mmHeight0.95mm比焊盘小0.05mm减少锡膏外溢这里注意一个细节对于SOT-23这种引脚间距1.90mm的器件三个焊盘之间的间距足够大阻焊桥完全留得住所以阻焊开窗做大0.05mm没有问题。但如果你做的是引脚间距0.4mm的QFP或0.3mm的BGA阻焊开窗就必须谨慎了。这时我会把SOLDERMASK_TOP设置成和BEGIN LAYER等大甚至需要和板厂确认能否做“焊盘间无阻焊桥”的工艺。所以每一个参数都不是死板的是要根据实际情况灵活调整的。4.3 第三步新建Package Symbol并放置焊盘打开Allegro PCB EditorFile→NewType选Package Symbol文件名SOT23_MMBT3904保存路径放到你的库目录比如C:\cadence_lib\symbols。进入界面后设置单位和栅格。然后在Options里选择焊盘文件SOT23_PAD_1x1开始放置引脚Pin 1坐标-0.95mm, -1.20mmPin 2坐标0mm, -1.20mmPin 3坐标0.95mm, -1.20mm等一下SOT-23是三个引脚在一排但它的实际引脚分布是引脚1、2、3在一边引脚4散热焊盘如果有在另一边或者有的SOT-23三极管的引脚布局是1、2、3在一条边上。不同厂家的定义略有不同所以一定要看手册上的顶视图Top View引脚分配图。这里我用一个典型布局Pin 1在左边-0.95, -1.20Pin 2在中间0, -1.20Pin 3在右边0.95, -1.20另外在对面还有一个散热焊盘如果有的话在坐标0, 1.20。但很多SOT-23封装没有散热焊盘那就只有三个引脚这一点要确认清楚。有的芯片是SOT-23-5、SOT-23-6引脚数量不同但放置逻辑一样按照手册上顶视图中引脚编号的位置逐个放到对应坐标上即可。放置完三个焊盘后我用Tools→Report→Pins来检查引脚列表。看到报告里三个引脚的坐标和编号与手册完全一致我心里就有底了。4.4 第四步画外框、丝印、占位边界焊盘放好后在Options窗口里先把Active Class and Subclass改成Assembly Top用Add→Rectangle在两个焊盘的外围画一个矩形尺寸大约为2.20mm x 2.60mm把本体和引脚都包进去按手册本体尺寸1.30mm x 2.20mm再加上引脚突出部分换算。Silkscreen Top用Add→Line画一个比Assembly大一圈的矩形框大概2.40mm x 2.80mm。线宽0.15mm线间距注意不要碰到焊盘。如果丝印线和焊盘间距小于0.2mm板厂丝印时可能会把油墨印到焊盘上影响焊接。Allegro里你可以通过Dim当前图层来判断间距不用肉眼猜。Place_Bound Top用Add→Rectangle画一个3.20mm x 3.60mm的边界然后选择Setup→Areas→Height选中这个矩形在属性里设置Height为1.20mm看具体管子高度。然后在Silkscreen Top上画一个极性圆点。SOT-23的极性标记通常画在Pin 1附近。如果你把这个标记画错了位置贴片机贴装时可能把管子方向贴反。我之前就吃过这个亏一批板子贴出来整板三极管方向全部反了原因是封装库里的极性标记和芯片手册对不上。从那以后每次画完封装我都会把丝印层单独切出来看一眼确认标记位置和手册一致。4.5 第五步设置位号并保存所有文件Layout→Labels→RefDes选择Silkscreen Top和Assembly Top分别在封装旁边放置位号。放完后选中位号右键→Text Edit可以调整字高和线宽。丝印层位号建议放在器件旁边不要压在器件本体上否则焊接后看不清装配层位号可以放在器件轮廓内因为装配图是给贴片机编程工程师看的不需要和丝印一致。最后File→Save。这里要注意Package Symbol的保存会同时生成两个文件.dra源文件可编辑和.psm调用文件供PCB设计使用。如果你保存后只看到.dra不用慌Allegro会自动在后台生成.psm但如果你改了封装重新保存PCB设计文件里已经调用过这个封装就需要在PCB里用Tools→Padstack→Modify Design Padstack或Place→Update Symbols来刷新封装否则旧封装不会被更新。这个环节很多人会卡住在库里改了封装回到PCB里怎么刷新都看不到变化就是这个原因。5. 封装做完了别急着用先过一遍这些检查项封装做完不是终点而是起点。一个封装的错误如果是在PCB设计阶段发现的改起来还容易要是到了板厂生产、或者SMT贴片时才暴露那就是真金白银的损失。所以每次画完封装我都会形成一个固定的自查清单在这里分享给你。5.1 检查焊盘尺寸和间距是否符合工艺能力焊盘之间的间距Pin to Pin Spacing不能小于PCB制造和贴片工艺的最小要求。以普通FR-4工艺为例焊盘到焊盘的最小间距建议不小于0.2mm如果是BGA焊盘之间的间距建议不小于0.15mm。间距太小阻焊桥做不出来贴片时容易连锡。如何检查Allegro里用Manufacture→Drafting→Drafting或直接运行DRC。在Package Symbol环境下先Setup→Drawing Options把Drawing Type设置成Package然后到Setup→Constraints→Constraint Manager里配置间距规则再运行Tools→Database Check。DRC通过后会生成一个文本报告里面会列出违反间距规则的焊盘对。5.2 确认焊盘编号和原理图符号引脚编号一致这个在前面已经强调过再强调一次用Tools→Report→Pins导出引脚列表和原理图符号的引脚定义一一对照。尤其是有电源引脚、地引脚、NC引脚的IC编号错一个板子通电就冒烟。我在实际项目中见过因为封装引脚号顺序和原理图不一致导致电源和地接反上电瞬间芯片直接烧毁的案例代价非常大。5.3 检查丝印是否“越界”到焊盘上把视图切换到Silkscreen Top图层单独显示肉眼扫一遍。丝印线不能压到焊盘不能压到引脚不能和相邻器件的丝印重叠。对于小封装如0402电阻丝印可以只画边框的一部分或者干脆只画一个极性标记避免丝印线太多、太密反而影响可读性。5.4 3D预览看热模型和干涉Allegro 17.4自带3D预览功能在View→3D View里可以打开。虽然封装库里没有3D模型时它只会显示一个简单的拉伸体但至少可以检查Place_Bound的高度是否合理、器件之间是否有明显的空间冲突。如果公司有Step模型库可以在Setup→Step Package Mapping里关联对应的3D Step文件这样在3D预览时就能看到真实的器件形状对结构干涉检查非常有用。6. 几个实际项目里高频踩坑的问题和解决办法这一节算是我个人经验的“私货”。没有一个封装是“画完就不出事的”下面的坑我都踩过把它们列出来等于提前给你打预防针。6.1 封装名和器件型号不统一导致BOM对不上很多人画封装时随意命名比如“CAP_0805_50V”和“C0805C104K5RACA”混着用结果到了出BOM阶段采购拿着封装名去搜物料搜出来的全是错的。我的建议是封装文件名用“类型_封装名_特征”来命名比如CAP_0805_50V_X7R并在封装内部的Device属性里写上完整型号。这样做的好处是后续输出BOM时可以直接从PCB设计文件里提取器件型号不会因为封装名不规范而漏物料。6.2 引脚编号使用了非数字字符报错找不到原因有工程师在画接插件这类封装时喜欢把地引脚命名为“GND”而不是“4”或“5”结果导入PCB时Allegro报错“对于具有管脚映射的元件无效非数字管脚编号B8”之类的问题。原因很简单Allegro的引脚编号必须是数字有些版本也支持字母但需要额外的映射设置尤其是与其他工具交互时非数字引脚编号会引发不可预料的错误。我自己使用时的做法是所有引脚都用数字编号地引脚用最大数字编号并在原理图符号里也保持同样的编号规则。这样两边一致绝不会出错。如果你遇到已经建好了带字母引脚编号的封装可以用Tools→Padstack→Modify Design Padstack或者直接重建封装来修正不要嫌麻烦。6.3 画异形焊盘如USB座、电源模块的散热焊盘不知道从哪里下手现在很多器件需要异形焊盘比如USB Type-C座的SMT引脚、电源模块底部的大面积散热焊盘、射频器件的开尔文焊盘等。Allegro里画异形焊盘的方法其实也不复杂在Padstack Editor里BEGIN LAYER的Shape除了Rectangle、Circle、Oval外还有一个选项叫“Square”和“Oblong”等但如果你想做的形状更自由比如L形、T形那就需要在Padstack Editor里用Shape→Symbol来编辑一个自定义形状。一个更实用的技巧是对于特别复杂的异形焊盘你可以直接在PCB上画铜皮Add→Cline或Shape然后把它定义为“FIXED”并关联到某个引脚上。但这种方式其实更推荐用Allegro的“Custom Pad”功能实现——你需要先创建一个Shape Symbol.ssm文件然后在Padstack Editor里把这个Shape Symbol作为BEGIN LAYER的形状。我第一次画一个复杂电源模块底部的大面积焊盘时直接在Padstack Editor里画了一个带圆弧缺口的形状然后把它存成Shape Symbol。导入封装后那个异形焊盘和实物完全贴合贴片时没有出现任何问题。这个过程看起来有点绕但其实就是“先画形状再关联到焊盘”。6.4 旧的封装库文件版本太低无法在17.4中编辑如果你的公司之前用的是Allegro 16.6现在升级到17.4打开旧的.dra文件可能会提示版本过低无法编辑或保存。解决办法有两个一个是在16.6环境里把文件导出为较低版本兼容格式然后在17.4中导入另一个是直接用17.4打开旧文件File→Save As转换成17.4格式。需要注意的是17.4默认保存格式已经不是传统十六位编码方式如果你要把封装发给只装了16.6的同事要记得导出为16.6兼容的格式。这个转换功能在哪在Allegro 17.4的File→Export→Legacy。如果你的文件是.psm格式不能直接改后缀打开需要先打开对应的.dra源文件再导出否则会报“不能识别的文件格式”。我在一次外包协作里就吃过这个亏外包工程师用17.4做的封装直接发.psm文件给我我用16.6怎么都打不开反复排查后才发现需要他在那边把.dra导出成16.6版本格式再发过来。所以涉及跨版本协作时文件版本兼容性一定要一开始就问清楚。7. 把封装导入PCB设计这一步做错了前面的活全白干封装做好之后要导入PCB设计才能用。这一步也是新手容易卡住的地方。7.1 路径设置Library路径必须先配好在Allegro PCB Editor里打开Setup→User Preferences在Library组里找到devpath、padpath、psmpath这三个路径分别指向你的封装库目录、焊盘库目录和符号库目录。路径设置不对会怎样你放置器件时会弹窗提示“Cant find padstack xxx.pad”或“Cant find symbol xxx.psm”。很多新手第一反应是封装没做好其实是路径没配好。我建议在公司内部统一一套标准的库路径用环境变量配置这样多人协作时不会出现“我机器上能放他机器上放不了”的问题。7.2 在PCB里放置封装Place→Quickplace还是手动Place如果你是从原理图导入网表NetlistAllegro会自动根据网表把封装调用进来。如果只是单独想放一个封装进去看看效果可以用Place→Manually在Component list里找到你的封装点选放在板上。Quickplace可以一次性把所有器件散落在板框周围适合刚开始布局时使用。但注意Quickplace并不会自动布局它只是把所有器件铺开真正的布局还是你手动调。7.3 更新封装为什么改了封装后PCB里不变这应该是被问到最多次的问题之一我在库里面把封装改了回到PCB板子里发现器件形状还是原来的样子。Allegro的机制是PCB设计文件在调用封装时会把封装数据复制一份进板子文件后续库里的修改并不会自动同步到PCB。你必须执行Place→Update Symbols在弹出的窗口中选中要更新的封装类型Package symbol或者输入封装名称如SOT23_MMBT3904点击Refresh。这样板子里的封装才会被更新替换。还有一个细节Update Symbols之后如果这个器件已经走了一部分线走线铜皮和焊盘的连接关系可能需要重新拉一下。尤其是焊盘尺寸变了之后原来的走线可能不再落在焊盘上DRC会报出一堆错这属于正常情况逐个修正即可。7.4 跨工具导入导出Allegro和PADS之间切换的注意事项许多公司会同时使用Allegro和PADS比如客户那边用Allegro代工厂那边却用PADS或者反过来。网上常有人搜“allegro转pads文件的方法”这里说一下大原则。Allegro本身不能直接导出PADS格式通常的路径是Allegro→DXF或IDF→PADS或者用第三方转换工具。比较实用的办法是在Allegro里File→Export→DXF把板卡导出成DXF文件然后在PADS里Import DXF再把网络关系通过ASCII网表导入。这种方法只能导图形不能导封装库本身所以到PADS后需要重新映射封装。另一个方式是使用中间格式IDF.emn/.emp这种格式可以传递板卡外形、器件位置和封装高度信息常用于结构和EDA工具之间的数据交换。实际操作中跨工具转换往往伴随着封装丢失、焊盘变形、原点偏移等一系列问题所以我的建议是跨工具转换前先和对方确认清楚需要保留哪些信息、使用的版本是什么然后在一份简单的测试板上先转一次验证流程通了再转正式文件。千万不要直接拿正式板子去试否则转坏了连原文件都得重新整理。8. 最后的实操心得把封装库当成资产来经营如果你只是偶尔画一块板子封装怎么做都可以但如果你是研发团队里长期负责建库的工程师或者打算在PCB设计这条路上走下去我真心建议你把封装库当成一项长期经营的资产来对待。具体来说有三点经验值得分享。第一建立自己的封装命名规范并且坚持执行。命名规范包括器件类型、封装尺寸、引脚数量、特殊标识比如是否有散热焊盘、是否是开尔文连接等。命名规范的好处是当你面对一个几百个器件的BOM时你不需要逐个打开封装文件只看名字就能大致判断出这个器件长什么样、能否直接使用。第二每次制作新封装时都要从官方手册中提取数据而不是“参考”别人做的封装。网上流传的封装库很多但没人能保证它们的准确性。我见过一个案例某工程师从网上下载了一个“通用”的ESP8266封装结果那个封装把天线区域的Keepout画错了导致做出来的板子WiFi信号极差。所以哪怕再麻烦也要自己对着手册做一遍至少要把关键尺寸核实清楚。第三尽量把器件的3D模型也关联起来。Allegro 17.4支持Step模型关联很多器件厂商如Texas Instruments、ST、NXP官网都提供Step模型下载。花几分钟把Step模型关联到封装上后面做结构干涉、散热仿真、3D布局预览时获益是巨大的。我见过一些团队布局时只靠2D边界判断结果器件高度冲突到装不进外壳等到开模后才来改板那真是灾难。另外建好的封装一定要在实物上做一次验证。有条件的话把封装文件发给板厂打几片样或者用3D打印按封装尺寸做一个模型和实物芯片比一比。没有条件的话至少把封装打印成11的图纸把芯片放上去看看引脚能不能对齐。这个方法土但非常有效我早期是这样避免过好几次封装尺寸偏差的。写到这里一套完整封装的制作流程基本讲完了。从焊盘的概念、Padstack Editor的参数设置到Package Symbol里的引脚放置、丝印绘制、位号设置再到DRC检查、PCB里的调用和更新每一个环节我都尽量把“为什么这么做”说透了。Cadence Allegro这套工具学习曲线确实陡但它的每一步操作都不是多余的都是为了保证设计质量和可追溯性。现在你跟着这篇教程把一个SOT-23封装完整走一遍再回头去看那些你曾经觉得“怎么这么麻烦”的操作会发现其实一切都是值得的。
返回列表