☰
Allegro封装制作全流程:从焊盘设计到0402实例详解
2026/10/7 1:40:33 网站建设 项目流程

做Allegro封装这件事,很多画板子画了两三年的人都不见得愿意碰。网上库一大把,随手down一个0402好像也能用,但真到了板厂反馈“焊盘尺寸偏小”“丝印盖盘”的时候,你才知道问题的源头往往就在库里。这篇笔记以0402贴片电阻电容封装为例,把Allegro建封装的完整链路走一遍:从焊盘Padstack到Package Symbol,从尺寸计算到库路径配置,全流程拆开讲。0402虽然是最小的常用阻容封装之一,但它覆盖了Allegro建封装的所有核心动作——建焊盘、放引脚、画丝印、定位号、定place bound。把这套流程吃透,0603、0805、1206无非是改尺寸的事,SOT23、QFN这类封装也能顺着同样的思路往下推。

1. 建封装前的思路整理:Allegro封装体系与设计规划

1.1 焊盘、封装与符号的关系

Cadence这套工具链里,“封装”这个词其实对应好几层东西,新手经常混在一起找不着北。

原理图库里那个叫逻辑符号(olb文件),它只负责表达“这个元件有几个引脚、怎么连”,不管引脚长什么样。PCB里实际焊在板子上的那个东西叫Package Symbol(psm文件),它负责定义“焊盘放在什么位置、丝印画多宽、装配层长什么样”。而每一个引脚的铜皮、阻焊、钢网细节,又是由独立的Padstack文件(.pad)来定义,pad不归psm管,它是被psm“引用”的。

很多刚接触Allegro的人最容易犯的错就是:打开PCB Editor直接画线画框,画了半天发现保存不了、调用不了,就是因为没建pad文件。Allegro的封装是“先有焊盘,后有封装”的,焊盘是零件,封装是装配图。这个顺序一旦搞反,后面全是坑。

1.2 为什么拿0402做第一个实例

封装种类很多,直插、贴片、BGA、连接器……每一种都有各自的脾气。但0402这个封装特别适合做入门实例,原因就三条:

第一,它是标准二焊盘元件的典型代表,结构极简,没有异形焊盘、没有热焊盘、没有盲埋孔,避开了所有容易让人分心的干扰项。第二,它尺寸小,尺寸计算必须精确到0.01mm量级,能逼着你养成“查datasheet、按标准算参数”的好习惯。第三,0402是目前量产板上用量最大的阻容封装之一,练完直接能用在工作里,不白练。

另外说一句,“标贴封装”其实就是贴片封装/SMD封装的叫法,有些工厂老师傅习惯叫“标贴”“贴片”,都是一个意思。0402这两个数字是英制命名,元件本体尺寸是1.0mm×0.5mm,这个转换关系后面会细说。

2. 0402封装的尺寸设计与参数确定

2.1 先查datasheet,再参考IPC标准

建封装最忌讳上来就画。封装尺寸不是拍脑袋拍出来的,第一手数据一定来自元件datasheet里的Package Dimensions章节。

0402贴片电阻电容的本体尺寸通常是1.0mm×0.5mm×0.35mm(长×宽×厚),注意这个1.0mm×0.5mm是公制1005的别名,而“0402”是英制表示法,指0.04英寸×0.02英寸,换算下来正好约1.0mm×0.5mm。很多新手在这被绕晕,其实记住一句话即可:0402的元件体就是1.0mm长、0.5mm宽。

拿到datasheet里的本体尺寸后,焊盘尺寸怎么定?行业里常用的是IPC-7351系列标准,里面有不同封装密度等级对应的推荐焊盘尺寸。不过标准是死的,工程是活的,大多数公司都有自己的封装设计规范,在IPC基础上再按工艺能力微调。如果你所在公司没有现成规范,下面这组参数是经过实践验证的通用方案,可以直接作为起步值。

2.2 焊盘尺寸、中心距与阻焊、钢网参数

焊盘设计的核心逻辑是保证三个方向都“吃得住”:长度方向要有足够余量让元件端头落在焊盘上,宽度方向要比元件端头略宽,两个焊盘中间的gap又不能太小,否则焊接时容易桥连。

以0402本体1.0mm×0.5mm为基准,我常用的推荐值如下:

