ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

从原理图到PCB制造:嵌入式硬件开发全流程入门指南

从原理图到PCB制造:嵌入式硬件开发全流程入门指南 没想到放个假回来后台一堆私信问嵌入式硬件开发到底该怎么入门。很多人手里已经握着单片机开发板代码也能跑但一提到“原理图怎么画”、“PCB怎么做”就完全没概念了。这很正常软件和硬件虽然都在嵌入式这条船上但思维方式差别很大。写代码你面对的是逻辑错了改一行就行画板子你面对的是物理世界一个封装选错、一个网络没连上板子打回来就是废铜烂铁加一点零花钱的教训。所以这篇我把整套流程串一下从你脑子里有一个功能需求开始到用EDA工具把原理图画出来再到PCB layout布线最后把Gerber文件交给板厂把板子造出来。整个过程里有大量“没人明说但你必须知道”的潜规则我尽量都抖出来。1. 从需求到原理图硬件设计的前半程1.1 需求梳理与整体方案选型很多人一上来就开画这是硬件设计里最忌讳的事。你连这板子要干什么、用什么主控、供电从哪来都没想清楚画出来的原理图多半要返工。我自己的习惯是接到一个项目先写一页纸的需求文档不需要规范自己看得懂就行但要把几个关键问题回答清楚。第一个问题是主控选什么。这个决定了你后面整个电路的设计思路。比如你是要做一个简单的传感器采集那STM32F103C8T6这种入门级MCU完全够用还便宜淘宝几块钱一片如果你要做图像识别或者跑个轻量级AI模型那可能得上带DSP或者NPU的芯片了。选主控要看几个硬指标引脚数够不够、Flash和RAM够不够跑你的代码、外设接口UART、I2C、SPI、ADC、PWM够不够用、工作电压是多少。这些参数直接决定电源电路怎么设计、晶振怎么接、复位电路怎么做。第二个问题是供电方案。这是新手最容易翻车的地方。主控需要3.3V传感器可能要5V电机驱动可能要12V甚至24V这些电压从哪来是用电池还是USB还是外部电源适配器如果是锂电池供电你要考虑充电管理电路如果是USB供电你只需要一个LDO或者DC-DC把5V降到3.3V。不同方案的电路复杂度天差地别成本也差很多。第三个问题是接口和通信方式。你这个板子需不需要对外通信是走串口、SPI、I2C还是CAN需不需要WiFi或者蓝牙模块这些决定了你原理图上要预留哪些接口电路。很多人设计时没留够后面调试的时候飞线飞得跟蜘蛛网一样所以这个一定要提早想清楚。1.2 原理图库与元器件选型的门道方案定下来之后就可以开始画原理图了。目前主流工具就三个Altium DesignerAD、嘉立创EDA、Cadence OrCAD。AD功能全但正版授权贵得离谱个人用基本是学习版嘉立创EDA是国产的免费、元件库丰富而且和嘉立创打板无缝衔接非常适合新手和中小项目Cadence性能强大但学习曲线陡峭一般是大型企业或者复杂板卡在用。我个人的建议是新手起步用嘉立创EDA熟练之后再学AD完全来得及画图的底层逻辑是一样的。画原理图的第一步不是连线而是建库。虽然EDA软件都自带元件库但你会发现实际项目里总有那么几个器件库里找不到比如刚出的传感器、冷门的接口件。这时候就需要自己画原理图符号和封装。原理图符号相对简单就是一个逻辑表示把引脚画出来、标好引脚编号和名称就差不多了。重点说一下封装。封装是元件的物理尺寸模型包含了焊盘的位置、大小、间距这是直接对应到PCB上的。封装画错是灾难性的你原理图连接得再好封装引脚间距差0.1mm焊接的时候就对不上板子直接废了。我自己封装库维护有个习惯每选一个新器件先去下载官方的封装库或者数据手册里的推荐封装图照着画画完再对着实物用卡尺量一遍关键尺寸。这个习惯救过我很多次。另外提醒一下0402电阻和0603电阻的封装差很多选型的时候一定要确认你买到的料和你画的封装是同一个规格。1.3 从框图到原理图连线与DRC检查库准备好了就开始画原理图了。但千万别直接想到哪连到哪。标准的做法是先画一个系统框图主控放中间电源电路放一边传感器电路放另一边通信接口放第三个区域这样原理图看起来会非常清爽。连线阶段有几个反直觉的经验。第一尽量用网络标签Net Label而不是把线拉得很长去连接。比如3.3V电源网络你在每个需要供电的地方放一个“3.3V”的标签而不需要从电源模块拉一根很长的线过去。这样原理图看起来干净改起来也方便。第二同一个网络必须用完全相同的名字包括大小写都最好一致因为有些EDA工具是区分大小写的。第三不要隐藏悬空引脚尤其是IC的电源引脚和接地引脚漏接一个板子打回来就是一颗不工作的芯片。原理图画完一定要做电气规则检查ERC。这个检查会帮你找出一些基础错误比如输出引脚接到输出引脚、悬空的输入引脚、未连接的电源引脚等。很多新手画完原理图就直接导网表去做PCB结果板子画到一半发现问题又改回原理图来回折腾浪费大量时间。先花五分钟把ERC跑一遍是成本最低的纠错手段。2. PCB Layout从“能通电”到“能稳定工作”2.1 叠层设计与规则设置原理图完成并且确认无误之后就会生成网表进入PCB设计阶段。很多人觉得PCB就是从原理图一键导入然后拉线这就把问题想简单了。布局布线的好坏直接决定了你的产品是稳定运行还是偶发死机。首先说叠层。双层板是最常用的顶部走信号底部走地平面成本低适合大多数中低速设计。如果你的电路中有较多的BGA封装器件、高速信号或者对电磁兼容有严格要求那就得上四层板了顶层信号、内层地、内层电源、底层信号。四层板的好处是有一个完整的地平面信号回流路径短电源和地之间的回路面积小电磁辐射也会小很多。在开始布线之前你需要在EDA里设置好设计规则线宽、线距、过孔大小、焊盘到导线的距离等。这些规则是给布线工具和DRC检查用的。具体数值怎么定我一般参考板厂的工艺能力和自己电路的电流需求来定。比如常规信号的线宽设0.2mm电源线根据电流大小加宽1A电流建议至少0.5mm甚至1mm的线宽线距按6mil约0.15mm起步过孔外径0.6mm内径0.3mm这个规格嘉立创打样完全支持不额外加钱。关于线宽有个经验公式可以记一下在1盎司铜厚35微米的条件下1mm线宽大约能承受1A的电流。但这个值留有余量实际设计时建议至少留20%-30%的余量也就是跑1A电流的线用1.2mm以上比较稳妥。2.2 布局先行的实操思路布线之前先布局。布局是整个PCB设计中最考功夫的环节一个好的布局能让布线顺利很多一个差的布局会让你后面疯狂飞线。我的布局习惯是按照功能模块分区。先把接口件排针、USB座、电源座放在板子边缘方便插拔MCU放在板子中心或者稍微偏上一点的位置因为它要和几乎所有模块相连晶振要尽可能地靠近MCU的OSC引脚且周围不要走其他信号线这是为了保证时钟信号的稳定电源电路集中放在电源输入的附近每个芯片的退耦电容0.1uF那种必须紧挨着该芯片的电源引脚距离最好不要超过3mm。很多人忽略的一个点是“信号流向”。布置器件时要顺着信号流的走向摆输入接口 → 前级电路 → MCU → 输出驱动 → 输出接口这条链路上的元件依次排列这样布线自然会顺畅很多。我见过不少新手把元件摆得乱七八糟然后线绕来绕去最后绕出一堆过孔和长走线既难看又影响性能。布局完成之后可以先隐藏飞线用眼睛目视检查一遍电源走向合不合理模块之间有没有交叉关键的敏感信号有没有被干扰源包围。这个时候调整布局的成本最低等布线布到一半再挪元件那才是痛苦。2.3 布线、电源与地平面的处理布局好了就开始布线了。布线有几个优先级我一般是这样定的电源和地 → 关键敏感信号 → 普通信号 → 剩下随便走。电源和地要优先走因为它们要供电给整块板子线要粗、路径要短。地网络优先用平面铺铜的方式处理而不是走一根细线。双层板的话底层铺一块完整的地铜皮顶层有空余的地方也尽量铺地然后用过孔把上下两层的地连起来这样会形成一个近似的地平面对信号回流和电磁兼容都有好处。关于过孔的使用有一个建议在MCU底下的地焊盘上多打几个过孔连接到地层这样能有效降低回路阻抗对于EMI和散热都有帮助。我自己画STM32的板子时一般会在GND焊盘旁边放4到6个0.3mm/0.6mm的过孔实测对ADC采样稳定性有肉眼可见的提升。对于晶振、模拟信号、差分信号这些敏感线尽量走短、走直、少打过孔。如果你画的板子上有模拟地和数字地布局的时候就要提前做好区域隔离然后在某个单点位置通常在ADC的参考地引脚附近把两个地平面桥接起来。这个“单点接地”的概念很重要你去搜很多ADC芯片的数据手册上面都会强调这一点。另外一个容易被忽略的地方是“回头线”。两条平行走线如果离得很近会产生串扰所以信号线之间要留出足够的间距。如果你的板子密度不高线距可以放宽到0.3mm这对信号完整性更友好。3. 制造文件输出与PCB打样3.1 Gerber文件与钻孔文件PCB画完之后离“造出板子”还差最后一步生成制造文件。行业标准的制造文件是Gerber文件它描述了每一层的图形——铜层、阻焊层、丝印层、助焊层等。再配合钻孔文件板厂就能根据这些文件把PCB造出来。不同的EDA工具导出Gerber的步骤不一样但核心要点是一致的。第一确保你需要导出的层都勾选了顶层铜箔、底层铜箔、顶层阻焊、底层阻焊、顶层丝印、底层丝印、板框层一个都不能少。第二注意阻焊层的“负片”逻辑阻焊层是开窗的导出的数据里你需要确认焊盘位置是有开窗的。第三钻孔文件格式一般用Excellon格式单位要统一是毫米还是英寸别搞混了。导出完之后强烈建议用Gerber查看器把文件加载来看一遍。很多EDA工具自己就带Gerber预览或者你可以用免费的GerbV打开。检查什么呢重点看每一层的图形和你预期的是不是一致丝印有没有乱掉、阻焊开窗位置对不对、电源平面有没有反了。这个检查只要几分钟但能避免板厂电话打过来跟你说“文件打不开”或者“线上有几根断线”的尴尬。3.2 工艺能力与制造参数确认发去打样之前还需要确认板厂的工艺能力是否覆盖你设计中的参数。不同板厂工艺能力有差异但主流打样厂家里嘉立创这类快速打样的工艺窗口大概是工艺项目常规能力注意点最小线宽/线距6mil约0.15mm低于这个值可能加钱或做不出来最小钻孔孔径0.3mm机械钻的极限0.2mm需要激光钻最小阻焊桥宽4mil约0.1mm太密的PIN脚之间容易连油板厚范围0.4-2.0mm常用1.0mm和1.6mm表面工艺HASL、沉金、OSP成本从低到高射频板建议沉金参数确认前多算一步。比如你的BGA焊盘是0.25mm那走线从焊盘中间出来的线宽最多只能做到小于焊盘直径间距也要留够这些细节在layout阶段就应该考虑进去。不要等到画完了发现线的间距低于板厂工艺极限然后又要回去改布线。还有一个细节是板子的外形。如果你直接在机械层里画了矩形板框那没问题如果你的板子是不规则形状要在板框层用线条画出来或者导一个DXF文件作为外形参考。另外如果你要在板子上开槽、做半孔需要额外标注说明板厂默认是不处理的。3.3 PCB制造的后续贴片与焊接板子制造完成寄到手上之后硬件开发其实才走完一半你还要把元件焊上去才能测试。焊接的方式有两种手工焊和贴片机SMT。如果你是手工焊要注意几个细节。第一先焊电源相关的元器件然后上电测试主要电压点是否正常确认没有短路再继续焊其他器件。第二QFP或者LQFP封装的主控芯片焊接时先在引脚上整齐地铺上一层锡然后用拖焊的方式把锡拖匀最后用助焊剂加吸锡带清理桥连。第三0402这种小封装电容电阻镊子一定要稳当心手一抖就找不到元件了。如果是走SMT那就需要准备BOM表和坐标文件。BOM表是所有元件的清单包含型号、封装、数量、位号坐标文件则是每个元件在PCB上的X/Y坐标和旋转角度这是贴片机贴装时用的数据。EDA工具一般都能自动导出坐标文件但是BOM表需要你维护好元件的规格参数尤其是阻值和容值别把0.1uF的电容和1uF的写混了我在这一点上吃过亏。4. 硬件开发中常见的坑与排查技巧4.1 原理图阶段的典型失误原理图阶段最常见的失误一个是封装修错。你原理图里用的器件是SOT-23封装结果买回来的实际元器件是SOT-23-5引脚数量和间距都不一样根本焊不上去。另一个常见问题是电源网络命名不统一。有的人习惯叫3.3V有的人叫VCC_3V3混用的话这两个网络虽然电平一样但在电气上并没有连接导致部分电路根本没上电。原理图检查我有个笨办法但很有效用颜色标注法。在原理图里把不同的电源网络用不同颜色高亮出来比如5V是红色、3.3V是橙色、GND是黑色然后逐页检查看有没有哪个芯片的电源引脚没有连上对应颜色的网络。这个方法我每次画完原理图都会做一遍基本能杜绝漏连电源的问题。另外一个容易被新手忽略的是去耦电容的数量。有时候一片芯片有多个VDD/VSS引脚对每个电源引脚都需要一个0.1uF的去耦电容不能只放一个了事。你可以在数据手册的“推荐连接图”或者“Layout Guidelines”里看到要求通常都是“each VDD pin must have a 100nF decoupling capacitor”。4.2 PCB阶段的典型失误PCB阶段最常见的坑是“原件干涉”和“飞线遗漏”。原件干涉指的是两个元件在板子上放得太近实际贴装或者焊接的时候会打架尤其是插件的元器件比如两个电解电容离得太近电容壳子会撞在一起。这个可以通过在EDA里打开3D预览来解决嘉立创EDA和AD都有3D模型功能可以在投板前做一个简单的干涉检查。飞线遗漏是我以前常犯的错误。布线布到后面总有一两条线因为太远或者过孔位置不好而没布上变成了“未布线”状态。很多人忽略了这个检查直接投板结果板子回来发现某一组信号是断的。解决的办法很简单投板前跑一次PCB的DRC设计规则检查把“Unrouted”类别的错误清空确保没有未连接的线段。还有PVB板边过近的问题。有些走线离板边太近只有0.1mm板厂铣板的时候有一点偏差这条线就被切断了。稳妥的做法是导线距离板边至少0.3mm到0.5mm这个距离直接设为设计规则让EDA帮你兜底。4.3 打样回来后的排查方法新板子到手第一件事是不要急着焊芯片先目视检查PCB加工有没有问题焊盘有没有覆铜缺损、丝印有没有模糊不清、板子有没有翘曲。然后焊接电源部分的元件上电测量主要电压节点的实际电压值和纹波。如果发现电压不对下一步是断电后用万用表的通断档检查VCC到GND之间有没有短路或者低阻。很多情况下焊接短路是元件的焊桥连锡导致的用放大镜加助焊剂处理一下就能解决。如果是设计上的短路比如电源层和地层在过孔位置有残留的铜那就比较麻烦需要用飞线割线的方式做临时的方案。我最头疼的一类问题是“上电但不工作”。这时候排查的思路是先确认电源正常再确认复位信号正常MCU复位引脚应该有一个从低到高的跳变再确认时钟正常用示波器看晶振引脚有没有波形最后确认烧录通道正常。按照这个顺序逐级排查大部分问题都能定位到具体环节。很多新手一上来就怀疑代码的问题但相当多的情况是硬件电路某个引脚没拉对电平导致程序根本没跑起来。写在最后的经验回看整个流程——需求分析、方案选型、原理图设计、PCB布局布线、导出制造文件、打样焊接调试——每一步之间都有很强的依赖关系。你在前面偷了一个懒后面就要花更大力气去填坑。合理分配时间的话原理图占三成布局布线占四成文件输出和检查占两成剩下的一成留给打样回来后的调试和预案。我个人觉得对新手来说最有意义的一件事是不要怕“画废板子”。我画了这么多年一样会有失误一次跑不通就再画一版。重要的是每一次失败都能总结出一个具体的教训并且把它折算成设计规则或者检查清单下次不再犯。硬件开发的成长速度某种意义上就取决于你每条“踩过的坑”有没有沉淀成“后续的流程”。希望这篇把嵌入式硬件开发从原理图到PCB制造的流程讲清楚了。如果有具体环节写得不够明白欢迎交流我在后续的文章里可以展开讲讲某个单独的部分比如电源电路的设计细节、MCU最小系统的常见陷阱或者SMT打样的实际对接流程。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进