第8章:PCB Layout基础与实物打样——把你的设计变成一块真正的板子
大家好我是老张。上一章带着大家搞定了原理图设计到了这一章咱们终于要动真格了——把原理图变成一块能捧在手里的PCB板子。很多做嵌入式软件的兄弟对画板子有一种莫名的恐惧觉得Layout是门玄学只有那些十年经验的“老师傅”才玩得转。其实没那么夸张。你又不画电脑主板、不画手机射频画个MCU核心板加上几个传感器接口技术含量在于懂规矩、有耐心而不是什么不传之秘。这一章是整个专栏的收官之战。我会带你从原理图导入PCB开始一步步完成布局、布线、覆铜最后导出Gerber文件送去打样。当你亲手收到自己设计的板子焊上元器件烧进程序跑起来的那一刻——你就再也不是那个只会写代码的嵌入式工程师了。目录一、从原理图到PCB——跨出第一步1.1 导入网表检查封装1.2 设置板子尺寸与层数二、布局——PCB设计的灵魂比布线重要十倍2.1 先大后小先核心后外围2.2 模块化分区模拟数字分开三、布线——该粗的粗该短的短该绕的绕3.1 线宽选择——电流决定粗细3.2 地线不是走出来的是铺出来的3.3 晶振和高速信号的走线规矩3.4 过孔——少打、打对位置四、覆铜与电气规则检查——送打样前的最后一关4.1 顶层也要覆铜4.2 丝印调整4.3 设计规则检查DRC五、导出Gerber与下单打样——等快递的心情是最激动的六、焊接调试——板子来了别急着上电6.1 焊接顺序6.2 常见故障排故七、本章总结一、从原理图到PCB——跨出第一步1.1 导入网表检查封装原理图画好、ERC检查通过之后在EDA软件里执行“原理图转PCB”操作工具会自动生成一张空白PCB上面堆着一堆带着飞线的封装。这时候别急着动手摆件先花十分钟做一件事对照BOM清单逐个确认封装是否正确。这是我用血的教训换来的经验。有次画一个传感器模块原理图上选的LDO是SOT-89封装结果BOM采购回来的是SOT-23-5封装的另一颗芯片引脚定义都对不上整板报废飞线调试还行没法量产。后来养成了习惯导入PCB后的第一件事就是把每个元器件的封装跟采购清单上的实物封装核对一遍。特别容易翻车的封装二极管和LED正负极标记方式各厂家不一样1脚是A还是K必须对着数据手册确认三极管和MOS管同一颗SS8050有TO-92直插和SOT-23贴片两种封装引脚排列完全不一样电容0805封装的电容高度可能差异很大如果做超薄外壳就得注意连接器脚距是2.54mm还是2.0mm是直针还是弯针方向朝上还是朝侧面错一个板子就装不进外壳1.2 设置板子尺寸与层数新手第一块板子我建议直接用两层板。两层板便宜嘉立创常规工艺5片免费走线也够用。四层板虽然多了内电层和地层走线轻松但价格贵会翻倍等你做高速或高密度设计再上不迟。板子外形按需求画。没有外壳限制的话长宽控制在5cm×5cm以内打样最便宜。安装孔放在四个角孔径3.2mm适配M3螺丝孔边留3mm以上的禁布区防止螺丝头压到走线或元器件。二、布局——PCB设计的灵魂比布线重要十倍很多新手一上来就急着拉线大错特错。PCB设计里有一个铁律布局决定布线的难度布线决定信号的品质。布局没做好后面拉线时会发现自己给自己挖了无数坑。老张一般会在布局阶段花掉整个Layout时间的六到七成想清楚了再动手布线。2.1 先大后小先核心后外围摆放顺序有一条原则先放固定位置的再放核心芯片最后放小元件。第一批接插件、按键、指示灯、螺丝孔——这些受限于外壳和面板位置是死的。先把它们固定好锁定不动。第二批MCU芯片——整个板子的核心。把它放在板子中央偏上的位置给外设留出四周空间。MCU的去耦电容紧贴在对应电源引脚旁边先预占位。第三批晶振——紧靠MCU的OSC_IN和OSC_OUT引脚走线尽量短晶振下面不走其他信号线这点在第4章提过布板时严格执行。第四批电源模块LDO/DC-DC——根据输入电源方向放置。我一般把电源放在板子的一角或一侧和数字信号区域拉开距离。功率电感如果体积大、发热多还要考虑散热和振动空间。第五批各功能模块——I2C传感器、SPI Flash、串口芯片、CAN收发器等按信号流围绕MCU摆放。原则就一条关联紧密的器件就近放信号流越短越好。2.2 模块化分区模拟数字分开布局时要脑子里有张功能分区图。老张的习惯是把板子分成几个“软区”数字区MCU、存储器、通信芯片高速翻转噪声大模拟区运放、传感器接口、ADC前端敏感脆弱功率区DC-DC、电机驱动、继电器电流大发热多三个区域尽量在物理上分开至少不要混在一起。模拟区和数字区中间可以留一道“隔离带”在最终的地平面上用铜皮断开一个窄缝只在一个单点处用0Ω电阻或磁珠连接单点接地原理见第4章。一个容易忽视的细节器件不仅不能相互碰撞还要给焊接和调试留足空间。贴片阻容之间至少留0.5mm间隙QFP芯片四周留出至少2mm的空间给烙铁或热风枪操作测试点不要藏在芯片肚子底下。三、布线——该粗的粗该短的短该绕的绕布局定稿以后布线就是体力活了。两层板的话我习惯顶层走水平方向底层走垂直方向这样交叉走线自然减少冲突。当然这只是习惯具体怎么走看板子实际情况。3.1 线宽选择——电流决定粗细信号线不是越细越好也不是越粗越好。线宽由两个因素决定电流承载能力和阻抗要求。电流定粗细一般FR-4铜厚1oz约35μm的板子上常温下10mil0.254mm宽的走线能承载约1A电流。所以普通信号线几十mA以下8~10mil足够电源走线几百mA到1A20~30mil大电流电源线1A以上用敷铜块或多层并联走线或者干脆用开窗加锡GND不用走线直接覆铜下一节说实用经验除了受BGA等密脚封装限制外信号线统一走10mil电源线统一走20~30mil板子整体工艺余量充足。能做粗的地方尽量做粗粗线阻抗低、压降小、发热少、抗干扰能力强而且对PCB厂良率友好。3.2 地线不是走出来的是铺出来的这是新手最容易犯的错误把地线当成普通信号线一根一根地走。正确做法是覆铜。在两层板上底层全部铺成地平面GND Copper Pour元器件接地引脚直接打过孔到地层就像把地线“吸”到了一个大铜皮上。这样做的好处低阻抗大面积铜皮等效电阻极低不管电流怎么走地电位都稳良好的信号回流路径每个信号线在临近的地平面上有一个对应的回流回路面积小电磁辐射低散热好大面积铜皮是天然的散热器信号层顶层走不通的时候可以在底层地铜皮上断开一小块走信号线但走完以后马上用铜皮补回去尽量保持地平面的完整。重要提醒覆铜以后一定要检查不要留“浮铜孤岛”——一小块铜皮四周被走线割断跟任何引脚都不连悬在那里会变成天线反而产生EMI问题。EDA工具通常有孤岛检查功能覆铜后跑一遍发现孤岛就删掉。3.3 晶振和高速信号的走线规矩晶振走线晶振两个引脚到MCU的走线尽量短、等长、包地。晶振下方禁止走任何信号线尤其是数字数据线。晶振的负载电容接地脚直接打孔到地平面。如果晶振是金属壳的外壳焊盘接地。差分对走线USB的D/D-、CAN的H/L、RS485的A/B都是差分信号。差分走线的核心要求两条线等长、等间距、走在同一层路径完全一致。这样外部干扰会在两条线上感应出相同的电压差分接收时抵消掉。差分对阻抗一般要求90ΩUSB或120ΩCAN需要根据板层厚度和铜厚计算线宽和间距。低速率短距离可以直接参考芯片数据手册推荐的线宽间距一般10~15mil线宽、线间距控制在线宽的1~2倍左右速率不高时问题不大。3.4 过孔——少打、打对位置过孔是连接不同层走线的“电梯”。好用的同时也带来麻烦过孔的寄生电感会恶化高速信号过多的过孔会把地平面打成筛子。几个原则电源和地去耦电容的接地端直接用最短的走线打孔到地平面不要绕一圈再打过孔高速信号线上尽量少打过孔最好不换层。换一次层就多一次阻抗不连续和信号反射过孔不要打断地平面的回流路径如果一排过孔密密麻麻横着切断了地铜皮信号回流传不过去只能绕大圈EMI就上来了四、覆铜与电气规则检查——送打样前的最后一关走完线以后还有几件事必须做4.1 顶层也要覆铜两层板的话顶层走完信号线以后剩余空白区域也全部覆铜接GND。然后在顶层覆铜和底层覆铜之间均匀地打上一批过孔缝合孔/Stitching Vias把两层地平面牢靠地缝合在一起。这些过孔间距一般1~2cm信号换层过孔旁边最好也有一个地过孔提供就近的回流路径。缝合良好的地平面是信号完整性的基石。4.2 丝印调整丝印是印在板子上的白字用来标注元件编号、引脚功能、接口名称。调整丝印的时候注意不要压在焊盘和过孔上生产时会被削掉方向尽量统一方便焊接时阅读接插件旁边标清楚引脚定义VCC、GND、TX、RX方便调试在板子空白处印上版本号、日期、你的名字或项目名4.3 设计规则检查DRC所有EDA工具都有DRC功能送打样前必须跑一遍别偷懒。DRC会帮你查走线间距太近过孔打在焊盘上走线没连上丝印压焊盘铜皮孤岛任何报错都必须认真对待。偶尔有极少数可以忽略的报错比如某个特殊元件的焊盘间距本身就小但每条都要你亲自确认“这不是问题”。五、导出Gerber与下单打样——等快递的心情是最激动的DRC通过以后就可以导出Gerber文件了。Gerber是PCB加工厂的标准文件格式包含了每一层的图形信息顶层铜皮、底层铜皮、顶层丝印、底层丝印、阻焊层、钻孔层、外形层。导出时按EDA软件的默认设置一般没问题但有两点确认一下钻孔文件和Gerber文件的对位是否一致外形层Outline/Mechanical层是否包含板子外框和安装孔导出后用嘉立创的在线Gerber查看器或者Gerbv软件打开看一眼确认跟你在EDA里看到的一样就可以上传下单了。下单填参数板厚一般1.6mm超薄产品选1.0mm或0.8mm铜厚常规1oz颜色绿色最便宜也是目前工艺最成熟的颜色。黑色、蓝色、红色加钱表面处理无铅喷锡或沉金。沉金平整度好、可焊性强贵一点但值得。打样选喷锡省钱交期不急选常规急用选加急第一次拿到自己设计的PCB那种感觉我到现在都记得——比收到任何网购快递都兴奋。六、焊接调试——板子来了别急着上电6.1 焊接顺序板子到手不要一口气把所有元件全焊上去。按这个顺序来第一步先焊电源部分——LDO或DC-DC、输入输出电容。焊完用万用表量输出确认电压正确、没有短路。第二步焊MCU最小系统——芯片、晶振、复位、去耦电容。焊完上电用万用表量各VDD引脚电压确认3.3V。接上调试器看能不能读到芯片ID。第三步焊通信模块和传感器模块。焊一个测一个通过串口或调试器确认外设正常工作。第四步焊剩下的周边电路。逐级调试的思维能救命一次性全焊上上电短路冒烟你根本不知道哪个环节出问题。逐级来哪级出错就查哪级排故时间从几小时变成几分钟。6.2 常见故障排故上电短路万用表蜂鸣档量电源和地响了就是短路。先查电解电容极性是否反了再查芯片引脚是否有连锡用放大镜或手机微距镜头看最后查PCB本身有没有制造短路用刀片划开可疑走线验证。晶振不起振量晶振两端对地电压正常应该在VDD/2左右。如果一端是VDD另一端是0V或者两端都是0V说明没起振。查电容容值是否匹配、焊接是否良好、晶振下方是否有信号线干扰。可以用手指触碰晶振引脚引入工频信号如果瞬间起振了说明电路在起振边界上需要调电容或改善Layout。程序烧不进去查SWD接线是否正确SWDIO、SWCLK、GND三根线必须接查BOOT0是否拉低查NRST是否有上拉查MCU的VDD电压是否正常。外设不工作查I2C是否有上拉电阻查SPI的CS是否有上拉查芯片的使能引脚是否给了正确电平——很多时候是硬件配置脚搞错了。七、本章总结这一章咱们走完了PCB设计的全流程从导入网表检查封装、到布局布线、到覆铜DRC、再到导出Gerber下单打样、最后焊接调试。你跟着做一遍就能收获一块自己设计的、能跑起来的嵌入式硬件板卡。八个章节下来老张带着你们从认识电阻电容开始一路走到独立设计打样。如果你认真跟着走完了全程你的硬件能力绝对上了一个大台阶。再也不会看到原理图就心虚再也不会出了问题只会喊硬件同事。专栏虽然收官但硬件学习本身没有终点。你画的每一块板子、犯的每一个错、解决的每一个Bug都在让你变得更强。老张在专栏里讲的这些经验几乎每个坑都是我自己踩过的把它们写出来就是想让你少走弯路。最后送大家一句话嵌入式工程师的终极自由是脑子里有一个想法能够从代码一直实现到电路板。希望这个专栏帮你朝这个自由迈进了坚实的一大步。