参数推荐值说明
元件本体长1.0mm来自datasheet
元件本体宽0.5mm来自datasheet
焊盘长度(沿元件长轴)0.75mm焊盘X方向尺寸
焊盘宽度(沿元件短轴)0.60mm焊盘Y方向尺寸
焊盘中心距1.0mm两个焊盘中心间距
焊盘内边距gap0.25mm中心距1.0减焊盘长0.75
阻焊开窗(SOLDERMASK)0.85mm×0.70mm比焊盘单边大0.05mm
钢网开窗(PASTEMASK)0.75mm×0.60mm与焊盘等大,可酌情缩小

这里解释一下计算过程。焊盘内边距gap = 中心距 - 焊盘长度 = 1.0 - 0.75 = 0.25mm。这个值对0402来说是合理的,0201封装的gap甚至只有0.15mm左右。如果你希望gap留到0.3mm,中心距就取1.05mm,焊盘坐标变为±0.525mm,同样可行。封装参数本身在IPC范围内就有弹性,关键是全公司统一标准,别这个封装用1.0、那个封装用1.05,最后文件管理容易乱。

阻焊层为什么要比焊盘大?因为阻焊就是绿油开窗,开窗比焊盘小的话,焊盘边缘会被绿油盖住一部分,焊接面积减小,还可能因为绿油上锡导致“锡珠”。常规做法是单边扩大0.05~0.1mm,我习惯取0.05mm。钢网层是SMT贴片时刷锡膏用的开口,一般等于焊盘尺寸;有些厂家为了抑制“立碑”或“锡珠”,会把钢网做内切缩小处理,比如改成焊盘的95%,这个属于工艺优化,基础封装先按等大处理即可。

2.3 丝印、装配层与place bound怎么定

焊盘之外,封装还需要三层辅助信息:丝印层、装配层、布局边界。

丝印层(Silkscreen_Top)是印在PCB表面的白框,作用是告诉贴片机操作员和维修人员“这个元件该放在哪”。0402尺寸太小,丝印框不需要把整个元件包死,我的做法是画一个2.0mm×1.1mm的中空矩形,线宽不小于0.127mm(5mil),否则板厂丝印工艺可能印不出来。板子密度高的时候,也可以只画两条竖线标记元件两端,进一步节省空间,这在手机板、模块板上很常见。不过作为标准库封装,建议保留完整矩形框,通用性更强。

装配层(Assembly_Top)反映的是元件本体的真实外形,尺寸就是datasheet里的1.0mm×0.5mm。装配层不出现在最终PCB丝印上,它主要给装配图和贴片编程做参考,所以一定要按真实尺寸画,不能像丝印那样随意外扩。

place bound(Place_Bound_Top)是放置边界,用于DRC检查时判断元件之间有没有重叠碰撞,以及和器件高度有关。0402的place bound取1.9mm×1.1mm,要能覆盖焊盘和元件本体并留出一定余量。这层需要在“Add→Shape”中画成一个矩形Shape,不是用Line画线条。

3. 实操第一步:制作0402焊盘

3.1 打开Padstack Editor与新建焊盘

Allegro 16.6和17.x里,Padstack Editor的入口不太一样。16.6是在开始菜单里单独找Padstack Editor;17.2及以后版本,它被收进了PCB Editor Utilities里,也可以在PCB Editor界面通过Tools→Padstack→Edit Padstack来打开。

打开后执行File→New,会弹出一个新建焊盘对话框。需要注意两个选项:Type选择Single;Start里如果没有明确的模板要求,直接用默认的Generic或SMD模板都行。单位这边,如果对话框默认显示的是Mils,记得切换成Millimeter,精度设置到3位小数,也就是0.001mm。Allegro的单位设置是写在设计文件里的,后面建封装文件也要保持同样的单位,否则做出来的尺寸会非常混乱。

如果手头是旧版本,打开Padstack Editor后发现界面里没有单位下拉框,可以先在PCB Editor里把Design Parameter Editor的单位改了,或者直接在Padstack Editor顶部菜单栏的Setup→Design Parameter Editor里调整。

3.2 设置各层形状与尺寸

新建焊盘之后,左侧会列出很多层:Begin Layer、Default Internal、End Layer、SolderMask_Top、PasteMask_Top、FilmMask等。对SMD顶层焊盘来说,只需要关心四层:

