如果你刚开始用Altium Designer 22画板子,大概率会经历这样一幕:原理图画得很开心,连线和网络标签也放了,编译似乎没报错,结果一进PCB阶段,器件乱飞、飞线乱成一团、规则从没设置过,最后硬着头皮导出的板子打样回来还不工作。
这篇分享就是把从原理图到PCB的完整流程,按一个老手的操作习惯重新捋一遍。无论你打算画STM32最小系统板、WS2812B灯板、反激电源还是PLL锁相环电路,这套流程都通用。配合我录制的视频教程逐节操作会更直观,这里把文字版步骤、参数和踩过的坑都记下来,方便你对照查漏。
1. 画板子之前,先把AD22的工程结构搞明白
1.1 为什么必须用工程,而不是散文件
我见过不少新手,打开AD22后直接新建一个原理图文件就开始画,画完想转PCB,发现找不到“Update PCB Document”这个选项,因为AD需要先有一个工程文件来挂靠所有文档。
正确做法是:File → New → Project → PCB Project,生成一个后缀为.PrjPcb的工程文件。在工程里再新建原理图(.SchDoc)和PCB(.PcbDoc)。这样做的核心原因不只是“规范”,而是AD的许多功能,比如编译工程、生成网表、更新PCB、输出Gerber,都必须基于工程来运作。散文件之间没有逻辑归属,AD无法判断哪个原理图对应哪个PCB,很多菜单自然是灰色的。
工程建立之后,建议把库文件、原理图、PCB、输出文件分文件夹存放。我自己习惯在工程目录下建Library、Source、Output三个子目录,避免后期找文件翻半天。
1.2 集成库:原理图符号和封装是一条绳上的蚂蚱
新手最容易忽略的是库,尤其是原理图符号和PCB封装之间的对应关系。AD里最常用的是集成库(.IntLib),它把原理图符号(SchLib)和PCB封装(PcbLib)打包在一起,放置元件时自动带着封装信息。
在AD22里,新手的常见操作是下载网上的集成库直接安装,或者用软件自带的Miscellaneous Connectors.IntLib。这个方法起步快,但我强烈建议你在画自己的项目时,至少学会建立一个属于自己的集成库。
原因很简单:网上库的封装不一定准确,特别是某些国产器件,厂家给的是嘉立创封装,直接套用AD库可能有细微偏差。而PCB封装一旦错了,PCB板子就废了,原理图画得再漂亮也没用。自己建库时,把Datasheet上的封装尺寸图和实际元件卡尺测量结果对比一遍,心里才有底。
建集成库的路径:File → New → Library → Schematic Library和File → New → Library → PCB Library,分别在两个库里画好符号和封装后,在原理图库编辑器里为符号添加PCB封装映射(Add Footprint),最后在工程里对集成库工程右键Compile,生成.IntLib。
1.3 单位、栅格和视图设置,先统一再动手
AD22默认单位可以切换公制(mm)和英制(mil),快捷键是View → Toggle Units,或者按字母Q(在原理图和PCB里都能快速切换)。1mm约等于39.37mil,我建议原理图阶段用mil习惯没问题,但PCB布局时用mm更符合大多数国产加工厂的沟通口径。
PCB板框尺寸、定位孔位置这类关键信息,最好和加工厂确认清楚再动手。比如常见的1.6mm板厚、1oz铜厚,如果你在Layer Stack Manager里不改,默认就是这个值,但如果你画的是四层板,就需要认真设置层叠了。
关于栅格,原理图绘制时栅格设置很关键,具体操作我放到下一章详细说,这里只需要记住:单位不统一会导致你在画封装时看尺寸数值非常难受,尽早固定下来。
2. 原理图绘制:连接关系对了,后面才顺畅
2.1 栅格设置:有些线连不上,其实是栅格没对齐
很多新手画原理图时会遇到一个诡异现象:一条导线从引脚拉出来,明明看着怼到另一个引脚上了,但一编译就报“Unconnected Pin”,或者导线端头出现红色小方块,代表电气连接其实没有生效。
这通常不是手抖,而是栅格没有对齐。原理图里所有引脚端点都落在固定栅格点上,如果你画的导线没有落在引脚端点的栅格上,电气上就不认为它们相连。AD22里设置栅格的方式是:在原理图空白处右键 → Snap Grid,选择需要的步长,常见是10mil或100mil;也可以按快捷键G循环切换。
我个人习惯把可见网格和吸附网格设为同一个步长,避免“眼睛看着对齐了,实际差半个格”。放置元件后,可以按快捷键A打开对齐菜单,把元件快速对齐到参考位置,比手动拖拽精准得多。
2.2 用网络标签而不是长导线:移动元件不再“断开连接”
你在搜索框里看到“AD原理图移元件断开连接”,这个困扰几乎每个新手都遇到过。根源在于:用物理导线(Wire)连起来的长距离连接,移动其中一个元件时,导线不会自动跟着元件移动,视觉上就像“线断了”,实际电气连接关系还在,但你不敢确定,还得回去一遍遍对网表。
更麻烦的是一些看似连接但实际没连接的假象:导线端点只搭到了另一根导线的中间位置,AD会认为这是一个节点,但如果搭到了元件引脚边缘又没完全重合,就可能产生未连接错误。
解决思路很简单:短距离连接用导线,长距离或者跨区域信号用网络标签(Net Label)。放置网络标签快捷键P+N,放置前按Tab键输入网络名,比如MCU_TX、GND、3V3。名字相同的网络标签在电气上视为同一网络,并不需要物理上连成一条线。
这样设计的好处非常多:移动元件时不用担心导线被拉断,原理图看起来也清爽,编译时AD检查的是网络名一致性和引脚连接状态,而不是图形上的“看着连上了”。
如果你实在想知道某根线是否真的连接正常,按住Alt键点击导线,AD22会高亮显示整个网络,高亮链路连续说明连接关系完好,出现断点就说明中间确实有电气断裂。
2.3 放置元件时顺手设置属性,别等批量改
从库面板里放置元件时,按Tab键可以提前编辑属性。三个最重要的字段是Designator(位号)、Value/Comment(参数)和Footprint(封装)。
位号如R1、C1、U1,AD会自动递增,但有时候你从库里拖出来的是没有完整参数的模型,比如电阻没有阻值、电容没有容值,建议在放置时顺手填上。数值填错在原理图阶段不容易暴露,但后面ESL、BOM导出时就全乱了。
封装字段同样要在放置时就确认。不同元件可能需要不同封装,比如普通贴片电阻用0402/0603,电解电容用5mm脚距的直插封装,芯片用QFP/LQFP。如果等到PCB阶段再发现封装错了,返工成本极高。
2.4 多根线调整相同间距:AD22的对齐与等距技巧
“ad22多根线如何调整相同间距”这个问题,其实在原理图和PCB里都有标准解法。选中多根导线或多条元件(按住Shift逐个点选,或者直接框选),然后按快捷键A,弹出对齐菜单:
- Align Left / Align Right / Align Top / Align Bottom:让选中对象在某方向对齐;
- Distribute Horizontally / Distribute Vertically:让选中对象在水平或垂直方向均匀分布。
多根并行导线间距不均匀时,框选这些导线,选择Distribute Vertically(或Horizontally),再配合Snap Grid,很快就能整理成等间距。PCB布线阶段也一样,选中多根走线后右键Align菜单同样可以等距调整,非常实用。
2.5 电气规则检查ERC:在原理图阶段就把问题干掉
原理图画完不等于结束,一定要执行Project → Compile PCB Project。编译后右下角Messages面板会列出错误和警告。新手常见错误包括:悬空引脚、未连接的引脚出现小红叉、两个元件位号重复。
我的做法是:每画完一个模块,就编译一次,别全部画完再编译。因为模块少时错误好定位,全画完再查,几百条报错很容易让你心态崩。特别是STM32F103C8T6最小系统这种几十个元件的板子,分模块编译能省一半时间。
3. 从原理图到PCB:这一步卡住了很多人
3.1 导入PCB之前,必须确认的三件事
从原理图切换到PCB,不是点一下按钮就完事的。在导入前,我建议做三件事:
第一,编译工程,把Messages里的Error清零,Warning尽量清零。第二,确认每个元件都绑定了封装,可以到原理图编辑器中逐个查看元件属性,或者直接在Messages里看有没有“Component has no footprint”的警告。第三,确认板框尺寸已经有了大致规划,别让PCB在空文件里凭空冒出来。
如果这三件事没确认,导入后你会面对满屏飞散的元件和密如蛛网的飞线,那时候再去定位封装缺失的问题,效率极低。
3.2 Update PCB Document与ECO列表:绿勾和红叉
在原理图编辑界面,执行Design → Update PCB Document XXX.PcbDoc,AD会弹出Engineering Change Order(ECO)窗口,里面列出所有将要进行的修改,比如Add New Parts、Add Nets、Add Rooms等。
这里很多新手会搞错一个概念:不是点一下“更新”就自动完成,必须先点击Validate Changes,检查每个变更项是否合法,第一列是绿色勾表示通过,红色叉表示有问题,再点Execute Changes执行变更。
如果Validate阶段就出现红叉,常见原因有两个:一是某个元件的封装在PCB库里找不到,AD无法完成添加;二是原理图元件位号重复或数量为0。解决这些问题后再重新Validate。
执行完成后,PCB编辑界面会出现一堆元件和Room框(Room是AD自动生成的一个区域性容器),同时板外有一堆飞线。看起来乱是正常的,接下来才是真正的战场。
3.3 定义板框与螺丝孔:用机械层还是Keep-Out层
在PCB里定义物理外形,常见有两种思路:用Mechanical 1层画轮廓,或者用Keep-Out层画。我的建议是:用Mechanical 1层画物理边界,用Keep-Out层限制布线区域。
原因是加工厂识别板框主要看机械层,Keep-Out层在部分工厂理解中只是“禁止布线区”,并不等于板子外形。正确操作:在Mechanical 1层画一个闭合矩形,选中矩形后执行Design → Board Shape → Define from Selected Objects,快捷键D+S+D,把板子形状定下来。
螺丝孔的制作方式也比较简单:在需要放螺丝孔的位置放置一个过孔(Via)或焊盘,外径6mm的过孔对应M3螺丝,孔径建议比螺丝直径大0.2到0.3mm,即3.2mm左右。同时最好在螺丝孔周围再画一个Mechanical层的圆环,标注一下禁布区域,防止铜皮靠近螺丝孔。
4. PCB布局与布线:思路比手速更重要
4.1 布局的第一原则:分区、分区、分区
PCB布局是决定整块板能否工作的第一道关口。新手最容易犯的错误是“哪里顺眼放哪里”,或者把所有元件按原理图顺序排开。正确思路是功能分区。
以STM32最小系统板为例:电源入口放在板边,USB或排针接口放在板边,MCU放中心区域,晶振尽量靠近MCU的OSC引脚,去耦电容尽量靠近芯片电源引脚,复位按键放边缘方便按压。按功能把板子划分成电源区、主控区、接口区、指示区,先摆大件,再填充小件。
布局阶段就要注意信号流向:输入信号从一侧进来,经过处理后从另一侧出去,不要让高速或敏感信号在板子里来回绕。飞线交叉混乱可以通过调整元件位置来优化,布局阶段多花半小时,布线阶段能省三小时。
4.2 布线规则怎么设:线宽、间距、过孔不是随便填的
布线之前,必须先在Design → Rules里设置规则,千万别裸奔直接拉线。最关键的三条规则是:Clearance(间距)、Width(线宽)、Routing Via Style(过孔)。
Clearance通常设0.2mm以上,加工厂最小能做到0.15mm甚至更小,但普通的1.6mm板厚、1oz铜厚情况下,0.2mm是稳定线宽间距,不易出问题。Width按网络分组设置:普通信号线0.2mm到0.3mm,电源线0.5mm,地线尽量加宽。过孔常用尺寸是孔径0.4mm、外径0.8mm。
关于电流和线宽的经验关系,可以参考这个简化表格(铜厚1oz):
| 电流 | 建议线宽(mm) | 说明 |
|---|---|---|
| 小于0.5A | 0.2 - 0.3 | 普通信号线 |
| 1A左右 | 0.5 | 小功率电源线 |
| 2A左右 | 1.0 | 大电流电源线 |
| 每增加1A | 在上表基础上增宽0.5 | 具体还需考虑铜厚与走线长度 |
这个表格是常用经验值,不精确,但足以帮新手避免“线烧了都不知道原因”的尴尬。如果走线很长,电压降和发热会更明显,需要适当加宽。
4.3 交互布线:快捷键和技巧,能省一半力
AD22中常用交互布线快捷键是P+T,或者直接点顶部菜单Place → Interactive Routing。布线过程中,按Shift+W可以快速切换线宽预设,按Shift+V可以选择过孔类型,按数字小键盘的*键或Ctrl+Shift+滚轮切换布线层,右键可以切换绕线方式(45度、45度圆弧、任意角度等)。
我习惯在布完一根线后,按住Ctrl点已经布好的走线,AD会高亮同一网络,方便快速找到下一段目标引脚,比盯着飞线找效率高很多。布完所有线路后,可以通过View → Fit Board(快捷键V+F或V+D)看整个板子的全貌,检查有没有明显遗漏。
另外,高亮网络也有快捷方式:按住Alt点击任意网络对象,整个网络会高亮显示。在元器件“选中不了”或者怀疑连接不对时,这个功能非常有用。
4.4 铺铜:地平面与涡流损耗的认知
两层板铺地铜是常规操作,但很多新手铺纯属“为了铜皮好看”,甚至有的板子在高速信号下面铺了整块铜却不知道这改变了阻抗特性。
正确做法:设置一层网络为GND的Polygon Pour(快捷键P+G),铺铜时注意设置与走线的最小间距(建议0.3mm以上),并把“Pour Over Same Net”里的选项选成可靠连接或花焊盘连接。地铜皮的好处:提供大电流回流路径、降低地阻抗、增强EMC抗扰能力。
关于涡流损耗,不需要理解太深层次的电动力学,但你要知道一点:在接近电感、变压器、或者大电流开关节点下方的实心铜皮中,磁场变化会在铜皮中感应出涡流,产生损耗和发热,严重的还会改变电感参数。所以反激式开关电源、大电流DC-DC这类板子,电感正下方的铜皮要挖空,或使用网格铺铜而不是在磁场变化剧烈的区域用大片实心铜。
普通数字电路板不用过于担心这个问题,但如果你在画电源板,这是必须注意的点。
4.5 如何在PCB上显示元器件型号、名称和值
很多新手导入PCB后,发现元件旁边只有位号,没有参数值,比如电阻不知道阻值、电容不知道容值。AD22里显示值的做法是:选中元件,在右侧Properties面板中找到Display的区域,勾选“Show Name”和“Show Value”对应的项。
如果要批量所有元件一起改,可以用右键 → Find Similar Objects,在弹窗中把Object Kind设为“Component”,点击OK选中所有元件,然后在Properties里统一勾选显示Name和Value。这样丝印层上就能看到R1、10K、C1、100nF这类信息,后期焊接和调试方便很多。
丝印显示太密会重叠,建议调整字体高度在1.2mm到1.5mm之间,太大会占PCB空间,太小产线识别困难。
4.6 层叠(Stackup):两层板默认,四层板要规划
PCB层叠的选择直接影响性能和成本。常规两层板默认1.6mm板厚、1oz/1oz铜厚就够了;如果是高速信号多、EMC要求高、布线密度大的场景,建议用四层板,常见层叠结构是:顶层信号、第二层GND、第三层POWER、底层信号。在Design → Layer Stack Manager里可以切换层数并设置各层厚度。
四层板的优势在于完整的参考平面,信号回流路径更短,EMI更低。缺点是成本上升、打样周期略长。新手如果只是做学习板,两层板基本都够用;如果做USB等高速接口,至少保证所有信号线下方有连续的完整地平面,不要跨分割。
5. 检查、修补与输出:交付前最后再看一遍
5.1 DRC怎么读:不是所有红叉都要改
布线完成后,执行Design → Board Rules Check,AD会跑一次设计规则检查。结果列表通常分错误和警告,不要看到满屏报错就慌,先分类。
| 类型 | 常见原因 | 处理方式 |
|---|---|---|
| Error:Short-Circuit | 两条不同网络铜皮短路 | 必须修复 |
| Error:Un-Routed Net | 网络未完全连通 | 必须修复 |
| Error:Un-Connected Pin | 引脚没连上 | 必须修复 |
| Warning:Silk Overlay | 丝印压到焊盘或重叠 | 尽量调整,不影响电气性能 |
| Warning:Minimum Solder Mask Sliver | 阻焊桥宽度不足 | 视加工能力决定是否调整 |
| Warning:Hole Size Constraint | 孔径超出常规范围 | 核对封装是否正确 |
高优先级的三类必须清零,丝印和阻焊类警告可以留在后面统一处理。DRC不是设置完就跑一次,而是布线过程中隔一段时间跑一次,及时发现问题。
5.2 散热焊盘与十字花焊盘:为什么大焊盘这么难拆
很多人吐槽:电源模块用热风枪吹半天拆不下来,感觉热风枪没效果。这其实不怪热风枪,问题出在PCB设计的大面积铜皮。
当元件引脚直接连接到顶层和底层大面积铜皮时,铜皮会迅速把热量导走,焊锡还没来得及完全熔化,热量就被整块板子吸收了。这时候即使热风枪温度调到400度也不容易拆下来。
合理的做法是在PCB设计阶段就为接大铜皮的焊盘使用花焊盘(Thermal Relief,热焊盘)连接方式,也就是铜皮通过几根细铜筋连接到焊盘,而不是全包围。这样焊接和拆卸时热量集中在焊盘附近,焊锡能快速熔化。
AD22里设置花焊盘:在规则中设置Polygon Connect Style,选择Relief Connect模式,给定连接宽度和空气隙宽度。电源模块下方再加几个过孔帮助散热,兼顾了可焊性和可拆性。
5.3 拼板(Panelization):新手建议直接交给工厂
“AD PCB拼版”也是高频搜索问题。拼板是为了提高加工和贴片效率,同时降低成本。AD里可以自己拼,但新手不建议动手,原因在于拼板涉及V割、邮票孔、工艺边这些参数,做不好反而给工厂添麻烦。
如果确实想自己拼,思路是:在PCB界面全选当前板内所有对象,复制后Edit → Paste Special,勾选“Duplicate designator”不行,因为拼板要求位号唯一,这种方式适合制作“一模一样且不需要区分位号”的板子,只有纯机械复制需求才适合。正确定义位号唯一性的拼板,一般靠AD的“Embedded Board Array”功能或者直接交给工厂拼。
更稳妥的方案:打样时直接备注“需要拼板,请工厂按V割/邮票孔拼4×4”,大多数国内打样厂都免费提供拼板服务。省时省力还不容易出错。
5.4 输出Gerber:别发给工厂一个.PcbDoc
很多新手直接把.PcbDoc发给厂家,这其实不是正规流程。Gerber才是PCB生产制造的通用格式,几乎所有工厂都能直接识别。
输出方法:File → Fabrication Outputs → Gerber Files,在弹出的对话框中:
- 格式选择RS-274-X;
- 精度选择2:5格式,即整数2位小数5位(0.01mil精度),这是行业通用标准;
- Layers里勾选需要输出的层,通常包含Top Layer、Bottom Layer、Top Overlay、Bottom Overlay、Keep-Out Layer、Top Solder、Bottom Solder、Mechanical 1;
- 点击OK生成Gerber文件。
另外一步不能省:File → Fabrication Outputs → NC Drill Files,输出钻孔文件,否则工厂不知道板上的孔钻在哪里。
生成Gerber后,我用一个免费Gerber查看器打开检查一遍,确认铜皮、丝印、钻孔都对,再压缩发给工厂。这个习惯看起来浪费时间,却能避开“打样回来才发现文件错”的大坑。
6. 被问爆的AD22细节问题:排查过程实录
6.1 PCB里器件选不中,不是软件坏了
“ad中pcb上器件不能选中”这个问题几乎天天有人问。通过实际排查会发现,绝大多数情况不是软件故障,而是AD的过滤器(Filter)状态被人改过。比如PCB侧面的Filters面板里勾选了“Select Only:IsVia”或者“IsBoard”,那么点击元件自然没有任何反应。
排查链路:按Shift+C清除所有筛选和Mask状态;再看PCB顶部或右下角的Filter栏,把筛选条件重置为All;如果还是选不中,右键点一个元件检查Properties中Locked是否被打勾,如果被锁定,取消勾选即可。
也可以在PCB面板里直接搜索元件位号,快速定位选中。这个逐层排查的思路适用于AD22很多“看起来像Bug”的操作问题。
6.2 原理图移动元件断线,与网表无关
前面提过这个问题,这里再补充一个排查思路:如果你的Wire连接在移动元件后物理上出现明显断裂,但编译后网络名相同、没有报错,那说明电气连接没丢,只是图形上看着断开。双击导线端点,把导线端点拉回到元件引脚上即可恢复视觉连接。
如果编译后报了很多Unconnected Pin,那就不是图形问题,而是真的没连上。处理时逐根线与引脚端点对齐,利用Snap Grid吸附到同一个栅格上。养成“放置元件用Align、连接信号用Net Label”的习惯后,这类问题会大幅减少。
6.3 Room框乱飞怎么办
导入后AD会生成Room框,有时候原理图更新后Room会跑到板外,或者把元件包在里面导致布局困难。在PCB界面里,可以选中不需要的Room,按Delete删除;或者执行Design → Rooms → Delete All Rooms,然后在更新PCB时取消勾选This Room选项,避免后续每次同步都生成新的Room。
Room本身不是必需的,很多熟练设计师导完元件后第一步就是删掉Room再开始布局。
我做过的板子里,凡是一次打样就能正常工作的,几乎都在封装核对、DRC和Gerber检查这三个环节上花了足够时间。尤其是输出Gerber之前回头看一眼封装和走线,哪怕每次都像例行公事,也比拿到废板再排查强得多。这套流程顺着走下来,从原理图到PCB就不再是玄学,而是一条可验证的路径。