1. 从零开始理解R0603封装绘制的核心逻辑
搞硬件设计的同行都清楚,封装库就是PCB设计的弹药库。你原理图画得再漂亮,布局布线再讲究,封装建错了,板子回来就是一堆废铜烂铁。R0603这个规格,说大不大说小不小,但它绝对是每个PCB工程师入门封装绘制的第一道坎。我见过太多新手,在Allegro 17.4里折腾半天,焊盘建好了,封装也画完了,结果DRC一跑全是错,要么是焊盘间距不对,要么是丝印压了焊盘,要么是Place_Bound跟实际器件对不上。
R0603到底是个什么东西?简单说,它就是英制尺寸的贴片电阻电容封装,长宽大概是0.06英寸×0.03英寸,换算成公制就是1.6mm×0.8mm。这个规格在消费电子、工业控制、通信设备里用得极其广泛,几乎每个板子上都能找到几十上百个。所以你把R0603的封装吃透了,后面做0402、0805、甚至0201都是同样的套路,只是参数不同而已。
Allegro 17.4这个版本,说实话是Cadence家族里比较稳定的一代。它的PCB Editor和Package Designer配合起来用,建库效率比老版本高不少。但新手最容易犯的错,就是直接打开PCB Editor就开始画,完全没搞清楚Padstack Designer和Package Symbol之间的父子关系。我刚开始学的时候也这样,焊盘建完了不知道存哪,封装画完了不知道焊盘怎么关联,折腾了一整天才搞明白。
这篇文章我打算把R0603封装绘制的完整链路拆开来讲,从焊盘参数的计算依据,到Padstack Designer里的每一层设置,再到Package Symbol里的器件轮廓、丝印、Place_Bound、Assembly层,最后到DRC检查和库文件管理。每个参数我都会告诉你为什么是这个值,而不是随便抄一个教程里的数字。你看完之后,应该能独立完成任意阻容封装的绘制,并且知道怎么验证自己建的封装是对的。
注意:建库之前一定要确认你用的单位制。Allegro默认可能是mil,也可能是mm,新手最容易在这里翻车。R0603的焊盘参数在两种单位下数值完全不同,搞混了做出来的封装直接报废。
2. R0603焊盘参数详解与Padstack Designer实操
2.1 焊盘尺寸的计算依据与行业标准
R0603的焊盘到底该做多大?这个问题网上能搜到几十个版本的答案,有说0.8mm×0.95mm的,有说0.9mm×1.0mm的,还有说0.75mm×0.85mm的。到底哪个对?其实都对,也都不对。因为焊盘尺寸取决于你的工艺能力、器件公差、贴片精度三个因素。
先看器件本身的尺寸。标准的R0603电阻,本体长度是1.6mm±0.1mm,宽度是0.8mm±0.1mm,端头电极的宽度大概是0.3mm±0.1mm。也就是说,器件端头的金属部分,实际覆盖范围在0.2mm到0.4mm之间波动。你的焊盘必须保证在最坏情况下,器件端头能完全落在焊盘上,同时还要留出足够的焊接面积。
行业里常用的计算公式是这样的:焊盘长度 = 器件端头最大宽度 + 贴片精度余量 + 焊接余量。贴片精度一般取0.1mm,焊接余量取0.2mm左右。所以焊盘长度大概是0.4+0.1+0.2=0.7mm。但这只是理论值,实际还要考虑焊盘之间的间距。
焊盘间距怎么定?器件本体长度1.6mm,两端各有一个端头,端头内侧之间的距离大概是1.6-2×0.3=1.0mm。你的两个焊盘内侧边缘之间的距离,必须大于这个值,否则器件放不进去。但也不能太大,太大了焊锡会流到中间导致立碑。一般取1.0mm到1.1mm之间比较稳妥。
综合下来,我常用的R0603焊盘参数是这样的:焊盘宽度0.9mm,焊盘长度0.95mm,两个焊盘中心间距1.65mm。这个参数在大多数PCB厂都能做,贴片良率也很高。当然如果你做的是高密度板,可以适当缩小到0.85mm×0.9mm,中心间距1.6mm,但这时候就要跟你的SMT厂确认他们的贴片精度能不能达到了。
| 参数项 | 推荐值(mm) | 可接受范围(mm) | 说明 |
|---|---|---|---|
| 焊盘宽度 | 0.90 | 0.85~1.00 | 略大于器件宽度0.8mm |
| 焊盘长度 | 0.95 | 0.85~1.05 | 保证足够焊接面积 |
| 焊盘中心间距 | 1.65 | 1.60~1.70 | 匹配器件端头位置 |
| 焊盘内侧间距 | 0.70 | 0.65~0.75 | 防止焊锡短路 |
| 焊盘外侧间距 | 2.60 | 2.55~2.65 | 整体占位尺寸 |
2.2 Padstack Designer中的层设置与参数填写
打开Padstack Designer,第一件事是选单位。我建议用毫米,因为现在大多数器件手册都是公制,换算起来方便。如果你习惯用mil,记住1mm=39.37mil,R0603的焊盘大概是35mil×37mil,中心间距65mil。但说实话,现在还用mil做新设计的,要么是老工程师改不过来,要么是公司强制要求,新手直接上毫米就行。
新建一个Padstack,类型选Surface Mount,因为R0603是贴片器件,不需要钻孔。然后开始设置各层参数。
Begin Layer是顶层焊盘,这是最关键的。Shape选Rectangle,因为矩形焊盘在贴片时定位更准,而且加工简单。Width填0.90,Height填0.95。注意这里的Width是水平方向,Height是垂直方向,别填反了。如果你把焊盘做成了0.95宽0.90高,虽然面积一样,但贴片时器件的旋转方向就受限了,不划算。
Soldermask层是阻焊开窗,这个尺寸要比焊盘大一圈。一般单边大0.05mm到0.1mm,我习惯用0.1mm。所以阻焊开窗的尺寸是1.10mm×1.15mm。为什么要大一圈?因为阻焊油墨在曝光显影时会有一定的收缩和偏移,如果开窗跟焊盘一样大,边缘的焊盘可能被油墨盖住,导致焊接不良。大0.1mm可以保证焊盘完全露出来,同时也不会让相邻焊盘的阻焊桥太窄。
Pastemask层是钢网开窗,这个尺寸一般跟焊盘一样大,或者稍微小一点点。我通常直接用焊盘的尺寸,不做缩放。有些工程师喜欢把钢网开窗缩小到焊盘的90%,说是可以控制锡量防止短路。但R0603这种小器件,锡量本来就不多,再缩小钢网开窗可能导致虚焊。除非你的板子特别密,否则不建议缩。
| 层名 | 形状 | 宽度(mm) | 高度(mm) | 偏移量(mm) |
|---|---|---|---|---|
| Begin Layer | Rectangle | 0.90 | 0.95 | 0 |
| Soldermask Top | Rectangle | 1.10 | 1.15 | 0 |
| Pastemask Top | Rectangle | 0.90 | 0.95 | 0 |
| End Layer | 不设置 | - | - | - |
| Drill | 不设置 | - | - | - |
设置完这些,保存Padstack。命名规则我建议用“SMD_R0603_0R90X0R95”这种格式,SMD表示贴片,R0603是器件规格,后面是焊盘尺寸。这样以后库大了也能一眼看出来是什么。别用“pad1”“pad2”这种名字,过两个月你自己都不记得是什么。
注意:Padstack保存的路径一定要跟你的封装库路径一致,或者在Allegro的库路径设置里把这个目录加进去。否则在Package Symbol里调焊盘的时候会找不到。
2.3 焊盘参数的验证方法与常见误区
焊盘建完了,怎么验证它是对的?最直接的方法是在Padstack Designer里用“Report”功能,把各层参数导出来看一眼。但更靠谱的方法是在Package Symbol里把焊盘放上去之后,用“Measure”工具量一下实际尺寸。
我见过新手犯的一个典型错误:焊盘宽度和高度填反了。比如把0.90填到了Height,0.95填到了Width,结果焊盘变成了横向长条。这种错误在Padstack Designer里看不出来,因为都是矩形,但放到封装里一量就露馅了。所以建完焊盘一定要在封装里实际测量一下。
另一个常见误区是阻焊开窗太大。有人觉得开窗越大越好,焊盘露出来越多越容易焊。但实际上,阻焊开窗太大会导致两个焊盘之间的阻焊桥变窄甚至消失,回流焊的时候焊锡可能从两个焊盘之间流过去,造成短路。R0603的两个焊盘内侧间距只有0.7mm,如果阻焊开窗单边大了0.15mm,那阻焊桥就只剩0.4mm了,这在很多PCB厂已经接近工艺极限了。
还有一个坑是钢网开窗的尺寸。有些教程说钢网开窗要缩小到焊盘的80%,理由是防止锡珠。但R0603的焊盘本来就小,缩小到80%之后面积只有0.68mm×0.72mm,锡膏量可能不够,导致焊接强度不足。我实测下来,钢网开窗跟焊盘1:1是最好的,如果实在担心短路,缩到95%也行,但别缩太多。
3. Package Symbol绘制全流程与关键层设置
3.1 新建封装文件与焊盘放置
打开PCB Editor,选File→New,类型选Package Symbol。命名的时候我建议用“R0603”或者“RES_R0603”,别加太多后缀,否则在原理图里调用的时候名字太长不好找。Drawing Type选Package Symbol,然后设置好库路径。
进去之后第一件事是设置栅格。我习惯用0.05mm的栅格,因为R0603的焊盘间距是1.65mm,0.05mm的栅格能整除,放焊盘的时候容易对齐。如果你用0.1mm的栅格,1.65mm就除不尽,放焊盘的时候会有0.05mm的偏差。虽然0.05mm的偏差在加工时影响不大,但建库的时候最好做到零误差,这样后面改起来才放心。
放焊盘用“Layout→Pins”命令,在Options面板里选刚才建好的Padstack。然后按照焊盘中心间距1.65mm,把两个焊盘放在坐标(-0.825, 0)和(0.825, 0)的位置。为什么是±0.825?因为两个焊盘中心间距1.65mm,对称放置的话每个焊盘中心距离原点就是0.825mm。这样封装的原点就在两个焊盘的正中间,以后在PCB上放置器件的时候,原点就是器件的中心,旋转和移动都很方便。
放完焊盘之后,用“Display→Measure”量一下两个焊盘内侧边缘的距离。应该是1.65-0.95=0.70mm。如果量出来不是0.70,说明焊盘放的位置不对,或者焊盘尺寸填错了。这一步一定要做,我见过太多人焊盘放完了不检查,后面DRC报错才发现间距不对。
3.2 器件轮廓与丝印层的绘制规范
焊盘放好了,接下来画器件轮廓。轮廓画在哪一层?Package Geometry的Place_Bound_Top层。这一层是器件的占位区域,用来做DRC检查的,确保器件之间不会重叠。R0603的本体尺寸是1.6mm×0.8mm,但Place_Bound要稍微大一点,一般单边大0.1mm,所以画一个1.8mm×1.0mm的矩形。
为什么Place_Bound要比本体大?因为器件在贴片的时候会有一定的位置偏差,而且器件本身也有公差。如果Place_Bound跟本体一样大,两个器件紧挨着放的时候,实际贴片可能会撞在一起。大0.1mm可以留出安全余量。但也不能太大,太大了会浪费PCB面积,尤其是高密度板。
丝印层画在Package Geometry的Silkscreen_Top层。丝印的作用是标识器件的位置和方向,方便人工检查。R0603的丝印一般画两条短线,分别在两个焊盘的外侧,或者画一个“C”形或者“U”形的框。我习惯画两条竖线,分别在两个焊盘的外侧边缘,长度跟焊盘宽度差不多,线宽用0.15mm。
丝印不能压在焊盘上,这是铁律。因为丝印是油墨,如果压在焊盘上,焊接的时候油墨会影响焊锡的润湿,导致虚焊。所以丝印跟焊盘之间要留至少0.1mm的间隙。R0603的两个焊盘外侧边缘之间的距离是2.60mm,丝印画在焊盘外侧的话,位置大概在±1.35mm左右,这样跟焊盘边缘有0.05mm的间隙,勉强够用。如果PCB厂工艺一般,建议把丝印再往外挪0.05mm。
| 层名 | 绘制内容 | 尺寸/位置 | 线宽 |
|---|---|---|---|
| Place_Bound_Top | 矩形 | 1.8mm×1.0mm,中心在原点 | 不适用(填充区域) |
| Silkscreen_Top | 两条竖线 | 分别在x=±1.35mm,y从-0.4到0.4 | 0.15mm |
| Assembly_Top | 矩形 | 1.6mm×0.8mm,中心在原点 | 0.10mm |
| Assembly_Top | 两条竖线 | 分别在x=±0.8mm,y从-0.4到0.4 | 0.10mm |
Assembly层是装配层,用来做装配图和生产文档的。这一层画器件的本体轮廓,尺寸就是1.6mm×0.8mm,线宽0.10mm。有些公司还要求在Assembly层标注器件位号和极性,但R0603是电阻电容,没有极性,所以不用标。如果是钽电容或者二极管,就要在Assembly层标出正极或者阴极的位置。
3.3 参考编号与器件值的放置技巧
Reference Designator和Value是封装里必须有的文本。Reference Designator就是器件的位号,比如R1、R2、C1、C2,放在Silkscreen_Top层。Value是器件的值,比如10K、0.1uF,放在Assembly_Top层。
位号的位置很讲究。放得太远,装配图上看不清楚;放得太近,可能跟焊盘或者丝印重叠。我一般把位号放在器件的正上方,y坐标大概在0.8mm左右,字体大小用0.8mm,线宽0.12mm。这样既不会跟焊盘重叠,也不会跟相邻器件的位号打架。
Value放在Assembly_Top层,位置跟位号差不多,但可以稍微小一点,字体用0.6mm。因为Assembly层是给装配图用的,不需要像丝印那么醒目。有些公司要求Value也放在Silkscreen层,但R0603太小了,丝印上放Value会显得很挤,我一般不建议。
注意:位号和Value的文本在放置的时候,一定要用“Layout→Labels→RefDes”和“Layout→Labels→Value”命令,不要用普通的Text命令。因为RefDes和Value是封装的属性,用普通Text画的话,在PCB上调用的时候不会自动替换成实际的位号和值。
4. DRC检查、常见报错与库文件管理
4.1 封装DRC检查的完整流程
封装画完了,别急着保存,先跑一遍DRC。在Package Symbol里,DRC的规则跟PCB设计不太一样,主要检查的是焊盘间距、丝印跟焊盘的重叠、Place_Bound的范围这些。
打开“Tools→Quick Reports→Design Rules Check”,或者直接点工具栏上的DRC按钮。第一次跑的时候可能会报一堆错,别慌,一个个看。最常见的错误是“Silkscreen to Pad Spacing”,就是丝印跟焊盘的距离不够。Allegro默认的规则可能是0.1mm或者0.15mm,如果你的丝印跟焊盘只有0.05mm的间隙,就会报这个错。
怎么解决?要么把丝印往外挪,要么把丝印线宽改细。我一般先把丝印往外挪0.05mm,如果还是报错,就把线宽从0.15mm改成0.12mm。但线宽别改得太细,太细了PCB厂印不出来,一般最小0.10mm。
另一个常见错误是“Place_Bound Overlap”,就是两个器件的Place_Bound重叠了。在封装里这个错误一般不会出现,因为封装里只有一个器件。但如果你在封装里放了多个焊盘或者多个轮廓,可能会报这个错。检查一下Place_Bound的矩形是不是画大了,或者有没有多余的图形。
| 报错类型 | 原因 | 解决方法 |
|---|---|---|
| Silkscreen to Pad Spacing | 丝印跟焊盘距离太近 | 丝印外移或减小线宽 |
| Place_Bound Overlap | Place_Bound区域重叠 | 检查矩形尺寸和位置 |
| Pad to Pad Spacing | 焊盘间距太小 | 确认焊盘中心间距是否正确 |
| Line Width Too Thin | 线宽小于工艺最小值 | 调整线宽到0.10mm以上 |
4.2 新手最容易踩的五个坑
第一个坑:单位搞混。Allegro 17.4新建文件的时候,默认单位可能是mil,也可能是mm,取决于你的默认设置。如果你在Padstack Designer里用mm建的焊盘,在Package Symbol里用mil放,那尺寸就全乱了。我建议在新建文件的时候,第一件事就是确认单位,并且在Padstack Designer和Package Symbol里用同一个单位。
第二个坑:焊盘路径没设对。Padstack保存的目录如果没有加到Allegro的库路径里,在Package Symbol里放焊盘的时候会找不到。解决方法是在“Setup→User Preferences→Paths→Library”里,把Padstack的目录加进去。或者更简单的方法,把Padstack和Package Symbol放在同一个目录下,Allegro会自动搜索当前目录。
第三个坑:丝印压焊盘。前面说过了,丝印跟焊盘之间要留间隙。但新手往往只注意了水平方向的间隙,忘了垂直方向。R0603的焊盘高度是0.95mm,丝印竖线的长度如果也是0.95mm,那丝印的上下两端就会跟焊盘重叠。所以丝印竖线的长度要小于焊盘高度,我一般用0.8mm。
第四个坑:Place_Bound画太大。有人觉得Place_Bound越大越安全,画了个2.5mm×1.5mm的矩形。结果在PCB上布局的时候,两个R0603之间明明有空间,但DRC就是报错说Place_Bound重叠。Place_Bound只要比器件本体单边大0.1mm就够了,别画太大。
第五个坑:忘了设置器件原点。封装的原点默认在左下角或者某个随机位置,如果你不设置,在PCB上放置器件的时候,器件的中心就不在光标上,移动和旋转都很别扭。设置原点的方法是用“Setup→Change Drawing Origin”,把原点设在两个焊盘的正中间。
4.3 库文件的组织与版本管理
封装建好了,怎么管理?我见过有人把所有封装都放在一个目录里,文件名乱七八糟,过两个月自己都找不到。正确的做法是按器件类型分目录,比如Resistor、Capacitor、IC、Connector这些。每个目录下再按规格分,比如R0603、R0805、R1206。
文件命名也要规范。我用的格式是“类型_规格_尺寸”,比如“RES_R0603_0R90X0R95”。这样一看文件名就知道是什么器件、什么规格、焊盘多大。别用中文命名,Allegro对中文路径的支持不太好,容易出问题。
版本管理也很重要。每次修改封装,都要在文件名或者文件属性里记录版本号和修改日期。我习惯在封装的Assembly层加一个Text,写上版本号和日期,比如“V1.0 2024-01-15”。这样在PCB上调用的时候,一眼就能看出来用的是哪个版本。
注意:修改封装之后,一定要在PCB里更新。Allegro不会自动更新已经放置的器件,需要用“Place→Update Symbols”命令手动更新。更新之前最好先备份PCB文件,万一更新出问题了还能回退。
5. 从R0603延伸到其他封装的通用方法
5.1 0402和0805封装的参数调整逻辑
学会了R0603,0402和0805就是改几个参数的事。0402的器件本体是1.0mm×0.5mm,焊盘一般做0.55mm×0.60mm,中心间距0.75mm。0805的器件本体是2.0mm×1.25mm,焊盘一般做1.15mm×1.30mm,中心间距2.05mm。
但要注意,0402的焊盘不能简单地按比例缩小。因为0402的器件太小了,贴片精度和焊锡量的影响更大。焊盘太小,锡膏量不够,容易虚焊;焊盘太大,锡膏量太多,容易立碑。我实测下来,0402的焊盘宽度0.55mm、长度0.60mm、中心间距0.75mm是比较稳妥的。如果你做的是高密度板,可以缩到0.50mm×0.55mm,中心间距0.70mm,但一定要跟SMT厂确认。
0805的焊盘相对好做,因为器件大,公差的影响小。焊盘宽度1.15mm、长度1.30mm、中心间距2.05mm,这个参数在大多数板子上都能用。如果你做的是电源板,焊盘可以再大一点,宽度1.20mm、长度1.40mm,增加焊接强度。
| 规格 | 焊盘宽度(mm) | 焊盘长度(mm) | 中心间距(mm) | 适用场景 |
|---|---|---|---|---|
| 0201 | 0.35 | 0.40 | 0.50 | 高密度消费电子 |
| 0402 | 0.55 | 0.60 | 0.75 | 一般消费电子 |
| 0603 | 0.90 | 0.95 | 1.65 | 工业控制、通信 |
| 0805 | 1.15 | 1.30 | 2.05 | 电源、大电流 |
| 1206 | 1.60 | 1.80 | 3.00 | 大功率、高压 |
5.2 封装继承与多态在库管理中的应用
这个概念听起来像编程,但在封装库管理里确实有类似的思想。所谓“封装继承”,就是你可以建一个基础封装,然后其他封装从这个基础封装派生出来。比如你建了一个“RES_0603”的基础封装,里面包含了焊盘、丝印、Place_Bound这些通用元素。然后你要建一个“RES_0603_1%”的封装,只是精度不同,其他都一样,就可以直接从基础封装复制过来,改个名字就行。
Allegro里没有直接的“继承”功能,但你可以用“File→Save As”来复制封装,然后修改需要改的部分。这样比从头建要快得多,而且不容易出错。我一般会建一个“TEMPLATE”目录,里面放各种基础封装,新建封装的时候从这里复制。
“多态”在封装里可以理解为同一个器件在不同应用场景下的不同封装。比如一个R0603电阻,在普通信号线上用标准焊盘就行,但在大电流路径上,可能需要加宽焊盘或者增加散热过孔。这时候你可以建两个封装,一个叫“RES_R0603_STD”,一个叫“RES_R0603_PWR”,在原理图里根据实际需求调用不同的封装。
5.3 封装库的维护与团队协作
如果你是一个人做项目,封装库怎么管都行。但如果是团队协作,封装库的管理就很重要了。我建议用版本控制工具来管理封装库,比如Git或者SVN。每次修改封装都提交一次,记录修改人和修改原因。这样万一出了问题,可以追溯到是谁改的、什么时候改的。
团队里还要有一个封装审核流程。新建的封装不能直接放到公共库里,要先经过审核。审核的内容包括:焊盘尺寸是否正确、丝印是否压焊盘、Place_Bound是否合理、原点是否在中心、命名是否规范。审核通过之后才能入库。
另外,封装库要定期清理。有些封装建了之后从来没用过,或者已经被新版本替代了,这些要定期删掉,否则库会越来越臃肿,查找起来很麻烦。我一般每季度清理一次,把半年内没用过的封装归档到“Obsolete”目录里。
注意:团队协作的时候,封装库的路径要统一。如果每个人的库路径不一样,在PCB设计的时候会出现找不到封装的情况。建议把封装库放在网络共享目录或者版本控制服务器上,所有人用同一个路径。
6. 实操心得与效率提升技巧
6.1 Allegro 17.4快捷键设置与效率优化
Allegro 17.4的默认快捷键说实话不太好用,很多常用命令都要点好几层菜单。我建议根据自己的习惯设置一套快捷键。比如我把“Layout→Pins”设成F2,“Display→Measure”设成F3,“Tools→Quick Reports→Design Rules Check”设成F4。这样建库的时候效率能提高不少。
设置快捷键的方法是在“Setup→User Preferences→UI→Key Commands”里,或者直接修改env文件。env文件在Allegro的安装目录或者用户目录下,里面可以定义各种快捷键。我一般会把常用的命令都设成快捷键,比如放焊盘、画线、测量、DRC这些。
还有一个效率技巧是用“Script”功能。如果你经常建同类型的封装,可以录一个Script,把建封装的步骤录下来,下次直接运行Script就行。比如建一个R0603的封装,步骤是:新建文件→放焊盘→画Place_Bound→画丝印→放位号→跑DRC→保存。这些步骤可以录成一个Script,下次建R0805的时候,运行Script,然后改几个参数就行。
6.2 封装复用与模板化建库思路
建库最怕的就是重复劳动。R0603建完了,R0805又要从头来一遍,太浪费时间。我的做法是建一个“模板封装”,里面包含了所有通用的元素,比如焊盘、丝印、Place_Bound、位号、Value。新建封装的时候,直接从模板复制,然后改焊盘尺寸和器件轮廓就行。
模板封装怎么建?先建一个标准的R0603封装,然后把所有参数都设置好。保存的时候,文件名用“TEMPLATE_RESISTOR”。下次建R0805的时候,打开这个模板,用“File→Save As”另存为“RES_R0805”,然后修改焊盘尺寸和Place_Bound的尺寸。丝印和位号的位置一般不用改,因为R0805和R0603的丝印布局差不多。
这个方法可以扩展到所有类型的封装。比如电容、电感、二极管,都可以建一个模板。甚至IC也可以,建一个“TEMPLATE_IC”的模板,里面包含了标准的焊盘排列、丝印框、Place_Bound。新建IC封装的时候,从模板复制,然后根据引脚数和间距调整焊盘就行。
6.3 从封装绘制到PCB设计的衔接要点
封装建好了,最终是要在PCB上用的。从封装到PCB,有几个衔接要点要注意。
第一,封装的引脚编号要跟原理图符号对应。R0603是两端器件,引脚编号一般是1和2。你在封装里放焊盘的时候,第一个焊盘的引脚编号是1,第二个是2。如果原理图符号的引脚编号也是1和2,那就能对应上。如果不对应,在导入网表的时候会报错。
第二,封装的原点要跟原理图符号的原点对应。原理图符号的原点一般在器件的中心,封装的原点也要在中心。这样在PCB上放置器件的时候,器件的位置和旋转才符合预期。
第三,封装的Place_Bound要跟实际器件匹配。如果Place_Bound画得太小,在PCB布局的时候,两个器件明明有空间但DRC报错说重叠。如果画得太大,又会浪费PCB面积。所以Place_Bound的尺寸要准确。
第四,封装的丝印要清晰。丝印是给人工检查用的,如果丝印太模糊或者被焊盘盖住,检查的时候就看不清器件的位置和方向。所以丝印的线宽不能太细,位置不能压焊盘。
注意:在PCB上调用封装之后,一定要用“Place→Update Symbols”更新一下,确保用的是最新版本的封装。如果封装有修改,PCB上的器件不会自动更新,必须手动更新。
6.4 常见问题速查表与排查思路
| 问题现象 | 可能原因 | 排查方法 | 解决方法 |
|---|---|---|---|
| 找不到焊盘 | 库路径没设对 | 检查User Preferences里的Library路径 | 把Padstack目录加到库路径 |
| 焊盘尺寸不对 | 单位搞混了 | 在Padstack Designer里看单位设置 | 统一用mm或mil |
| 丝印压焊盘 | 丝印位置或线宽不对 | 用Measure量丝印跟焊盘的距离 | 丝印外移或减小线宽 |
| DRC报Place_Bound重叠 | Place_Bound画太大 | 量一下Place_Bound的尺寸 | 缩小到器件本体+0.1mm |
| 位号不显示 | 没用RefDes命令 | 检查文本是用什么命令放的 | 用Layout→Labels→RefDes重新放 |
| 封装在PCB上找不到 | 封装没保存到库路径 | 检查封装文件的保存路径 | 保存到库路径或添加路径 |
| 更新封装后PCB没变化 | 没执行Update Symbols | 检查是否执行了更新命令 | 用Place→Update Symbols更新 |
这个表里的问题都是我实际建库时遇到过的,尤其是“找不到焊盘”和“丝印压焊盘”这两个,新手几乎百分之百会碰到。排查的时候不要慌,一步步来,先确认库路径,再确认单位,再确认尺寸,基本上都能解决。
还有一个技巧是用“Report”功能。在Package Symbol里,用“Tools→Reports”可以导出封装的详细信息,包括焊盘位置、尺寸、各层的图形。导出来之后跟你的设计意图对比一下,看看有没有偏差。这个方法比一个个量要快得多,尤其是封装比较复杂的时候。
最后再分享一个小技巧:建完封装之后,在PCB上实际放一个,然后跑一遍DRC。封装里的DRC跟PCB上的DRC规则可能不一样,在封装里没报错,在PCB上可能报错。所以在PCB上验证一下是很有必要的。放一个R0603,旁边放一个R0603,看看Place_Bound会不会重叠,丝印会不会打架。实测下来没问题,这个封装才算真正可用。