层名形状WidthHeight用途
Begin LayerRectangle0.75mm0.60mm顶层铜皮,实际焊盘
Default Internal留空--SMD不需要内层连接
End Layer留空--底层铜皮,SMD不用
SolderMask_TopRectangle0.85mm0.70mm阻焊开窗
PasteMask_TopRectangle0.75mm0.60mm钢网开窗

这里有一个阿尔法级别的细节:Allegro的Padstack Editor里,Width指的是X轴方向的尺寸,Height指的是Y轴方向的尺寸。0402元件默认水平放置,两个焊盘分布在左右两侧,所以焊盘沿X方向的那条边是“焊盘长度”0.75mm,沿Y方向的边是“焊盘宽度”0.60mm。如果填反了,焊盘会变成竖着的,放出来的封装方向就会是歪的。

Flash层需要不需要?不需要。Flash焊盘是通孔元件或过孔在内层做热焊盘连接用的,SMD焊盘完全不经过内层,不存在热焊盘需求,填了反而是多余。

还有一点,Begin Layer里的Shape类型选择Rectangle矩形,不要选Obround或Circle。0402阻容封装用矩形焊盘最合适,既能保证焊接面积,又方便画阻焊开窗。用Obround的也有,但可制造性和焊接一致性上矩形更稳。

3.3 保存焊盘与命名规范

检查一遍所有参数无误后,执行File→Save As,把焊盘保存到你的封装库目录里。

命名这件事,看着小,实际上很影响后面几十个封装的维护效率。我见过有的人命名叫PAD1、PAD2,过了半年自己都分不清这个焊盘是干什么的。常用的命名规则是“封装名_尺寸_方向_用途”的组合,比如:

P0402_075X060_T

拆解一下:P0402表示用于0402封装,075X060表示焊盘尺寸0.75mm×0.60mm,T表示Top层SMD焊盘。如果你在公司里建库,最好提前和同事对一套统一的命名规则,因为焊盘文件是公共资源,一个焊盘可能被好几个封装调用,命名不清晰后面全乱。

保存路径也建议固定在一个总库目录下,后面建封装、在PCB里调用都要用到,路径换来换去很容易出现“找不到焊盘”的报错。

4. 实操第二步:创建Package Symbol封装

4.1 新建封装文件并设置单位

在PCB Editor里执行File→New,Drawing Type选择Package Symbol,File Name填C0402(也可以叫R0402,根据用途是电容还是电阻来定),路径选择你的库目录,点击OK进入封装编辑界面。

进入界面后第一件事不是画东西,而是统一单位。执行Setup→Design Parameter Editor,在Units选项卡里把尺寸单位调整为Millimeter,DPS(小数位数)设为3。Allegro默认单位是Mils,如果新手忘了改,直接用默认单位画,画出来的封装在导入PCB时会因为单位不一致出现几倍的尺寸偏差,这种问题排查起来非常头疼。

4.2 放置两个焊盘

封装编辑器里放置焊盘用的是Layout→Pins(工具栏上一般有个“Add Pin”按钮)。点击之后,右侧Options面板会列出当前库路径下所有可用的焊盘,找到刚才保存的P0402_075X060_T并选中。

放置焊盘的关键在于输入精确坐标。Allegro支持在命令行直接输入“x x坐标 y坐标”来定位点,比用鼠标点准得多。

第一个焊盘,命令行输入:

x -0.5 0

回车后,系统会提示输入Pin number(引脚编号),输入1,回车确认。

第二个焊盘,继续输入:

x 0.5 0

回车,输入引脚编号2,回车。

看到两个焊盘以原点为中心对称分布,右键选择Done完成放置。

为什么第一个焊盘在x=-0.5、第二个在x=0.5?因为焊盘中心距是1.0mm,左右各0.5mm,这样焊盘对称落在坐标原点两侧,原点正好是元件中心。焊盘长为0.75mm,因此两个焊盘实际铜皮之间的间隔就是1.0减0.75等于0.25mm。

如果你的Options面板里没有出现焊盘列表,八成是库路径没有配置好。这个问题我放在后面第5章详细讲。

4.3 画丝印、装配层、位号与place bound

放置完焊盘,封装有了“骨头”,接下来画“肉”——丝印层和装配层。

