之前在做 PCB 封装库维护时,经常被 SMD 焊盘定义不规范的问题困扰:有人把焊盘层放在 TOP 层,有人在默认的 PACKAGE GEOMETRY 里画焊盘,还有人搞不清 Padstack Editor 和封装编辑器之间的分工。其实只要弄清楚焊盘栈(Padstack)的本质,这些问题都能迎刃而解。本文围绕 Cadence Allegro 的 Padstack Editor 绘制表贴焊盘展开,适合刚接触 PCB 封装设计、或者已经在画封装但总是被检查报告打回的开发者阅读。看完你可以独立完成一个规范的表贴焊盘定义,也能看懂 DRC 报错里与焊盘相关的常见问题。
1. 为什么要用 Padstack Editor 绘制表贴焊盘
1.1 焊盘栈在封装设计中的位置
在 Cadence Allegro 的封装设计流程中,焊盘栈(Padstack)是所有封装的基础单元。一个完整的元器件封装,本质上是由一个或多个焊盘栈、丝印框(Silkscreen)、装配层(Assembly)、器件外框(Place Bound)等元素组成的。焊盘栈负责定义焊盘的物理尺寸、钻孔信息、外层焊环尺寸、各层铜箔覆盖范围等核心数据。
很多初学者容易把 Padstack Editor(焊盘栈编辑器)和 PCB Editor(封装编辑器)搞混。简单来说:
- Padstack Editor 负责"制造"焊盘,输出的是
.pad文件。 - PCB Editor 负责把焊盘放到封装里,并绘制丝印、位号、装配层等信息,输出的是
.dra和.psm文件。
所以正确的流程一定是:先在 Padstack Editor 里画好焊盘,再到 PCB Editor 中调用这个焊盘,完成整个封装的绘制。
1.2 表贴焊盘与插装焊盘的区别
表贴焊盘(SMD Pad)用于表面贴装器件,比如电阻、电容、IC、连接器等。它和插装焊盘(Through Hole Pad)最大的区别在于没有钻孔(Drill)。插装焊盘需要定义钻孔直径、内层热焊盘、背钻等信息,而表贴焊盘只需定义顶层/底层贴片铜箔和阻焊开窗。
用一句话概括:表贴焊盘就是一个没有孔的金属片,Padstack Editor 中只需要关心贴片层的铜箔形状和阻焊层的开窗大小。
1.3 规范焊盘定义的意义
焊盘定义不规范,会在后续环节引发三类问题:
- 制造环节:阻焊开窗过小,导致焊盘被绿油覆盖,无法焊接;或开窗过大,导致相邻焊盘间绿油桥缺失,焊接时短路。
- 设计环节:焊盘尺寸不满足器件手册要求,导致立碑、虚焊;热焊盘参数错误导致散热异常。
- 检查环节:焊盘没有定义阻焊层,DRC 报告出现
Package to Package或Solder Mask相关报错。
因此在 Padstack Editor 中建立一套统一的焊盘定义规范,是封装设计质量的基础。
2. 环境准备与操作界面说明
2.1 软件环境
本文以 Cadence Allegro 17.4 版本为例进行说明,但核心操作流程在 16.6、17.2、22.1 等版本中基本一致。如果你使用的是其他版本,界面细节可能略有差异,但参数含义和设计思路是通用的。
Padstack Editor 一般可以通过两种方式打开:
- 开始菜单中找到 Cadence 安装目录下的
Padstack Editor。 - 在 Allegro PCB Editor 中,执行菜单
File -> New,选择Padstack类型。
打开后默认新建一个空白 Padstack。当前采用的用户界面模式有两种:经典的Legacy模式和新的Allegro模式。本文以经典模式为例,但会说明两者对应关系。
2.2 Padstack Editor 界面分区
Padstack Editor 的界面主要由以下几个区域组成:
| 区域 | 作用 |
|---|---|
| 左侧树形列表 | 显示 Layers、Drill、Design 等参数分类 |
| 中央参数面板 | 当前选中分类下的具体参数设置 |
| 右侧预览窗口 | 实时显示焊盘的截面图和俯视图 |
| 底部参数栏 | 显示当前焊盘的 Summary 信息 |
其中最重要、也是最常用的,是左侧树形列表中的Layers分类。所有与铜箔、阻焊、助焊相关的层参数,都在这里定义。
2.3 单位制设置
在开始画焊盘之前,先要确定单位。Allegro 支持英制(Mils)和公制(Millimeter)两种常用单位。进入Options -> Preferences,在Units中选择需要的单位,并设置精度(小数位数)。
对于公制单位,常用精度是 2 位小数或 4 位小数;对于英制单位,常用精度是 2 位小数。需要注意的是,单位一旦在焊盘文件中固定,后续在封装设计中使用时,PCB Editor 会按当前板卡的数据库单位自动换算,但建议全流程保持单位一致,避免出现 0.01mm 与 0.01mil 的换算误差。
3. 表贴焊盘核心参数拆解
3.1 层结构与含义
表贴焊盘需要关注的核心层如下:
BEGIN LAYER:焊盘所在的主贴片层。做顶层表贴焊盘时,这一层就是 TOP 层铜箔。做底层表贴焊盘时,这一层就是 BOTTOM 层铜箔。DEFAULT INTERNAL:内层默认铜箔。表贴焊盘通常只需要在表层有铜箔,内层可以不设置,或者按常规缩小一定比例设置以作参考。END LAYER:另一面表贴层。如果做双面贴片焊盘,可以在这里定义对应面的铜箔。单面板常见做法是不设置。SOLDERMASK:阻焊层,分为TOP和BOTTOM。阻焊层开窗尺寸一般比焊盘铜箔大,用于保证焊接时焊盘完全裸露。PASTEMASK:助焊层,也叫钢网层。钢网开孔尺寸一般比铜箔略小,用于控制锡膏印刷量。FILMMASK:胶片层,一般用于特殊工艺,日常设计可忽略。
理解这些层之间的关系,就能明白焊盘 DRC 报错的根源。举一个常见例子:如果只定义了BEGIN LAYER的铜箔,没有定义SOLDERMASK的 TOP 开窗,那么实际生产时焊盘区域会被整片绿油覆盖,导致无法焊接。而如果定义了铜箔却没有定义PASTEMASK,钢网层就不会开孔,贴片时没有锡膏,元器件也无法固定。
3.2 三种几何形状的选择
表贴焊盘支持以下几种几何形状,每种形状都可以在Geometry下拉框中选择:
Oblong(椭圆/长圆):最常用的形状,适合电阻、电容、二极管等两引脚器件。它的两端是半圆,中间是矩形,能够有效增加焊接面积,同时减少焊盘尖角处的应力集中。Rectangle(矩形):适合引脚较宽的器件,比如功率器件、连接器焊脚。Square(正方形):适合小尺寸焊盘和某些特殊器件。Circle(圆形):适合圆形引脚、测试点焊盘。Octagon(八边形):较少使用,一般用于特殊散热或射频设计。
对于初学者,我建议先掌握Oblong和Rectangle两种,因为它们覆盖了绝大多数表贴器件的焊盘需求。
3.3 焊盘尺寸与器件手册的换算方法
焊盘尺寸不能凭感觉设置,必须参考元器件厂商的数据手册(Datasheet)中的推荐焊盘尺寸。通常手册会给出一个焊盘尺寸表,包含Width(宽)和Length(长)两个参数。
举例:某 0603 封装贴片电容的推荐焊盘尺寸是:
- 焊盘宽(单个焊盘的宽度):0.80mm
- 焊盘长(单个焊盘的长度):0.95mm
- 焊盘中心距:1.40mm
这时在 Padstack Editor 中,表贴层的Pad Width填 0.80,Pad Height填 0.95(注意:Allegro 中宽度对应 X 方向尺寸,高度对应 Y 方向尺寸)。
如果手册只给出器件本体尺寸而没有推荐焊盘尺寸,可以按经验公式估算:焊盘宽度比引脚宽度宽 0.10mm 到 0.25mm,焊盘延伸量(超出引脚末端)为 0.20mm 到 0.50mm。但这只是估算,最终应以焊接可靠性和制造工艺要求为准。
3.4 阻焊层与助焊层尺寸经验值
阻焊层的开窗尺寸,一般是焊盘铜箔尺寸外扩 0.05mm 到 0.10mm。也就是:
SOLDERMASK 宽度 = 焊盘宽度 + 0.10mm(左右各扩 0.05mm) SOLDERMASK 高度 = 焊盘高度 + 0.10mm(上下各扩 0.05mm)助焊层(钢网层)的尺寸,一般是焊盘铜箔尺寸内缩 0.05mm 到 0.10mm:
PASTEMASK 宽度 = 焊盘宽度 - 0.10mm PASTEMASK 高度 = 焊盘高度 - 0.10mm这两个经验值虽然不是绝对标准,但在常规 FR4 板材、普通有铅/无铅回流焊工艺下是可靠的。如果是高密度板、BGA 封装或特殊焊接工艺,需要根据钢网厚度和工艺要求单独计算。
4. 完整实操:用 Padstack Editor 绘制表贴焊盘
下面以一个 0603 表贴电阻的焊盘为例,完整演示绘制步骤。
4.1 新建焊盘文件
打开 Padstack Editor,执行下面的操作:
- 点击工具栏的
File -> New,选择Padstack。 - 弹出新建对话框,输入焊盘文件名,例如
SMD_RES_0603_80_95MIL.pad。 - 选择类型为
Single(单端焊盘)。
这里解释一下Single和Through Hole的区别。表贴焊盘选择Single,表示没有钻孔,只有单面贴片。如果误选为Through Hole,后续还需要处理钻孔参数,对于表贴焊盘来说完全没有必要。
4.2 设置单位与精度
在Options -> Preferences中,设置:
Units: Millimeter Precision: 4保存后,所有参数输入都以 mm 为单位。
4.3 配置表贴层(BEGIN LAYER)
在左侧树形列表中选择Layers,然后找到BEGIN LAYER:
- 勾选
Enable。 Geometry选择Oblong。Width填入0.80。Height填入0.95。
此时右侧预览窗口应立即显示一个长圆形状的焊盘图案,该图案代表顶层铜箔。
4.4 配置阻焊层(SOLDERMASK TOP)
继续向下找到SOLDERMASK下的TOP:
- 勾选
Enable。 Geometry选择Oblong。Width填入0.90。Height填入1.05。
这里的尺寸是焊盘铜箔外扩 0.05mm,保证绿油开窗完整覆盖铜箔边缘。
4.5 配置助焊层(PASTEMASK TOP)
找到PASTEMASK下的TOP:
- 勾选
Enable。 Geometry选择Oblong。Width填入0.70。Height填入0.85。
这里尺寸是焊盘铜箔内缩 0.05mm,减少锡膏印刷量,降低短路风险。
4.6 关闭无关层
对于单面表贴焊盘,END LAYER、DEFAULT INTERNAL、SOLDERMASK BOTTOM、PASTEMASK BOTTOM都可以不勾选。需要说明的是,有些工程师习惯在 DEFAULT INTERNAL 中也画一层略小的铜箔,这在某些仿真或叠层设计中可能会用到,但普通设计建议留空,避免多一张无意义的铜皮。
4.7 保存焊盘文件
在File -> Save As中保存焊盘文件。需要注意:Padstack Editor 会附带生成一个.pad焊盘数据文件,以及一个.dra的焊盘栈图形文件。在实际封装设计中调用的是.pad文件。
保存路径建议放在项目统一的焊盘库目录中,例如:
C:\projects\my_lib\padstack\路径中不要包含空格和中文,否则后续 PCB Editor 在调用时可能出现路径解析异常。
4.8 在 PCB Editor 中调用验证
完成焊盘绘制后,可以新建一个空白封装验证焊盘是否能正常调用:
- 打开 PCB Editor,新建
Package Symbol。 - 执行菜单
Layout -> Pins。 - 在
Padstack输入框中点击浏览,选择刚才保存的.pad文件。 - 放置两个焊盘,间距设为 1.40mm(0603 焊盘中心距)。
放置成功后,可以看到两个长圆形的表贴焊盘出现在编辑区。如果焊盘显示为空心矩形或者不显示铜箔,多半是BEGIN LAYER没有正确启用。
5. 常见问题与排查思路
5.1 焊盘显示为空心框
| 问题现象 | 常见原因 | 解决思路 |
|---|---|---|
| 焊盘在 PCB Editor 中显示为空心线框 | 当前层的颜色开关为关,或BEGIN LAYER未启用 | 打开Display -> Color/Visibility检查 TOP 层颜色,回到 Padstack Editor 确认 BEGIN LAYER 已勾选 |
| 焊盘实体在预览窗口中不可见 | 视图比例过大或过小 | 使用鼠标中键缩放预览窗口,或双击鼠标滚轮重置视图 |
5.2 DRC 报错Solder Mask相关
在封装完成后跑 DRC,出现类似Solder Mask Opening的报错,最常见的原因是阻焊层开窗与焊盘铜箔之间的间距不足。在 Padstack Editor 中检查 SOLDERMASK 尺寸是否比 BEGIN LAYER 尺寸外扩,如果外扩值小于 0.02mm,或者甚至阻焊比焊盘还小,就会触发报错。
正确做法是保证阻焊开窗每边大于铜箔至少 0.02mm 到 0.05mm。
5.3 引脚放置后焊盘无钢网
在放置引脚时,如果发现焊盘上有铜箔但没有钢网层图形,检查 PASTEMASK TOP 是否启用。钢网层没有被启用时,焊盘看起来是正常的,但实际投板后无法印刷锡膏。
5.4 单位换算导致尺寸异常
如果在 Padstack Editor 中设置了公制单位,但 PCB Editor 的板卡数据库是英制,放置焊盘时会发现尺寸异常偏大或偏小。此时应统一两边单位。在 PCB Editor 中,通过Setup -> Design Parameter Editor可以修改板卡单位。
| 问题现象 | 常见原因 | 解决思路 |
|---|---|---|
| 焊盘宽度 10 倍偏大 | 在 PCB Editor 中误用了 mil 单位读取 mm 数据 | 在 Design Parameter Editor 中切换单位为 Millimeter |
| 孔位中心偏移 | 焊盘原点偏移 | Padstack Editor 中设置Offset均为 0 |
5.5 焊盘无法保存
保存时提示Could not create padstack file,通常是保存路径没有写入权限,或者文件被其他程序占用。选择一个新的可写路径,关闭已经打开的该焊盘文件,重新保存即可。
6. 表贴焊盘设计的最佳实践
6.1 建立统一的焊盘命名规范
焊盘文件命名建议包含关键信息:封装类型、焊盘尺寸、单位。例如:
SMD_CAP_0603_80X95MM SMD_RES_0402_50X60MM SMD_IC_QFP128_250X400MIL命名规则要做到:看到文件名就知道焊盘是给哪个封装用的、尺寸是多少、单位是什么。这样可以避免在封装库里出现大量内容相同但文件名混乱的重复焊盘。
6.2 使用参数化设计减少重复劳动
Allegro 的 Padstack Editor 支持通过Tools -> Parametric Padstack创建参数化焊盘。对于同一系列但尺寸不同的焊盘(比如 0402、0603、0805 的电阻电容),可以直接修改参数生成新焊盘,不需要逐个重新画。
参数化焊盘的核心逻辑是输入几个关键尺寸,自动生成完整的层设置。这种方式特别适合维护整个公司的标准焊盘库。
6.3 注意散热焊盘与热焊盘的区别
表贴焊盘本身没有孔,但在大电流或散热场景下,经常会在焊盘区域内增加散热过孔(Thermal Via)。这些过孔是独立的 Through Hole 焊盘,与表贴焊盘不是一回事。设计时需要在 PCB Editor 中单独放置过孔,或者利用模块化设计复用。
需要注意,散热过孔放置在表贴焊盘区域内部时,过孔的位置和数量会影响锡膏吸收和焊接质量。建议通过钢网开孔设计来避免焊锡流入过孔导致的虚焊问题。
6.4 遵循可制造性设计原则
从 PCBA 制造角度,表贴焊盘设计有几点普遍适用原则:
- 相邻焊盘中心距不能小于元件间距,否则容易桥连。
- 阻焊开窗之间至少保留 0.10mm 的绿油桥宽度,否则绿油桥在制造时容易脱落。
- 对于细间距器件(如引脚间距小于 0.5mm 的 QFP、连接器),锡膏印刷的钢网厚度和开孔比例需要搭配调整,不能使用常规的焊盘等比例缩放方法。
- 焊盘铜箔到板边距离要满足拼板工艺要求,一般不小于 0.30mm。
这些原则虽然不是 Padstack Editor 的直接操作内容,但决定了焊盘参数定义是否合理。
6.5 焊盘库的版本管理
焊盘库是一个项目里最容易被忽略但最重要的公共资产。推荐在项目开始时就将焊盘库纳入版本管理工具(如 Git、SVN),每次修改焊盘都记录原因和影响范围。对于公司统一库,建议增加评审环节,因为焊盘尺寸变更会影响所有使用该焊盘的封装和板卡。
7. 从焊盘到封装:下一步学习路径
掌握了 Padstack Editor 绘制表贴焊盘之后,接下来可以沿着以下方向继续深入:
- 在 PCB Editor 中完成整个表贴封装的绘制,包括丝印、装配层、Place Bound 定义。
- 学习插装焊盘的绘制,重点是钻孔参数、内层热焊盘(Thermal Relief)、背钻和 Anti Pad 的设置。
- 理解 IPC 焊盘设计标准,比如 IPC-7351 中关于表贴焊盘尺寸计算的方法。
- 熟悉 DRC 检查规则中与焊盘相关的检查项,比如
Pad-Pad、Pad-Shape、Solder Mask等。 - 掌握建库工具的组合使用,包括 Symbol Editor、Padstack Editor 和 Library Manager。
我在实际项目中的经验是:焊盘定义这个环节虽然看起来基础,但它决定了整个封装设计的下限。一个焊盘尺寸错误,可能会在下单生产后才发现,造成周期延误和成本浪费。与其在后期反复修改,不如在最开始就建立清晰的焊盘定义规范,并使用 Padstack Editor 逐层确认参数。每次新建焊盘时,我都习惯在保存前把预览窗口切换到 3D 截面视图,检查每一层是否按预期生成,这个习惯帮我避免过很多低级失误。
如果你在使用 Padstack Editor 的过程中遇到了其他问题,比如异形焊盘绘制、特殊焊盘形状定义、或者与 PCB Editor 其他模块的配合问题,欢迎在评论区留言交流。收藏本文,下次建库时可以直接对照操作。