干PCB设计这些年,Cadence Allegro的焊盘设计始终是新工程师进厂后的第一道坎。标题看着不花哨,但实际工程项目里,SMD焊盘和通孔焊盘这两种类型几乎覆盖了九成以上的元件封装需求,这块基本功不扎实,后面布局布线、做封装、出生产文件全是隐患。今天我把用Allegro 17.4创建焊盘的完整流程、参数计算逻辑和踩过的坑都整理出来,目标是让一个刚接触这个工具的人也能按着步骤做出能直接送工厂的焊盘,同时把一些容易忽略的细节讲透。
1. 焊盘设计前必须想清楚的事
1.1 Cadence与Allegro的关系,以及17.4版本特性
很多刚入行的人容易把Cadence和Allegro混为一谈,甚至分不清到底是软件还是公司。简单说,Cadence是公司名称,Allegro是这家公司推出的PCB设计工具产品线。市面上常说的“用Allegro画板”,指的通常是Cadence Allegro PCB Designer这个核心工具,它和OrCAD Capture原理图工具同属一套生态,配合使用可以完成从原理图到PCB的全流程设计。
17.4是Cadence在2020年前后发布的大版本,内部编号对应SPB 17.4。相比老玩家熟悉的16.6,17.4在界面、启动方式、64位支持和3D视图上都有明显变化。最直观的感受是启动器改成了统一入口,Padstack Editor的界面也重新梳理过,左侧分层结构更清楚,右侧参数编辑更直观,还支持实时3D预览。对于做焊盘库这种需要频繁反复调整尺寸的活,17.4的体验比16.x时代好不少。
搞清楚版本关系还有一个实际意义:很多网上教程和第三方工具是基于16.6写的,直接照搬到17.4可能报错。比如命令窗口里的某些菜单路径变了,env文件的加载位置基本一致但个别函数失效,这些我都会在后面实战环节单独点出来。
1.2 SMD焊盘和通孔焊盘的本质区别
焊盘设计不是随便画个铜皮那么简单,SMD和通孔焊盘无论是在制造工艺还是软件设置上,完全是两套逻辑。
SMD焊盘用于表面贴装元件,焊盘只出现在PCB某一面,靠锡膏把元件引脚和焊盘连接。SMD封装没有钻孔,也就不存在金属化孔壁的问题,所以在Padstack Editor里不需要设置Drill,结构简单很多。它适合高密度布线,但机械强度不如通孔。
通孔焊盘用于直插元件和接插件,焊盘要贯穿整个板子,内壁做金属化处理后与各层铜皮相连。它比SMD多出钻孔、内层连接、热释放焊盘(Thermal Relief)和隔离焊盘(Anti Pad)等概念,正是因为通孔要穿过内层铜皮,必须考虑与内层电源地平面的电气连接和隔离策略。
从软件操作上说,SMD焊盘通常只要设置起始层(BEGIN LAYER或END LAYER)、阻焊层(SOLDERMASK)和钢网层(PASTEMASK),而通孔焊盘需要在Padstack Editor中依次配置钻孔、起始层、默认内层、终止层、阻焊层,每一层都要根据实际需求确定Regular Pad、Thermal Relief和Anti Pad三个值。理解了这段差异,后面做焊盘时就不容易思路混乱。
1.3 设计参数从哪里来
每次看到有人上来就问“焊盘尺寸填多少”,我都会反问一句:你的器件封装资料看了没有,板厂能力确认了没有,公司设计规范里有没有规定。焊盘尺寸不是拍脑袋填的,主要来自三个来源。
第一是芯片或元器件的官方数据手册。数据手册里通常会给出封装尺寸图,以及推荐焊盘图形(Recommended PCB Layout),比如引脚宽度W、引脚间距P、焊盘建议尺寸。SMD焊盘的宽度和长度的基准就是手册里推荐的数值,而不是直接照抄引脚尺寸。第二是公司内部的封装设计规范或DFM手册。成熟公司一般会规定焊盘间距、阻焊开窗、钢网开口的统一规则,方便板厂生产和后期维护。第三是板厂的工艺能力约束。比如最小焊盘环宽、最小开窗、钻孔到铜皮距离等,不同板厂能力差异很大,打样前最好找常规合作的板厂要一份能力参数表。
我自己在做焊盘前会先把这三项资料整理到一张纸上,确定好“引脚本体尺寸、焊盘尺寸、阻焊开窗、钢网开口、钻孔直径、焊盘外径”几个关键值以后再动软件,这样效率最高。
2. 手把手创建SMD焊盘
2.1 打开Padstack Editor并建立新焊盘
我用一个贴片电阻的焊盘举例,这个流程适用于所有SMD元件。在17.4中打开Padstack Editor有几种方式:一是从Allegro PCB Designer启动器里直接选择Padstack Editor,二是先打开一个PCB工程文件,再通过菜单Setup -> Padstacks -> Library进入。
这里建议大家采用第二种方式,也就是先新建一个空白的board文件再打开Padstack Editor。原因后面讲问题排查时会说,简单讲是这样做可以保证软件已经把叠层结构完全加载,避免某些层设置异常。
打开编辑器后,点File -> New,弹出焊盘属性设置窗口。首先要改的是Type选项,把默认的Through改成Single。这个设置决定了焊盘是通孔还是贴片,很多新手漏改这一步,最后做出来的SMD封装带着钻孔,怎么看怎么别扭。
还有一个容易忽略的地方是单位设置。在Parameters页面里把单位切到Millimeter,精度保留四位小数。国内设计习惯用公制,板厂给的工艺参数绝大多数也是毫米,单位错了后面调试会很痛苦。
2.2 逐层配置SMD焊盘参数
新建焊盘之后,左侧会列出当前焊盘涉及的层,SMD焊盘最核心的是下面几个层。
首先设置元件贴装面所在层。假设这个电阻放在TOP面,那就要找到BEGIN LAYER这一项,如果放在BOTTOM面则对应END LAYER。点击BEGIN LAYER之后,右侧可以分别设置Regular Pad的形状和尺寸。SMD焊盘没有钻孔,不需要设置Thermal Relief和Anti Pad,这两项保持默认或清空即可。
形状选项里Circle、Square、Rectangle、Oblong最常见。0402、0603这类贴片电阻电容焊盘常用矩形,引脚宽一点的连接器焊盘可能用到Oblong圆头矩形。对于0603电阻,常规设计我一般取焊盘宽度0.85mm、长度0.90mm左右,具体以器件手册推荐值为准。矩形焊盘输入时注意Width是X方向尺寸,Height是Y方向尺寸,不要输反。
接着设置阻焊层。找到SOLDERMASK_TOP,这里填的尺寸是阻焊窗口的大小,通常比焊盘本身每边大0.1mm左右。比如焊盘是0.85mm x 0.90mm,阻焊开窗就设0.95mm x 1.00mm。阻焊开窗不能小于焊盘,否则焊盘边缘被绿油盖住,贴片时容易立碑或虚焊。
最后设置钢网层。找到PASTEMASK_TOP,钢网开口的作用是限定锡膏印刷范围,一般比焊盘每边缩0.05mm到0.1mm,因此尺寸可以设成0.75mm x 0.80mm。如果你用的板厂对钢网开口有自己的推荐值,按板厂要求做。
上层做完了,如果这个焊盘要用在BOTTOM面,原理一样,把BEGIN LAYER换成END LAYER,阻焊和钢网层也换成BOTTOM对应的层,参数逻辑不变。
2.3 保存、命名与入库规范
参数都填好后,点File -> Save As保存焊盘文件。这里要特别强调命名规范,因为焊盘库是最容易被搞乱的资产。
常见的命名方式是把类型、元件尺寸、焊盘尺寸甚至封装名整合在一起,比如SMD_0603_0.85X0.90表示0603贴片电阻焊盘,宽度0.85mm,长度0.90mm。如果公司内部有统一规范,就严格按公司规范来。没有规范的话,建议至少包含三个信息:SMD或TH标识、元件封装系列、关键尺寸。不要出现AA.pad、test.pad这种名字,库文件一多完全没法维护。
保存路径也需要规划。Allegro通过环境变量中的padpath来搜索焊盘库文件,在pcbenv文件夹下的env文件里可以设置,也可以在User Preferences里配置。常规模板是建一个统一的library目录,里面再按焊盘、封装、机械符号等分文件夹,比如D:/lib/padstack、D:/lib/symbol。保存焊盘时直接存到这个目录,后面做封装时才能正常调用。
库管理建议定期做一下清理和版本备份。焊盘文件是二进制文本格式,数量多了之后用文件管理器直接浏览还算方便,但千万注意不要随意改文件名,因为封装文件里记录的是焊盘名,改名后封装会找不到焊盘。
3. 手把手创建通孔焊盘
3.1 通孔参数的计算方法
通孔焊盘比SMD复杂在它的参数环环相扣,钻孔、外径、内层连接、阻焊开窗,每一个尺寸都和制造工艺、电气性能高度相关。这里分享一套我自己用的计算套路,适用普通插件电阻电容、连接器引脚这类常见的通孔场景。
第一步确定钻孔直径。钻孔直径主要取决于元件引脚直径,引脚直径d,钻孔直径取d加0.2到0.3mm。如果引脚是方形或带棱角的,要按对角线的长度来考虑,不能只量平面宽度。比如一个引脚直径0.6mm的插件电容,常规钻孔直径取0.9mm左右。孔径太小插不进去,太大则焊锡填充不饱满,容易出现虚焊。
第二步确定焊盘外径。焊盘外径和孔径差值的二分之一就是焊环宽度,也就是从孔壁到焊盘边缘的距离。普通信号连接,焊环宽度建议0.2到0.3mm,所以外径约等于孔径加0.4到0.6mm。比如钻孔0.9mm,外径取1.5mm左右比较稳妥。如果是电源或大电流通道,焊环适当加宽,确保载流能力和机械强度。
第三步确定阻焊开窗。通孔焊盘阻焊层一般比焊盘外径大0.2到0.3mm,也就是每边大0.1到0.15mm。但如果焊盘间间距很近,开窗过大会导致阻焊桥变窄甚至断裂,此时要参考板厂的最小阻焊桥宽能力。
3.2 钻孔层与内外层的设置细节
在Padstack Editor中新建焊盘,这次Type保持默认的Through即可。左侧树形结构中会看到Drill这一项,点击后进入钻孔设置。
钻孔直径直接填上面计算出来的值,比如0.9mm。还要注意Plating Type,电镀类型,绝大多数插件元件的孔要做金属化,也就是Plated。如果是螺丝孔、定位孔这些不需要导电连接的孔,选Non-Plated。这里选错会造成严重问题:把NPTH做成PTH,多一道电镀成本和导通风险;反过来,该导通的接插件孔做成NPTH,整个网络就断了。
钻孔设置里还有一个Drill Symbol,这是钻孔符号在制造图纸上显示用的标识,一般默认即可。钻孔直径数值会与建议的符号大小自动对应,不纠结。
设置完钻孔,接着逐层设置焊盘形状。BEGIN LAYER、DEFAULT INTERNAL、END LAYER这三类层的设置逻辑是一样的,区别在于每层是否要连接内层铜皮。普通信号插件焊盘,所有层都设成相同外径的圆形,这样无论是顶层、底层还是内层,焊盘的物理轮廓都一致。比如外径1.5mm,Regular Pad填Circle直径1.5mm。
我习惯在第一个层设置好之后,右键对应层,选择复制到所有层,然后再到各层检查参数。17.4支持快速复制参数,效率比旧版高很多,但复制完一定要逐层确认,尤其注意内层和顶层是否都填了同样外径。
3.3 热释放焊盘与隔离焊盘的工程意义
通孔焊盘和内层大铜皮的关系,是设计中容易出问题的地方。如果管脚不是直接靠过孔连接整片铜皮,而是需要通过铜皮给内层平面网络供电,这时就牵涉到Thermal Relief和Anti Pad两个参数。
先解释一下为什么要热释放。焊盘和内层大面积铜皮直接相连时,焊接时热量会迅速通过铜皮导走,导致焊锡难以充分润湿,尤其手工焊接和波峰焊时很麻烦。Thermal Relief的作用就是用几条细的铜臂把焊盘和内层铜皮连起来,既保证电气连接,又限制散热通道。
Allegro里设置Thermal Relief形状时,可以设置连接臂数量和宽度。常规设置是4条连接臂,45度方向分布,连接臂宽度视电流和板厂能力而定,信号0.25mm左右,电源类建议加到0.4mm以上。连接臂不能太细,太细载流不够;也不能太粗,太粗散热严重。
Anti Pad则是焊盘与内层铜皮之间的隔离区域,可以理解为焊盘周围挖掉一圈铜皮,防止不该连接的网络在负片平面层上和这个焊盘导通。Anti Pad直径一般比Regular Pad大0.4到0.8mm,比如Regular外径1.5mm,Anti Pad可以做2.0mm或2.2mm。间距太小,层间绝缘风险高;间距太大,周围铜皮利用率下降,临近走线受限。
可能有人问,如果焊盘这个网络和内层铜皮本来就不是同一网络,那还需要Thermal Relief和Anti Pad吗?需要设置。因为内层是大面积铜皮,无论该网络是否相同,钻孔后都要明确焊盘与铜皮的关系:是隔开还是连接。如果完全不设置,软件无法判断内层铜皮是避开这个焊盘还是灌进来连接,出图时会有大量DRC错误。
4. 焊盘建好之后:检查、调用与效率提升
4.1 焊盘正确性检查的几个关键点
焊盘保存不等于设计完成,我在实际项目里吃过不少“焊盘本身错了,后面封装连着错,布完线才发现”的大亏。检查焊盘我有个固定动作,三分钟能过完。
第一,看3D预览。17.4的Padstack Editor内置3D显示,可以直接看到焊盘和钻孔的立体效果。SMD焊盘检查贴装面和阻焊开窗是否合理,通孔焊盘重点检查钻孔是否贯穿、环宽是否均匀、阻焊窗口是否完整。这里能发现大多数低级错误。
第二,对照参数算一遍。用计算器把焊盘外径和孔径差值除以2,看看焊环宽度是否满足公司规范。如果发现某个焊盘外径只比孔径大0.2mm,焊环就只剩0.1mm,板厂加工误差稍微偏一下就露铜和破环。
第三,检查各层复制的结果。DEFAULT INTERNAL层的Regular Pad有没有被正确复制,Anti Pad和Thermal Relief是否和开始层一致,阻焊层是否匹配。通孔焊盘最容易漏掉的就是某一层没有设置Anti Pad,导致负片层短路。
第四,把焊盘文件放在干净的库路径下重新调用一次,确认Allegro能正常加载。这个步骤能提前暴露路径配置问题和文件损坏。
4.2 在PCB Editor中调用焊盘
焊盘文件创建完成后,最终的归宿是封装符号和板级设计。新建封装时,在封装编辑器里选择Layout -> Pins,然后在下拉菜单里输入或选择焊盘名称,板级相同。
调用焊盘时有几个细节。一是焊盘的旋转方向,SMD焊盘在封装里放置时,矩形焊盘的长边和元件本体方向有关,放置前就要在引脚属性里明确角度,否则封装做出来焊盘方向全错。二是通孔焊盘的起始层和终止层属性,板级软件会根据当前层自动决定哪面是起始面,但如果做的是盲埋孔焊盘,还要在焊盘Type里专门定义。三是焊盘放置后要检查一下原点位置,封装原点和焊盘几何中心不一致时,后面布局和模块化设计时坐标不好对齐。
如果你要做的是从库中提取已有焊盘来修改,可以使用菜单Setup -> Padstacks -> Modify Design Padstack。板级设计中这个功能很实用,可以临时查看板上某个过孔或元件引脚用的焊盘参数,也能对已有焊盘进行全局替换。替换时Allegro会列出所有使用该焊盘的位置,确认后统一生效,省去一个个改的麻烦。
4.3 17.4环境下的快捷键与个性化配置
做焊盘时频繁调整参数,鼠标点来点去效率不高。17.4的快捷键机制和16.6基本一致,最常用的是编辑env文件的方式。env文件位于用户目录下的pcbenv文件夹里,打开后可以alias命令设置快捷键。比如我在env里设置过:
alias F4 done alias F5 oops alias F6 cancel alias ~R angle 90还有针对PCB编辑器的视图操作快捷键,比如alias F8 zoom fit,alias F9 zoom in,alias F10 zoom out。Padstack Editor本身支持鼠标滚轮缩放和右键视图菜单,但如果习惯键盘流,在env里加两条alias也能提升手感。
17.4比较新的地方是支持从菜单直接打开User Preferences,很多之前的隐藏配置可以在图形界面里搜索设置。比如走线角度、鼠标中键行为、光标显示模式等。这类配置保存后立即生效,不用重启软件,比旧版改配置文件后还得重开再调试体验好很多。
想快速看到焊盘在板上的实际效果,17.4还可以直接放置一个测试封装或做一个小的测试板,在3D Viewer里查看焊盘和元件模型的配合情况。这个习惯对验证复杂封装很有用,尤其是异形SMD焊盘和BGA类封装。
5. 实战踩坑实录:常见问题与排查方法
5.1 高频问题排查速查表
做焊盘设计的头一年,我基本把各种奇葩问题都踩了个遍,下面整理成速查表,按频率排序。
| 症状 | 可能原因 | 处理方法 |
|---|---|---|
| SMD焊盘保存后仍有钻孔 | Type误设为Through | Parameters页把Type改为Single |
| 通孔焊盘内层短路 | DEFAULT INTERNAL层的Anti Pad未设置或尺寸过小 | 复制起始层设置,检查Anti Pad大于Regular Pad |
| 阻焊开窗包裹不住焊盘 | SOLDERMASK层尺寸小于Regular Pad | 阻焊开窗每边比焊盘大0.1mm以上 |
| 封装里看不到焊盘形状 | 引脚属性未关联pad文件,或pad路径配置不对 | 检查padpath环境变量和pin属性 |
| 钻孔符号无法显示 | 钻孔直径太小或Drill Symbol层被隐藏 | 调大钻孔符号显示比例,检查层显示 |
| 调用SMD焊盘时提示Layer not found | Padstack Editor未加载叠层信息 | 先打开一个PCB文件再进入Padstack Editor |
| 热释放连接臂宽失真 | Thermal Relief参数被覆盖为默认值 | 在对应层重新设置Spoke Width和Spoke Count |
这些问题的共同点是事后查起来都不复杂,但当时找原因可能花一天。我的建议是建好一个焊盘之后,立刻复制一份放到测试板上做DRC验证,不要攒一堆再验证,否则错误被带到下一级,排查成本翻倍。
还有一类问题是板厂反馈的,比如焊环过小、开窗过大导致阻焊桥裂开。这类问题在设计阶段就要主动规避,不确定时就按板厂能力上限来做。宁可焊盘略大一点,也不要让焊环逼近制造极限。
5.2 版本兼容、第三方工具加载的经验
Allegro生态里有很多第三方小工具和Skill脚本,比如自动生成封装、批量修改焊盘、复杂封装向导等。经常有人拿网上下载的脚本问能不能直接用在17.4上。这类问题没有标准答案,但排查思路很固定。
如果工具是基于Skill脚本开发的,先确认脚本调用的API和新版是否兼容。Skill语言本身跨版本基本没问题,但一些菜单函数、底层操作接口在不同版本里有差异。建议在命令行里先用skill getShellVersion()确认当前环境版本,再逐个调试脚本加载时报错的函数。
如果是通过菜单定制或者DLL动态库方式集成的工具,17.4改动比较大,旧版工具可能直接加载不上。这时候不要硬改,检查软件安装目录下的相关配置文件,或者直接找工具作者要新版。就焊盘设计来说,官方Padstack Editor的功能足够完整,配合env快捷键已经能覆盖绝大多数场景,不建议一开始就依赖第三方生成器,自己手做一遍反而能彻底理解参数。
另外提一个很多人不知道的小技巧:如果哪天你发现某个第三方菜单在17.4里消失了,先检查是否安装了对应的Cadence SKILL扩展服务包,很多工具需要额外的运行时支持,而不是Allegro本体没带。
5.3 几个值得长期坚持的习惯
最后说点软件之外的东西。焊盘库是PCB设计团队的公共资产,它不像原理图、Layout那样每天被研究,但一旦出错就是批量事故。我养成的几个习惯分享给大家。
一是每次做完焊盘,都在旁边留一个备注文件或Excel记录表,记清楚尺寸依据、参考器件型号、创建日期、修改历史。这样即使半年后有人问起这个焊盘为什么这么大,也能快速追溯。二是焊盘文件统一用相对路径管理,配合版本控制工具做库版本管理。PCB项目文件里不要直接复制焊盘进去,而是引用库里的统一路径,否则不同PCB之间焊盘不同步。
三是坚持定期从板厂要良率反馈。如果某类器件经常出现焊接不良,其中有一部分就是焊盘设计不匹配造成的。反馈回来的信息比任何理论计算公式都宝贵,把它作为下一次更新焊盘库的依据。
四是对环境变量和路径保持警惕。Allegro搜库顺序受env里的padpath和psmpath影响,一旦路径被覆盖或指向错误目录,就会出现“明明焊盘文件存在但封装里找不到”的情况。我在新装软件时都会先把env文件备份一份,再手动添加自定义库路径,避免装个新软件把所有配置搞乱。
焊盘设计这件事,说到底是细节的叠加。SMD焊盘和通孔焊盘各有各的坑,但只要参数逻辑清晰、验证流程完整、库管理规范,这套基本功会让后面所有封装和布线工作都顺畅很多。