先画丝印层。执行Add→Line,在Options面板里设置Active Class为Package Geometry,Active Subclass为Silkscreen_Top,Line width设置为0.127mm。画一个中空矩形,命令行依次输入:

x -1.0 -0.55 x 1.0 -0.55 x 1.0 0.55 x -1.0 0.55

右键选择Close(也可以直接输入x -1.0 -0.55闭合),一个2.0mm×1.1mm的丝印框就画好了。

注意一个细节:丝印一定要用Line来画,不能顺手用Add→Rectangle或Shape去画。用Shape画的矩形在Allegro里会被当成一块实心填充区域,在丝印层上就是一大坨白油,板厂看到这种东西头都大了。封装丝印全部用Line绘制,这是基本功。

再画装配层。同样用Add→Line,把Active Class/Subclass切到Package Geometry/Assembly_Top,Line width可以设细一点,0.1mm左右,按元件本体的真实尺寸1.0mm×0.5mm画一个矩形:

x -0.5 -0.25 x 0.5 -0.25 x 0.5 0.25 x -0.5 0.25

闭合即可。

然后放位号。执行Add→Text,Options面板里Class选择Ref Des,Subclass选择Silkscreen_Top,Text block选择一个高度0.6mm左右的值,在封装的右侧或者左侧空白处点一下,Allegro会自动放置一个默认的位号文本(通常是REF或U*)。位号的取值一般在PCB布局阶段再修改,封装里只需要保证“有位号、能显示”即可。

最后画place bound。执行Add→Shape→Rectangle,Options面板里Class选择Package Geometry,Subclass选择Place_Bound_Top,命令行输入:

x -0.95 -0.55 x 0.95 0.55

这样就画出一个1.9mm×1.1mm的放置边界。关于高度属性,一些公司会在place bound的shape属性里加上PACKAGE_HEIGHT的约束,用于3D和DRC高度检查;如果不做3D避让,这步可以跳过,不影响基本使用。

4.4 保存并更新应用

所有元素都画完后,执行File→Save或者File→Save As,保存类型是Package Symbol(*.psm),命名C0402,保存到库目录。

保存时如果系统提示“Database has been modified from snapshot”,是正常提醒,不是错误。如果保存失败,检查一下文件的只读属性以及当前用户有没有目录写入权限,这个问题在共享库目录上特别常见。

至此,一个完整的0402封装的psm文件就建好了。

5. 封装入库、调用与更新

5.1 库路径配置

封装文件建好以后,怎么让PCB工程找到它?Allegro靠的是库路径配置。

在PCB Editor里执行Setup→User Preferences,打开Preferences对话框,找到Design Paths→Library,里面有几项关键路径:

路径项作用对应文件
padpath焊盘文件搜索路径.pad
psmpath封装符号搜索路径.psm

把刚才保存焊盘和封装文件的总库目录分别填到这两个路径里,记得每行一个路径,多个路径之间换行分隔。配置完保存后,Allegro扫描库时就能看到你新建的C0402封装了。

5.2 在PCB中调用封装

在PCB编辑界面执行Place→Manually(快捷菜单里也有,16.6版本叫Placement List),在弹出的对话框左侧勾选Advanced Settings里的Library选项,然后在Components列表里找到C0402,就能把它放进板子里了。

如果在列表里找不到C0402,优先排查两件事:一是psmpath里有没有指向正确的目录;二是封装文件是不是真的以.psm后缀保存到了那个目录。很多时候是文件保存在其他目录,psmpath没包含,导致Allegro扫不到。

还有一个常见现象:焊盘也放在库目录里,但Place时提示找不到焊盘P0402_075X060_T。这同样是padpath没配置好。记住,Allegro在读取psm文件时,会根据psm里记录的焊盘引用去padpath里找对应的.pad文件,两条路径缺一不可。

5.3 修改封装后的更新流程

封装建好之后,进PCB之前发现丝印框太小、或者焊盘尺寸要改,怎么更新?

如果是改焊盘尺寸,先改焊盘文件本身(用Padstack Editor打开.pad修改保存),然后在PCB Editor里执行Tools→Padstack→Modify Design Padstack,选择旧的焊盘并替换成新的。如果是改封装文件,直接在PCB Editor里打开C0402.psm修改并保存,再回到PCB工程执行Place→Update Symbols,在Package symbols列表里勾选C0402,点Refresh即可批量更新板上所有使用该封装的器件。

