AD原理图到PCB全流程:网表同步、规则设置与Gerber输出
上周一个刚入行半年的小兄弟发消息问我原理图画完了怎么才能让AD软件把它变成一块能发去打样的PCB。他熬到凌晨一点把原理图往PCB里同步结果器件全堆在板框外Messages面板还刷了一屏红字气得差点删工程重画。其实AD软件这条原理图到PCB的链路本身并不玄乎本质就是把你想怎么连翻译成铜箔该怎么连中间靠网表Netlist和工程变更单ECO把两头对齐。真正让人卡住的是文档里从来不写的那些细节封装属性怎么填、编译为什么过不去、器件为什么跑到板外、规则没设好为什么布线处处碰壁。这篇我把这些年用AD画板的完整流程从头捋一遍从原理图收尾检查、编译、网表同步、板框设定、规则设置一直到布线、铺铜、DRC和出Gerber。不管你是刚接触AD软件画图的学生还是从别家工具转过来想摸清AD脾气的老手都能照着走一遍也能避开我当年踩过的坑。1. 先把链路想明白AD到底在原理图和PCB之间传什么1.1 网表不是文件是连接关系加器件清单很多人以为点一下Update PCB Document是在复制原理图其实不是。原理图对PCB来说唯一有价值的信息只有两类一类是器件清单每颗器件叫什么位号、用哪个封装、参数是什么另一类是连接关系也就是网表它只记录U1的第14脚和R5的第2脚属于同一个网络这种逻辑关系至于走线绕多远、走多宽、走内层还是外层它一概不管。理解这一点很关键因为它解释了很多新手困惑的现象原理图里改动一颗电阻的位置PCB里毫无反应但你把某个网络名从VCC改成3V3同步之后PCB里就会多出一个新网络旧网络上的走线直接变成未布线状态。我习惯把原理图看成设计意图PCB看成物理实现中间这一步同步就是签合同。合同签完之后两边就得对账之后任何一边单方面改都要重新走一次同步。这也是为什么工程化项目里工程师宁愿在原理图上改也不愿意直接在PCB里凭手感连线——PCB里手工加的走线在原理图上根本不存在下次同步很容易被当垃圾清掉或者形成一种孤儿网络DRC还会报错。1.2 为什么别用另存为之类的野路子刚学AD的人最容易犯的一个错是在原理图文件上右键另存为PCB或者拿个空PCB文件硬贴器件。这种做法初看能省事但代价是原理图和PCB之间断开了联动关系你改了原理图PCB那边完全不知情你在PCB里删了一个器件原理图还傻乎乎地画着它。等板子打回来焊不上你才发现某颗电容的封装被换成了0603而实物是0805。另一种野路子是直接在PCB里Place Component手动摆件然后用PL硬连线。这个做法在没有原理图的抄板场景下偶尔能救命但对正常项目来说绝对是负收益。因为手动摆件不产生Net信息你的板子在DRC层面就没有任何必须连接的约束一根线漏掉了机器不会提醒你是你自己被万用表打脸。所以只要你不是在做纯抄板或者练手就一定走原理图编译——ECO同步这条正路。前期多花二十分钟整理原理图后面能省掉几个小时的返工。2. 原理图收尾同步前必须做干净的几件事2.1 每个元件都要有可靠的封装属性同步失败的头号原因是原理图里某些元件没有合法封装。AD里每个原理图符号都要在属性面板里指定Footprint它可以来自集成库也可以来自你自己的PCB库。这里有个细节AD的属性面板里Footprint字段填的必须是封装名而不是封装文件的路径路径要在库安装列表里提前配置好。我见过太多人把C:\MyLib\0805.PcbLib这种路径填进去编译不报错一同步就提示找不到封装。更麻烦的是封装名对不上但拼写相近的情况比如库里叫RES-0805原理图里写成R0805AD会忠于原文直接报找不到。我的习惯是先把要用到的所有封装在自己的PCB库里核对一遍命名然后在原理图里对着库名逐个填绝不凭记忆敲。批量改的话可以用Properties面板里的搜索替换或者用Parameter Manager统一核对一千个元件也就是几分钟的事。顺带说一个容易忽略的点多子件元件的封装。像双运放、四路门电路、双MOS管这类器件一颗芯片里含多个Part封装只在其中一个Part上指定其他Part的Footprint字段留空是正常的。但如果你每个Part都填了同一个封装名同步时AD会认为你要在PCB上放好几颗芯片报位号重复。这种问题排查起来很费时间不如一开始就把多子件的封装属性处理干净。2.2 位号、注释、参数规范化位号Designator重复是另一个高频坑。比如两份原理图里都用了R1或者复制粘贴时忘了重命名编译的时候AD通常只在Messages里给一条不起眼的警告你如果没点开看同步之后PCB里就只出现一颗R1另一颗被悄悄丢掉了。板子回来少颗电阻你查半天原理图发现它赫然画在上面。我的做法是编译之前先执行Tools里的Annotate Schematics让AD把整个工程重新编号位号连续且唯一。Annotate的时候要注意几个选项Order of Processing选Across Then Down还是Up Then Across取决于你习惯的阅读顺序对功能没影响但下面那个Numbering Scheme建议保留默认不要随便改成带字母后缀的格式否则后续改板加料容易乱。如果工程里已经有量产过的板子重编号会导致BOM变动这种情况就跳过Annotate改用Annotate Schematics Quietly只补空缺位号。注释Comment和参数Parameters虽然不影响同步但影响BOM和可读性。我一般会保证每颗器件至少有Comment一般写规格比如10uF/16V和一个自定义的Supplier参数方便后期出采购表。2.3 编译与ERC把警告当回事原理图整理完之后右键工程名选择Compile PCB Project。这一步AD会把整个工程交叉引用一遍生成编译后的中间数据所有同步操作都基于这份数据而不是基于你眼睛看到的图纸。编译完成后哪怕Messages面板只弹了一条也建议点开看一眼别习惯性按F5关掉。ERC电气规则检查的常见报错我按处理优先级排一下报错内容常见原因处理建议Footprint not found封装名拼错或库未加载核对封装名确认库已安装并启用Duplicate Designator位号重复运行Annotate重编号No Driving Source输入脚没有驱动源检查是否有上拉/下拉或确认引脚电气类型设错Unconnected Pin引脚悬空有意悬空的加No ERC标记其余补连接Net has only one pin网络只有单点检查是否漏画连线或网络标签拼错Duplicate Net Names同名网络用了不同标签统一网络命名其中Net has only one pin最值得警惕它九成意味着你漏连了一根线而且这条线在PCB里也不会有任何提示——因为没有网络约束DRC根本不会报。我个人的经验是编译后把Messages按严重程度排序警告以上的一条条过不要放过任何一条和网络相关的提示。2.4 跨页原理图与页码处理工程稍微大一点原理图就会拆成多个Sheet。这时候要处理两件事一个是页码一个是跨页连接。页码是每张图纸的Document Number参数如果两张图的编号都是1导出PDF的时候会看到两个1打印装订时特别容易混乱。解决办法是在每张图纸的属性面板里手动指定Document Number或者干脆用Tools里的Number Sheets功能自动铺号。跨页连接靠的是Port端口和Off-Sheet Connector。同一个信号在A页和B页上都放一个同名PortAD编译时会自动把它们连成一个网络。这里有个新手常犯的错用网标Net Label当跨页连接用。Net Label的作用域是单张图纸两页各放一个同名Net Label编译时不会合并同步到PCB上是两个毫不相干的网络名字还撞车。所以跨页用Port页内用Net Label电源用Power Port这三者的作用域分清楚了后面就不会出鬼故事。3. 从原理图导入PCB的完整操作流程3.1 建立PCB文件与板框先在工程里新建一个PCB文件右键工程 - Add New to Project - PCB。文件名我习惯跟工程名保持一致比如MainBoard.PcbDoc这样后面打包发厂不容易拿错。新建之后第一件事不是急着同步而是定义板框。板框决定了器件能落在哪儿、铜皮能铺到哪儿。在AD17之后的版本里推荐的做法是切到某个机械层比如Mechanical 1用Place - Line画一个闭合的矩形或者异形轮廓然后全选这些线执行Design - Board Shape - Define Board Shape from Selected Objects。这样板框就正式生效了视图里会看到一张带圆角的深色板子。如果你画的轮廓没有闭合这个命令会直接失败所以画之前记得检查首尾是否重合用ShiftE开启捕捉能帮你对齐端点。板框的外形尺寸要和结构对上最忌讳看着差不多。有外壳、有安装柱的项目一定要先拿到结构件的开孔位置和尺寸再画轮廓。我见过有人板子画完了才发现固定孔离边缘太近螺丝头压到了走线。更稳妥的做法是让结构同事直接给一张DXF用File - Import - DXF/DWG导入到机械层照着描轮廓误差能控制在几丝。3.2 ECO同步的两种入口和一次典型报错同步有两个入口效果完全一样在原理图界面Design - Update PCB Document xxx.PcbDoc在PCB界面Design - Import Changes From xxx.PrjPcb点完之后会弹出Engineering Change Order对话框里面分三栏Modifications将要执行什么改动、Validate Changes检查能不能改、Execute Changes真正执行。这三个按钮的顺序不能跳先Validate再Execute。Validate阶段会把所有问题一次性暴露出来比如某个封装找不到或者某个网络里有重复位号。Validate全绿之后再Execute器件就会落到PCB里。第一次同步最常见的画面是所有器件密密麻麻堆在板框右下角还套着一个虚线框那就是Room。Room本身是AD用来分组管理器件的东西对小工程来说没什么用我通常直接在Room上右键Delete掉器件就散开了。注意删Room的时候要选Delete Room Only别把里面器件一起删了。如果Validate报红最典型的就是Footprint not found。这时候别急着去改原理图先在PCB侧打开Components面板看看缺的是哪几颗然后回到原理图核对该元件的Footprint字段是不是和库里的名字完全一致。我踩过一次坑库里封装名后面有个空格肉眼看不出来编译也不报错Validate就是过不去最后是把两个名字复制到文本编辑器里对比才发现的。所以遇到这类问题复制粘贴比对胜过肉眼检查。3.3 器件落地后的Room处理与初步布局器件落地之后我一般会先做一轮粗略分堆而不是立刻精确定位。做法是框选所有器件用Tools - Component Placement - Arrange Within Rectangle先按类型粗略排开或者更粗暴一点按功能手动拉到板框附近电源部分一堆、MCU一堆、接口一堆。这一轮的目的不是好看是让后面的布局有个起点。真正开始摆放的时候我会按信号流向来走。以一块STM32F103C8T6的最小系统板为例先把USB或者排针接口放到板边再把LDO、输入电容、输出电容按从左到右的顺序摆在接口旁边接着把MCU放到中间晶振紧贴MCU的OSC引脚复位电路挨着NRST最后是LED和按键放在容易操作的位置。这个顺序的好处是你不用等到布线阶段才发现电源线要绕半块板。摆放的同时可以顺手把丝印调一下。AD的器件位号默认可能压在焊盘上或者朝向五花八门。我习惯用Tools - Component Placement - Auto Position下的位号自动摆放然后再手动微调几个关键的。丝印不用追求完美但至少要做到装配时能看清、不压焊盘、不超出板边。4. AD画PCB必须先设好的规则4.1 电气间距与线宽电流对照规则是AD里最容易被跳过、也最容易让布线阶段崩溃的一环。你如果什么都不设就开画默认的Clearance是10mil线宽是10mil走几根线下来就会发现过孔放不下、间距处处报错。我的建议是在布线之前把规则过一遍重点就三个Clearance、Width、Via。Clearance按加工能力设。国内大部分常规工艺的板厂两层板线宽线距6/6mil约0.15mm是标配四层板做5/5mil也没问题性价比高的区间是8/8mil。我一般的设法是全局Clearance设0.2mm然后给电源网络单独放宽到0.3mm给高压隔离区域单独设一条大到离谱的规则。这样既有安全余量又不会浪费面积。线宽和电流的关系是新手最关心的。铜厚1oz35μm的前提下外层走线在允许10℃温升时的载流能力大致如下线宽mm对应mil1oz外层载流约常见用途0.280.7A一般信号线0.3121.0A小电流电源0.5201.5A主电源、电机驱动1.0402.5A大电流路径2.0804.0A电源入口、汇流这张表是工程上的大致参考真按IPC的标准公式算会得到相近的量级但实际设计里我会再留30%以上余量因为板子装在密闭外壳里环境温度可能比实验室高不少。经验上电源主干线宽按1A对应0.5mm来估算是比较稳的需要更大电流时优先考虑加铜厚、开窗加锡或者铺一整块铜皮而不是无限加宽走线。4.2 过孔、层叠与平面规则过孔尺寸要和板厂的钻孔能力对上。常规工艺最小机械孔0.2mm但我一般用0.3mm孔径配0.6mm焊盘这个组合几乎所有板厂都不加价可靠性也好。电流大的路径别指望单个过孔0.3mm过孔的载流能力大概1A左右1.5A以上我就打两个并联3A以上打四个呈田字形排布。层叠方面两层板适合简单项目四层板是最常用的性价比方案。四层板的经典叠法是Top - GND - Power - Bottom信号走在顶层和底层第二层做完整地平面第三层做电源分割。这样做的原因是地平面离信号层只有一张介质回流路径最短信号完整性最好。如果项目里有DDR4或者千兆以太网这类高速接口层叠就要重新规划通常要保证高速信号有完整的参考平面必要时加到六层甚至八层。层叠厚度建议在Layer Stack Manager里按板厂的标准结构填写比如总厚1.6mm、芯板0.5mm这种出来的阻抗才是可预期的。4.3 差分对与等长规则USB、以太网、DDR这类接口的布线光靠普通走线是不够的。USB 2.0的D和D-要在原理图里就建立差分对关系做法有两种一是用命名约定网络名分别叫USB_D_P和USB_D_NAD认得_P/_N后缀二是用Place - Directives - Differential Pair指令把它贴在两条线上然后在属性里配对。建立好之后在PCB侧的Differential Pairs Editor里就能看到这一对接着在规则里设置差分阻抗和线宽线距比如USB 2.0设90Ω差分、线宽0.2mm、间距0.15mm。等长主要针对并行总线比如DDR4的地址线和数据线。AD里可以用xSignals功能定义一组需要等长的网络然后在规则里给这组网络设一个允许误差比如±50mil。布线的时候用Tools - Interactive Length Tuning快捷键是T加R来加蛇形绕线绕的时候注意不要在原信号路径上留下太长的分支蛇形段要尽量均匀避免自串扰。LAN8720A这类PHY芯片的差分对除了等长还要注意走线尽量短、不要在中间打过孔换层、参考平面必须完整。5. 布局布线实操从摆放器件到铺铜收尾5.1 布局的三条优先级布局决定布线的成败。我把布局的原则归纳成三条优先级按顺序来就不会乱接口位置优先固定。连接器、排针、按键、指示灯这些和结构、外壳相关的东西位置由不得你先把它们钉死。核心器件靠中心。MCU、FPGA、电源芯片放在板子中间区域保证四周到它的走线距离都比较均衡。去耦电容贴身放。每颗电源引脚旁边都要有去耦电容而且离引脚越近越好走线越短越好最好走成引脚-电容-地这样一个小环路。这一条做不到后面信号出问题的时候你会怀疑人生。晶振的摆放单独强调一下紧贴MCU的振荡引脚两个负载电容对称摆在晶振两侧晶振下方不要走任何其他信号最好在晶振周围打一圈地过孔做包地。这些不是玄学是降低时钟抖动和干扰的实际手段。5.2 走线与铺铜的现场细节走线的基本操作是PL开始交互式布线PV放过孔走的过程中按L换层按空格切换拐角方向。几个我常用的技巧按ShiftE切换捕捉模式能快速吸附到焊盘中心、走线端点、栅格点配合G改栅格大小效率提升非常明显。走线拐角只用45度或圆弧不用直角。直角走线在高频下会因为线宽突变引起阻抗不连续低频板子虽然影响不大但养成习惯没坏处。过孔换层的时候尽量让过孔靠近焊盘不要拖一截短线再接孔。短线会在高频下形成寄生电感。布线顺序一般是先电源后信号先关键信号后普通信号先密后疏。别一上来就在板边画耗时的装饰性走线。铺铜是收尾阶段的大动作。常用操作是PG画多边形铜皮画的时候在属性里指定网络一般是GND然后设置移除死铜Remove Dead Copper。铺铜的规则设置里有几个选项要留意网格铜Hatched和实心铜Solid的选择一般信号板用实心铜散热要求高的地方可以配合网格包围间距Pour Over设置成Pour Over All Same Net Objects这样同一网络的焊盘和过孔能被铜皮直接覆盖接地阻抗更低。5.3 铜皮挖空、隔离带与常见误区铜皮挖空这个功能很多人用到的时候才想起来找。它的用处主要有三类一是净空区比如天线下方、蓝牙模块周围要求不能有铜二是隔离带高压和低压之间需要一条明显的间隙三是结构避让螺丝孔、安装柱周围需要留出空间。操作方式是Place - Polygon Cutout在已有铜皮上画一块区域然后重新铺铜Tools - Polygon Pours - Repour All那块区域就被挖掉了。挖空之后一定要重新铺铜并重新做DRC因为铜皮的形状变了可能会出现新的死铜或者间距违规。我见过一种情况挖空区边缘离某个焊盘只剩0.1mmDRC报短路查了半天才发现是挖空边界画歪了。所以挖空之后建议用View - 3D Layout或者按2键切2D视图核对一下边界。另一个常见误区是把所有层都铺满铜。实际上顶层和底层的铜皮要有节制因为它们离元件最近铺错了会带来寄生电容影响高频信号也会让焊接返修变难。我的习惯是顶层做选择性铺铜底层做完整地平面中间层专层专用不混用。6. 常见问题与排查套路6.1 同步失败与网络丢失同步失败的问题我整理成一张速查表遇到报错直接对号入座现象大概率原因排查动作Validate就报红提示找不到封装封装名不一致或库未加载打开Components面板核对缺件名单回原理图逐个对比封装名器件全部堆在板外且位置重合Room未定义或板框未生效删除Room重新定义Board Shape某个网络在PCB里只有一截走线原理图里该网络只有单点连接回原理图搜索该网络名检查是否漏画连线同名网络在PCB里变成两个跨页用了Net Label而非Port把页内的Net Label换成Port重新编译再同步删除器件后PCB里还留着走线同步时勾选了不删除的选项检查ECO对话框的Modifications列表确认删除项已勾选这张表里我特别想强调最后一条。ECO对话框里默认会列出所有改动但如果你之前手动改过一些东西可能会在列表里看到Delete Component这类条目被你顺手取消了勾选结果就是原理图上删掉的器件PCB里还阴魂不散地躺着最后变成一个孤立网络DRC还不一定报得出来。所以每次同步前扫一眼Modifications列表确认该删的真的被删了。6.2 DRC报错与死铜DRC跑完之后密密麻麻的报错里最常见的是这几类Clearance Violation间距不足、Short-Circuit短路、Un-Routed Net未布线、Width Constraint线宽不符合规则。处理顺序上我一般先把Un-Routed Net清掉再处理短路最后统一看间距和线宽因为这些报错之间会互相掩盖。短路报错有时候是铜皮引起的尤其是铺完铜之后某个网络被铜皮意外连上。这种情况下一方面检查铜皮的间距设置一方面确认铜皮指定的网络是不是GND。还有一种情况是焊盘和过孔之间的阻焊开窗重叠DRC会当成短路报出来这个可以通过调整Solder Mask Expansion解决。死铜Dead Copper是另一类烦人的问题。所谓死铜就是一块铜皮和它的网络没有任何电气连接孤零零地悬在那儿。它不但没作用还可能在蚀刻过程中脱落或者贴着信号线耦合噪声。解决办法是在铺铜的属性里勾选Remove Dead Copper让AD自动清理。如果清理完之后某个区域完全空了说明那块地确实没有连接点需要考虑补几个地过孔打通。6.3 输出文件Gerber、钻孔与PDF图纸板子画完DRC全清就可以出文件发厂了。Gerber的输出路径是File - Fabrication Outputs - Gerber Files。几个参数务必核对单位选Inches格式选2:4或者2:5现在板厂基本都支持2:5精度更高层选择里Top和Bottom的阻焊层Solder Mask、丝印层Silkscreen、钢网层Paste都要勾上机械层记得把你定义板框的那个层也勾上否则板厂不知道板子外形。Gerber出完还要出钻孔文件路径是File - Fabrication Outputs - NC Drill Files。钻孔文件和Gerber必须放在同一个目录板厂才能自动匹配。输出的常见坑是钻孔文件里没有勾选Separate files for plated and non-plated holes导致金属化孔和非金属化孔混在一起装配孔的孔径出现偏差。所以勾选项要逐个核对别图快一路下一步。最后是图纸输出。原理图的PDF建议用File - Smart PDF导出前确认每张图纸的Document Number不重复PCB的装配图可以用Draftsman生成一张带位号和尺寸的正式图纸方便焊接和检查。如果只是自己看直接File - Print预览一下也行但发厂和交付时正式的PDF图纸还是要有出问题时至少有个证据说明你当初设计的是什么样。我个人在实际操作中的体会是AD这条从原理图到PCB的链路真正的门槛不在软件操作而在前置检查的耐心。原理图那一头多花二十分钟核对封装、位号、网络和跨页连接后面能省掉两三个小时的返工和排查这个账怎么算都划算。还有一个习惯我坚持了很多年每完成一轮同步或者一次大改动就立刻跑一次DRC别等到板子画完了再统一检查那时候报错堆成山根本分不清哪条是旧的、哪条是新引入的。另外规则不是一次性设定就永远不动的项目换一个、板厚换一次、信号速率提高一档规则都得跟着调我会在工程目录里留一份规则导出的文件Design - Rules - 右键Export Rules下次开新工程直接导入省去重复配置的时间。
上一篇/下一篇内容由系统自动关联
返回资讯列表 →