更新的时候有一个隐藏坑:Allegro的Update Symbols只能更新封装里Draw层的内容(丝印、装配层、place bound等),对于引脚位置和焊盘尺寸的修改,很多时候需要先把PCB上已经放置的元件删掉再重新放置,否则可能出现更新不彻底的情况。我在工作中养成的习惯是:凡是牵涉到焊盘尺寸、引脚位置这类“基础结构”的修改,直接删掉板上所有该封装的器件重新摆放,避免留下旧数据。

6. 常见问题与排错技巧实录

6.1 常见问题速查表

问题现象可能原因解决方法
Add Pin时找不到焊盘padpath或psmpath未配置Setup→User Preferences→Design Paths→Library里添加库目录
焊盘放完跑到很远的位置命令行输入格式错误确保输入的是“x -0.5 0”,x和坐标之间要有空格
保存psm时报文件只读文件属性或目录权限问题去掉只读属性,或赋予当前用户写权限
封装打开后看不到焊盘Color Visibility中对应层被隐藏打开Color Dialog,勾选Pin、Etch Top、PAD等层
焊盘方向和预期相反(竖起来了)Padstack Editor里Width/Height填反Width对应X方向,Height对应Y方向
放置多个焊盘时引脚编号连续不对Options面板的Pin number没有逐个指定每放一个焊盘前,在Options里确认当前Pin number
封装里有丝印覆盖焊盘丝印框尺寸过小或位置不对丝印框要围绕焊盘外围,中间不要压在焊盘铜皮上
板子上找不到封装的place boundShape没有画在Place_Bound_Top层检查Active Class/Subclass设置是否在Package Geometry/Place_Bound_Top

这里尤其要提一下“看不到焊盘”的问题。新手容易慌,以为焊盘没建好,其实很多时候就是Color Visibility里某些层没打开。执行Display→Color/Visibility,在全局开关里把所有层点亮,或者在左侧的图层管理器里勾选Pins、Etch Top、SolderMask等层,焊盘就显示出来了。Allegro的显示逻辑是“层勾选了才显示”,这个机制和很多工具不同,需要适应。

6.2 个人经验几条

建封装这件事,做了几年之后回头看,有几个体会特别深。

第一个体会是“参数标准化比参数本身更重要”。0402焊盘做0.6mm还是0.65mm宽,其实板厂都能做,真正决定工作质量的是整个库的一致性。今天这个封装gap取0.25,明天那个封装gap取0.3,库用久了会出现各种诡异差异。所以建库之前,先花半天把规范定下来:gap统一取多少、阻焊单边扩多少、丝印线宽用多少、命名规则长什么样。规范定完,后面就是机械劳动。

第二个体会是“库文件一定要纳入版本管理”。焊盘文件和封装文件都是文本型或数据库型的文件,完全可以用Git或SVN来管理。版本管理的好处是每次修改都有记录,哪天改出一个问题,能快速对比回滚。我见过太多团队封装库散落在个人电脑里,一旦同事离职,一批封装跟着消失,这种损失比画错一根线大多了。

第三个体会是“最容易被忽略的层是Assembly层”。很多人画封装只画焊盘和丝印,装配层空着,短期看没问题,一旦送装配厂做SMT编程或者出装配图,就发现少了信息。装配层虽然不参与电气连接,但它是沟通设计和生产的桥梁,不要省。

结尾一点延伸

最后再说一个和0402相关的经验。很多人建完第一个封装之后,会犯一个通病:只建自己当前板子需要的那一个,不用了就不管了。我建议你建完0402后,马上把0603、0805、1206也一起建出来,因为它们之间的差异只有焊盘尺寸和丝印尺寸,其余流程完全一样。一次性批量做完,你会明显感受到封装参数模板化的威力——所有阻容封装用同一套gap规则、同一套命名规范、同一套线宽标准,后续建QFN、SOP这类复杂封装时,至少不用回头改基础库。我最早学Allegro建封装时,也曾在Add Pin那个环节卡了一下午,后来发现只是库路径没配好。希望这篇笔记能让你绕过这些弯,直接把时间花在真正重要的尺寸设计和规范制定上。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询