尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

嵌入式硬件开发流程详解:从原理图到PCB制造

嵌入式硬件开发流程详解:从原理图到PCB制造 我陆陆续续收到过不少私信大多是刚入门嵌入式硬件开发的朋友问得最多的不是某个芯片怎么用而是我照着别人的原理图画了一块板子送去打样回来却焊不亮或者老师让我做一个最小系统板我该从哪一步开始。这些问题背后其实都指向同一件事对整个嵌入式硬件开发流程缺少一个全局认识。常见的做法是先抄一份原理图再照着PCB布局导出一份Gerber发去板厂回来焊完就以为大功告成结果要么封装对不上、要么电源发烫、要么晶振起振失败然后陷入无休止的排查。这一篇我不打算堆概念而是从我实际做过、踩过的流程讲起把从原理图到PCB制造这条完整链路拆开揉碎给你一份可以直接照着走的实操路线。用户给的标题是嵌入式硬件开发流程概述从原理图到PCB制造但流程这两个字绝不等于打开EDA软件画图然后导出文件。真正的开发流程我在长期实践中总结下来至少有七个阶段缺一个都会在后面的工序里付出几倍的时间代价。而且很多阶段之间是互相反馈的比如原理图阶段没想清楚电源架构到了PCB布线阶段就会被布局逼着改方案只能回头改原理图。所以这篇文章的章节安排不按教科书那种流程概述来写而是按一个工程师实际操作时的思考顺序来展开每一章我都会结合具体数据和真实案例把为什么这么做讲透。1. 为什么嵌入式硬件开发必须讲流程从看着能跑到稳定量产的差距1.1 两个真实项目给我的教训先讲我第一次独立做硬件项目时翻车的经历。那是一个给环境监测设备做数据采集板的任务主控选的是STM32F103C8T6电路不算复杂电源、晶振、复位、几个传感器接口而已。我当时的想法很简单原理图画起来快得很两天搞定然后赶紧画PCB发出去打样早点拿到板子早点调试。结果原理图我确实一天画完了但问题出在完全跳过了对物料和封装的核对。板子回来后我发现手头采购的贴片电阻电容全是0402封装而我原理图里大部分元器件选的封装是0603。虽然都能焊但PCB焊盘和器件尺寸偏差导致一批电容贴上去有虚焊最后只能拿着放大镜一颗颗补焊浪费了整整三天。更蠢的是有一颗极性电容我原理图里没检查极性方向PCB封装上也画反了上电瞬间直接冒烟。第二件事是我后来带一个外包项目时遇到的。硬件工程师画完原理图后直接用自动布线把PCB铺完发到板厂前也没有做DRC结果板子回来测试发现有一根I2C信号线走了将近8厘米中间还穿过了一颗DCDC电感的下方总线上的干扰导致传感器偶尔通信失败。原因是布局阶段没有把MCU和传感器接口放得足够近信号完整性完全靠运气。这类问题原理图阶段根本暴露不出来但确实是流程缺失导致的连锁反应。如果当时有严格的评审环节布局评审时就会拦下来。这两件事让我意识到一个最基本的道理嵌入式硬件开发中流程不是用来束缚人的规章制度而是一套让人少走弯路的避坑顺序。原理图画得再漂亮只要后面任何一个环节没跟上板子就是废的。1.2 一张图看懂整个开发链路以及每个阶段的输出物很多人对流程的理解是线性的但实际开发中它是环形的。我把一个典型的嵌入式硬件项目从零到量产会经历的阶段和各自输出物整理成一张表方便你对照自己的项目进度阶段核心任务主要输出物常用工具/方法需求分析明确功能、接口、供电、环境、成本等约束需求规格说明产品需求文档、竞品拆解方案设计选型MCU、传感器、电源方案、通信方式系统框图、选型清单Excel对比表、厂商参考设计原理图设计电路连接关系、电源树、接口电路原理图文件KiCad/嘉立创EDA/Altium Designer原理图评审检查逻辑、封装、ERC、可制造性评审记录、修改后的原理图对照检查单逐项确认PCB Layout叠层、布局、布线、DRCPCB文件、叠层参数同上EDA工具PCB制造Gerber文件导出、板厂工艺确认Gerber、钻孔文件、工艺说明嘉立创等板厂下单系统焊接与调试元器件焊接、上电检查、功能验证可运行样机、测试报告万用表、示波器、逻辑分析仪测试与迭代EMC、可靠性、老化测试测试报告、问题列表实验室环境、用例清单这里我想多说一句很多初学者以为原理图设计是占用时间最长的阶段真实情况恰恰相反。在正规硬件开发中需求分析和方案设计占用的时间往往比画原理图更长因为这两个阶段决定的东西太多。比如你选了一颗没有长期供货保障的芯片就算原理图和PCB画得完美产品量产时也可能因为买不到芯片而整体报废。再比如你电源方案选错了输入压差大还硬要用LDO板子调试起来发烫严重这时候改方案等于整个重画。从流程管理的角度我给你的建议是每一个阶段结束后都要有一个明确的检查动作再进入下一阶段。原理图画完不能直接画PCB必须先做ERC和封装检查PCB布局完成不能马上布线先看一眼关键信号走向导出Gerber前必须做DFM检查。这一套习惯养成了你的打样成功率会从百分之五十直接跳到百分之九十以上。2. 动手画原理图之前请先把需求、选型和电源架构定下来2.1 需求清单怎么写才有参照价值我见过太多人一上来就打开EDA新建工程画到一半才发现这个单片机没有那么多串口或者这个传感器需要3.3V供电但我板上只有一个5V电源。这些问题全都可以在需求分析阶段被拦截。需求清单不需要写成多么正式的文档但至少要有以下这几类信息功能需求。你要做的是什么设备需要哪些接口和协议比如串口有几个、I2C挂几个设备、SPI接什么外设、需不需要CAN、以太网还是USB。每一个功能都对应MCU的一组外设资源所以功能清单直接决定主控选型。物理与环境约束。供电方式是电池还是适配器电压是多少工作温度范围多少结构上有没有尺寸限制比如必须做在一个50mm乘30mm的板子内。这些约束会影响电源方案设计、PCB层数选择以及元器件封装选型。成本与周期目标。量产目标价是多少开发周期多久这两条会直接影响选型逻辑比如一个功能强大但单价30元的芯片和单价8元但刚好够用的芯片在消费类产品里大概率会选后者。很多工程师在原理图阶段不考虑BOM成本等产品立项评审时发现成本超标只能推翻重画。2.2 MCU选型时的四个硬指标与常见误区MCU是整个嵌入式硬件系统的核心选型的逻辑不能只看主频高不高或引脚多不多。我一般会从四个维度卡第一外设资源是否满足功能需求且有冗余。比如你有三个UART的需求最好选有四个以上UART的芯片留一个做调试日志打印。I2C、SPI、ADC、PWM通道数都要逐一核对。第二封装的焊接友好度。对于打样和小批量调试尽量选手焊可行的封装比如LQFP48这种间距较大的不要一上来就选QFN或BGA除非你确定自己有回流焊设备。第三供货稳定性和交期。不要选太偏门的型号尽量选大厂、通用、生命周期状态为量产的MCU。第四开发工具链和参考资料是否丰富。选型时去搜一下有没有现成的库函数、例程和原理图参考这能帮你省下大量时间。很多人会问STM32F103C8T6都发布这么多年了为什么还是学习板、开发板的常青树原因很简单48引脚LQFP封装手焊难度低72MHz主频RAM有20KBFlash有64KB对绝大多数入门和中低复杂度项目够用UART、I2C、SPI、CAN、USB、ADC外设齐全网络上参考设计和技术资料铺天盖地遇到问题分分钟能搜到解决方案。我自己做原型验证时也经常选用成熟型号不是说新芯片不好而是原型阶段最关注的是快速跑通和资料充足而不是最强性能。我第一次画STM32最小系统板用的就是F103C8T6那套原理图后来被我当作各种项目的底子复用省了不少事。2.3 电源架构整个硬件中最容易被低估的部分硬件项目的翻车点里电源问题能占三成以上。典型的症状是上电后芯片发烫、系统不断复位、传感器读数漂移甚至直接烧毁。这些问题多数是原理图阶段电源设计不规范造成的。电源架构设计的核心是先把电源树梳理清楚。所谓电源树就是从输入电源开始经过一级或二级变换给各个模块供电的树状结构。举个实际例子一个用STM32F103的环境传感器节点输入是5V USB供电板上需要3.3V给MCU和传感器供电。这里只需要一颗3.3V的LDO稳压芯片输入端加一个100uF电解电容和一个0.1uF陶瓷电容做滤波输出端加10uF和0.1uF各一颗。这是最简单的电源树。但如果你输入是12V板上同时有5V给继电器、3.3V给MCU就需要分两级第一级用DC-DC把12V降到5V效率做到百分之八十到九十第二级用LDO把5V降到3.3V。为什么要用DC-DC而不是直接LDO从12V降到3.3V算一笔账就明白了假设系统总电流200mALDO压差是12V减3.3V等于8.7V功耗是8.7乘0.2等于1.74W这颗LDO会烫得根本没法摸而换成DC-DC哪怕效率只有百分之八十损耗也只有0.2乘3.3除以0.8减去0.2乘3.3约0.16W差了十倍还多。所以电源压差大的场景优先选DC-DC压差小才对噪声敏感的模拟电路用LDO这是选型的基本盘。去耦电容的摆放和容值也有讲究。每个IC的电源引脚旁边都应该有一颗0.1uF的陶瓷电容作用是为芯片高频瞬态电流提供就近的回流路径这颗电容必须尽量靠近电源引脚原理图上离得远没事PCB布局时如果拉远了等效电感变大滤波效果就大打折扣。同时每个电源域入口处放一颗10uF左右的钽电容或陶瓷电容用来吸收中低频纹波。3. 原理图设计实操先搭最小系统再扩展外设电路3.1 最小系统每一环的设计依据原理图设计最忌讳的就是从第一个引脚画到最后一个引脚毫无章法。我的固定方法论是先画最小系统再画外设电路最后补接口和防护。所谓最小系统就是让一颗MCU能跑起来所需的最少外部电路对STM32这类ARM Cortex-M内核芯片来说一共五部分电源、时钟、复位、启动配置、下载调试接口。电源部分前面已经讲过重点强调一点任何电源引脚旁边都要有去耦电容。我见过不少新手把MCU的VDD脚全部接地连接然后只在其中一个引脚旁边放了一颗电容这是不对的。MCU每一个电源引脚都是一个独立的噪声入口理想做法是每个VDD引脚旁边各放一颗0.1uF电容在电源入口处再加一颗10uF大电容。时钟部分STM32F103芯片内部虽然有RC振荡器可以跑起来但精度不够串口通信这类对时序敏感的场景必须外接晶振。常规接法是8MHz主晶振接在OSC_IN和OSC_OUT引脚上两个管脚各接一颗负载电容到地。负载电容的取值不是随便选的它要跟晶振本身的负载电容规格匹配。计算公式是CL晶振规格书上会写它的典型负载电容值比如常见的8MHz无源晶振规格是CL等于20pF电路上外接的两颗电容的串联值加上引脚寄生电容后应该约等于20pF。如果两颗都是33pF串联值是16.5pF加上PCB走线和引脚寄生电容大概3到5pF基本凑到20pF左右这个值在工程上完全可行。新手可以直接抄这个参数32.768kHz的RTC晶振则通常配两颗12.5pF或15pF电容。复位电路在STM32上很简单NRST引脚接一颗10kΩ上拉电阻到3.3V再接一颗100nF电容到地。上拉电阻保证复位引脚平时是高电平电容则让上电瞬间引脚维持一段低电平时间确保芯片可靠复位。这个RC常数大约1ms足够满足STM32的复位要求。如果你要用外部按键复位就在NRST引脚和地之间并联一个轻触按键按下时强制拉低。启动配置是很多人容易忽略的地方。STM32的BOOT0和BOOT1引脚决定芯片从哪里启动常规设计是把BOOT0通过10kΩ电阻下拉到地BOOT1同样下拉让芯片从Flash启动。如果你把BOOT0不小心上拉了芯片上电后会进入串口ISP模式程序不跑你还会误以为是固件问题。我第一次画板子就犯过这个错排查了一个晚上才发现是BOOT0处理错了。下载调试接口STM32F103支持SWD和JTAG两种方式。SWD只需要PA13(SWCLK)、PA14(SWDIO)两根线加地线节省引脚又可靠所以现在绝大多数开发板都只引出SWD四针接口。SWDIO和SWCLK建议各加一个10kΩ上拉电阻到3.3V提高下载稳定性。3.2 外设电路设计的常见套路与规范最小系统能跑通了剩下的就是根据需求接外设。这里我给你几个常见外设的标准接法LED指示电路MCU的GPIO推挽输出驱动LED阳极通过限流电阻接3.3V或者直接接GPIO阴极接地。限流电阻阻值怎么算LED正向压降通常约2V工作电流设5mA到10mA就足够亮了电阻值等于(3.3减2)除以0.005约260Ω取常用值330Ω或470Ω都行。如果LED接的是5V电源电阻取值可以适当加大避免电流过冲。按键输入电路按键一端接GPIO另一端接地GPIO内部使能上拉电阻或者外部加一颗10kΩ上拉电阻到3.3V。按键按下时GPIO读到低电平松开时是高电平。如果你担心按键抖动可以在软件里做消抖硬件上也可以并联一颗100nF电容。UART通信接口MCU的UART TX、RX引脚电平一般是3.3V如果要对接RS232电平的设备需要加电平转换芯片比如MAX3232如果对接RS485总线则要加收发器芯片常见型号是MAX3485A、B总线之间接120Ω终端电阻这个电阻不是随便加的它用来匹配传输线阻抗减少信号反射只有总线两端各接一个。一个节点或者短距离通信可以不接。I2C总线SDA和SCL都是开漏输出必须外部接上拉电阻到3.3V。上拉电阻阻值取决于总线电容和通信速率常见取值2.2kΩ到4.7kΩ标准模式100kHz下4.7kΩ没问题快速模式400kHz下可以换2.2kΩ。3.3 在嘉立创EDA里组织原理图的经验我早期画原理图用Altium Designer后来发现个人和小团队做项目用嘉立创EDA确实方便因为原理图、PCB、元件库、下单流程是无缝衔接的尤其适合初学者和原型打样。但不管用哪个工具原理图组织得好不好直接影响后续的检查效率和可读性。我的习惯是一个功能模块占一页比如最小系统页、电源页、通信接口页、传感器页。模块之间用网络标号连接而不是拉一根长线跨页这样每页图纸看起来都干净。网络标号命名要规范比如3V3、GND、MCU_TX1、SENSOR_I2C_SCL让人一眼能看出这个网络的用途。电源符号要用专门的大电源符号和接地符号不要用普通网络标号代替。信号流向尽量从左到右输入在左、输出在右这样读图的人能顺着信号流理解电路。还有一个非常重要的细节每一页原理图上都放上设计说明文本框包括项目名称、版本号、设计人、日期、关键设计要点。这个习惯的好处是过两个月你再翻回来看这张图还能想起来当初为什么这么设计。特别是板子出问题需要回溯设计意图的时候这些注释就是救命稻草。4. 原理图自检封装、ERC和BOM是发板前最容易翻车的三件事4.1 ERC检查怎么读、怎么改原理图画完不等于结束第一件事是跑ERC电气规则检查。这个功能相当于编译器帮你查语法错误它能发现引脚悬空、输出引脚短路、电源网络多重驱动等问题。很多人对ERC报告不重视看到警告就随手忽略这是大忌。常见的ERC警告里有一部分确实是无关紧要的比如某些固定电平引脚被标记为无驱动或者一些NC引脚提示未连接这类可以逐个确认后忽略。但有几类必须认真处理电源引脚悬空、输出引脚被接在一起、多个电源网络连到了同一个节点上。这些都是会导致实际硬件损坏的隐患。我在实际排查ERC报告的时候会逐条点过去对照芯片数据手册确认每个引脚的电气属性。有些芯片有一些特殊引脚比如BOOT、VBAT、VREF等它们的接法数据手册里写得很清楚ERC可能不会报错但接错了系统就跑不起来。所以ERC只是辅助工具最终还是要靠人对电路的理解来兜底。4.2 封装对应原理图逻辑正确不等于PCB能焊这一步是我自己翻过车之后才彻底重视起来的。原理图符号只是逻辑上的示意图每个符号背后都挂着一个PCB封装画原理图时元器件的封装必须同时确定不能想着等画PCB再改。因为封装选错轻则元器件焊不上重则引脚顺序反了导致芯片烧毁。最容易错的几类器件电解电容和二极管这种有极性的器件封装上的极性标识一定要和原理图符号对应LED的阳极阴极同样如此。三极管、MOS管、稳压芯片这类三脚以上的器件不同封装引脚顺序可能完全不同比如SOT-23封装的MOS管在不同型号上栅极可能在中间也可能在右边必须以具体型号的数据手册为准。封装名称也要规范不要自己随便命名直接使用EDA软件自带的封装库或者去厂商官网下载官方封装比手动画靠谱得多。另外阻容类元器件我建议统一封装。比如电阻全部用0603电容按容值选0402或0603尽量少混用封装。这样不光贴片时方便BOM管理也简单更不容易贴错位置。4.3 BOM导出与物料采购的联动原理图完成后生成的BOM清单不只是一张有哪些器件的表它更应该是你的采购依据。我导BOM的时候除了位号、型号、数量这些基本字段之外一定会确认器件是否能在市场上买到交期多长有没有替代料。特别是芯片这类核心器件一定要确认好货期和渠道再做最终设计冻结。有一个容易踩的坑是BOM里写着电容0.1uF 0603但是实际买回来才发现耐压只有6.3V用在5V电路上余量不够。所以BOM里要加上关键参数耐压值、精度、功率尤其是电容、电阻、二极管这些被动器件。这些参数卖家描述里可能不会写全采购前要问清楚或者直接选有规格书的渠道。4.4 给新手的一条发板前检查清单我把原理图阶段最常犯的问题整理成一份发板前检查清单你每次画完原理图后逐项打勾检查项说明所有电源引脚都连接了去耦电容每颗IC电源引脚旁应有0.1uF电容极性器件方向一致原理图符号与封装上的正负极标识匹配晶振负载电容参数正确根据晶振规格书计算实际取值BOOT引脚状态正确确认启动方式是否符合需求复位电路完整NRST上拉电阻和RC电容是否就位SWD接口引出至少SWDIO、SWCLK、GND三个引脚上下拉电阻合理开漏信号上拉、复位上拉、启动下拉ERC无未处理的错误逐条确认过所有警告每个器件都有封装原理图上无空封装元件BOM可采购且参数完整耐压、精度等关键字段齐全渠道可确认5. PCB Layout的关键顺序与布线经验5.1 叠层与板框先决定几层板再做别的布局布线之前有两件事必须先定板子外形和层数。PCB层数直接跟器件密度和信号复杂度挂钩对于大多数单片机最小系统加少量外设这种级别双面板完全够用成本也最低。一般来说四层板带来的好处除了多出两个完整的电源平面和地平面更主要是信号回路面积大幅减小EMI特性好很多。只有当板上有大量高速信号比如DDR、以太网、或者电源网络特别多、或者板子面积被结构压得很小的时候才有必要上四层板。板框的设定要结合结构装配要求。如果你有外壳板框尺寸必须按结构图纸的螺丝孔位置和让位要求来画不能画完再改。板框一般放在机械层然后用禁止布线层在板框内部画一个电气边界这样布线时自动布线器和DRC都知道哪里能走线哪里不能走。板框四个角建议加1.5mm到2mm的圆弧或者倒角一方面是减小应力集中另一方面后期装壳时不容易刮手。5.2 布局的先后顺序与摆放原则PCB Layout最容易犯的错误就是一上来就摆元器件边摆边想。我的做法是先把所有元器件按功能模块分组然后在板框内按信号流向和接口位置关系整体规划。具体顺序是第一步摆连接器。所有需要对外连接的接口比如电源插座、USB座、排针、天线焊盘都要贴着板边放且方向和位置要跟外壳开孔对得上。第二步摆主控和它的最小系统。MCU放在板子中央偏一侧的位置晶振尽量靠近MCU的OSC_IN和OSC_OUT引脚晶振下方不要走其他信号线最好铺一块完整的地铜皮。复位按键和启动配置电阻放在MCU的复位引脚附近。第三步摆电源模块。DC-DC或LDO的位置要考虑散热尽量靠板边并且远离容易受干扰的模拟电路和天线区域。第四步对外设模块按功能分区摆放让同一总线的器件集中减小布线长度。布局阶段就要开始考虑信号回流的问题。每一个信号电流都是从源端流向负载再回流到源端回流路径最好沿着地平面走最短的路径。如果你把两个功能模块的地分割开了回流路径会绕很大一圈反而成了天线。所以我的习惯是尽量保持底层地平面的完整性不要为了走一根信号线就大面积挖空底层地铜。这也是为什么很多工程师有先布局再布线的说法布局的合理性决定了布线的顺畅度。5.3 布线时的线宽、过孔与地平面处理布线阶段的核心规则可以用一句话概括先电源再关键信号最后低速信号。电源线必须足够宽我从实际经验中总结的参考值是1oz铜厚下1mm线宽约能承载1A电流但为了降纹波和减小压降电源主干道最好留出20%到30%的电流裕量。3.3V的整板电源主干我一般用30mil分支用20mil普通信号线用10mil如果是BGA扇出或者引脚间距小可以降到6mil或8mil但这已经是常规板厂工艺的极限稳定值附近了。过孔尺寸的选取一般信号过孔用内径0.3mm、外径0.6mm。如果板上电流比较大可以打多个过孔并联来增加载流能力或者采用内径0.4mm、外径0.8mm的大过孔因为过孔的载流能力跟过孔内壁镀铜的周长相关。电源路径上每个过孔都尽量多打两个没有坏处。地平面的处理上双面板的底层尽量铺完整地铜顶层在有空间的地方也铺地。铺地之后要打地过孔阵把顶层和底层的地连接起来这种缝合过孔能有效缩短回流路径、减少环路面积。数字地和模拟地要不要分开这个问题初学者经常纠结。很多传感器的模拟地其实就是ADC参考地在双面板上强行分割地平面反而会破坏回流路径。我的做法是小系统板不分割地而是通过合理的元器件布局和单点连接来处理也就是说模拟电路集中在某个区域数字电路在另一个区域然后在地平面上用一个点把两边的地连接起来。只有到16位以上ADC这类高精度模拟采集场景才值得做完整的分割和单点桥接。5.4 不要盲目迷信自动布线现在EDA工具的自动布线功能越来越强但我不建议你对整板直接一键自动布线。原因很简单自动布线器不知道你的电路里哪些信号是敏感的哪些走线需要短粗哪些区域绝对不能走线。它只保证电器连通不保证电气性能。我见过自动布线把电源线绕了一大圈把晶振走线跟GPIO信号线并排了好几厘米这些在DRC里都不算错误但实际工作不稳定。比较高效的方式是你先把电源网络、晶振相关走线、差分对等关键网络手动布完锁定它们然后让自动布线器处理剩下的低速信号线最后再手动检查和优化。也就是快慢结合关键线路自己把控无关紧要的交给工具。6. 从图纸到PCB制造Gerber导出、工艺参数与DFM检查6.1 Gerber文件里到底要包含哪些东西PCB设计完成后发给板厂的不是PCB源文件而是Gerber文件和钻孔文件。Gerber是电路板行业的通用格式相当于把设计数据转换成板厂CAM软件能识别和加工的数据。很多人第一次导出Gerber时看到一堆文件就懵了其实只需要确认这几类顶层线路层Top Copper、底层线路层Bottom Copper、顶层阻焊层Top Solder Mask和底层阻焊层Bottom Solder Mask、顶层丝印层Top Silkscreen和底层丝印层Bottom Silkscreen、板框层Outline以及钻孔文件Drill Files包含钻孔位置和孔径信息通常分一到两个文件。如果你用了四层板还要加上内电层。导出格式上选RS-274X也叫扩展Gerber是目前最通用的格式。钻孔文件格式一般选Excellon。导出的文件最好用自己的EDA工具的在线预览功能看一遍或者用第三方Gerber查看器打开看一下确认每一层的内容都正确尤其是板框是否闭合、孔位是否正确。这一步花十分钟能省掉跟板厂来回沟通的几天时间。6.2 板厂工艺参数怎么选板厂下单时有一堆工艺选项很多人不知道该怎么选。我以常规的嘉立创下单系统为例给你讲明白每个参数的含义和选择逻辑板材默认FR-4就好。FR-4是玻纤环氧树脂覆铜板机械强度、耐热性、绝缘性能都很均衡价格也便宜。除非是做射频板需要指定高频板材比如Rogers否则普通嵌入式项目用FR-4就够了。板厚常规默认1.6mm这个厚度强度足够也兼容绝大多数标准连接器。如果你做的是超薄产品或者有特殊装配要求再考虑1.0mm或0.8mm。铜厚常规默认1oz也就是35微米。对于1A到2A级别的电流完全够用。如果你的板子有大电流回路超过2A可以考虑2oz铜厚但成本和交期都会增加。最小线宽线距常规板厂能力是6mil可靠一点的建议是设计到8mil以上。你需要保证自己的设计规则设置里最小线宽不小于板厂标注的最小能力否则就等着板厂打电话来问你是否同意改设计。最小孔径机械钻的最小孔径常规是0.3mm如果你设计里用了0.2mm的过孔就得上激光钻成本高且不必要。过孔尽量大于等于0.3mm。表面工艺常规选喷锡HASL或者沉金ENIG。喷锡便宜焊接性好但焊盘表面平整度稍差沉金更平整适合精密引脚和长时间储存价格也高一些。个人打样选喷锡就好量产和可靠性要求高的再考虑沉金。阻焊颜色性能上没差别纯属外观偏好绿色最便宜也最常见蓝色黑色红色是加钱项。丝印颜色通常配白色对比度最好。我一般直接选默认绿色加白色丝印省钱又清楚。6.3 下单前你需要确认的细节Gerber和工艺参数都确定了下单前还有几个细节要确认。拼板如果你的板子尺寸很小比如20mm乘20mm为了充分利用板材和方便SMT贴片可以拼板做成2乘3阵列这种形式。拼板之间加V割或邮票孔连接。个人打样如果数量少也可以不拼板板厂会给你按最小收费面积计算小尺寸板子可能按5cm乘5cm或10cm乘10cm收费拼不拼板单板价格差别不大但贴片时拼板更方便。Mark点如果是机器贴片需要在PCB对角上放至少两个Mark点这是SMT设备用来定位的光学基准点。手工焊接的话不需要。如果你确定后期要找贴片厂代工最好在设计阶段就把Mark点加上否则后面补很麻烦。阻抗控制如果你的板上没有高速差分信号比如USB高速、以太网、DDR就不需要特别设置阻抗控制普通50Ω或90Ω的默认工艺就够了。如果有下单时要向板厂明确说明哪些网络需要阻抗控制板厂会在压合叠层时通过调整介质厚度和线宽来满足。6.4 那些只能在DFM阶段发现的坑DFM可制造性设计检查是发板前最后一道关卡现在嘉立创这类EDA工具自带DFM检查功能能自动识别一些加工层面的问题。我总结几个常见问题丝印压焊盘丝印文字如果跑到焊盘上会影响焊接质量尤其是机器贴片时锡膏印刷会被丝印顶起来。检查时把丝印层和焊盘层叠加看该移的移开该删的删。走线离板边太近板边是在铣刀切割出来的如果走线距板边太近切割时的机械公差可能导致走线被切断或者露铜。一般要求走线距板边至少0.3mm安全起见0.5mm以上。钻孔太靠近板边焊盘或者过孔如果离板边太近钻孔时容易把板边打裂。贴片阻容件还好直插连接器的固定脚开孔位置尤其要注意一般孔径边缘距板边至少0.5mm。散热焊盘连接大面积接地焊盘比如LDO的散热焊盘如果直接跟整个地平面连在一起焊接时热容量太大焊锡不容易完全熔化会出现虚焊。正确的做法是用热焊盘连接方式也就是焊盘通过几根细铜条通常两根或四根跟地平面相连既保证散热又保证可焊性。EDA软件里设置焊盘的连接方式为Thermal Relief或者直接放一个花焊盘库里的封装。我在嘉立创EDA里导出Gerber后会先跑一遍板厂自带的在线DFM分析有报错就先改改完再下单这个流程帮我挡掉了至少三次潜在的废板。7. 板子贴片回来之后的调试顺序与排错思路7.1 焊接顺序与上电前的万用表检查板子从板厂回来后焊板子的顺序也很有讲究。我见过急性子的人拿到板子直接把所有器件一股脑焊完然后上电测试出了问题根本不知道是哪个器件引起的。正确的做法是按模块焊接、按模块测试。第一次拿到裸板先用万用表测量3.3V和GND之间、5V和GND之间的电阻正常情况应该是几百欧姆以上如果是几欧姆甚至接近零说明电源网络有短路这时候就要仔细检查有没有焊盘桥连、电源和地网络是否被误连了。裸板检查没问题后先焊电源模块包括电源插座、DC-DC或者LDO、电源指示灯、滤波电容焊完后只上电测这一部分。用万用表确认输出电压是不是设计值用示波器看纹波是否在可接受范围内。电源确认没问题了再焊最小系统的MCU、晶振、复位电路然后上电看看晶振是否起振、MCU工作电流是否正常。最后再焊外设模块每焊一块测一块这样排查问题范围会小很多。7.2 按电源→时钟→复位→下载→外设逐级验证调试过程我习惯按照这样的顺序走电源正常、时钟正常、复位正常、下载通道正常、外设工作正常。每一级的验证方法都不同。电源级的验证前面说过了重点是用万用表和示波器确认电压值和纹波。时钟级的验证用示波器探头要打到X10挡否则探头输入电容可能影响起振直接点到MCU晶振的OSC_OUT引脚能看到一个幅度大概在1V到3V左右的正弦波或者方波频率接近8MHz就说明晶振起振了。如果没有波形先检查晶振两个引脚是否焊实负载电容是否装反陶瓷电容没极性不会反再量一下OSC_IN引脚的直流电平正常应该是一个偏置电压。复位级的验证用示波器观察NRST引脚上电瞬间的波形应该看到从低到高的上升沿而不是一直低或者一直高。如果看不到上升沿检查复位电容是否太大会导致上升沿过慢或者上拉电阻有没有焊错。下载通道的验证就是把ST-Link或者J-Link接到SWD接口打开下载工具看能不能识别到芯片。识别不到的先检查SWD引脚焊接和上下拉电阻再看BOOT0有没有被错误拉高最后确认芯片电源确实正常。下载成功后第一时间跑一个GPIO点灯程序灯能亮说明主控最小系统完全正常接下来才继续调试外设。7.3 常见问题排查的现实案例说一个我最近帮一个学员排查的典型案例。板子是基于STM32F103C8T6的温湿度采集板现象是程序烧录成功后LED正常闪烁但I2C接口的温湿度传感器SHT30读不到数据。第一步先用万用表量传感器VDD引脚3.3V正常。然后用示波器分别抓SDA和SCL发现SCL有正常脉冲SDA除了一个ACK脉冲之外几乎没有其他动作。这说明MCU和传感器之间的通信没有建立起来。再查原理图发现I2C上拉电阻设计成4.7kΩ但板上有两颗传感器并联挂在总线上总线电容偏高4.7kΩ导致上升沿过缓。把上拉电阻换成2.2kΩ后通信立刻恢复了。这个例子说明原理图看起来正确不代表实际工作正常还要结合负载数量、总线速率、器件手册综合判断。还有个高频问题是SWD连接不上。排查思路是先确认目标板供电再确认SWDIO和SWCLK是否焊反或者虚焊再看BOOT0有没有被拉高导致芯片没进调试模式最后考虑是不是RESET引脚被占用。偶尔还能遇到MCU本身被烧坏的检测方法是量一下3.3V和地之间的阻抗如果明显偏低芯片大概率已经内部短路只能更换。调试过程中的一个小建议养成随手记录的习惯。每一版板子调试时遇到的问题、原因、解决办法都记下来写成一个简单的调试日志。我自己的项目里很多类似问题的定位时间从最初的几个小时缩短到后来十几分钟靠的就是查阅以前排错的笔记。这些记录不光是自己以后复盘的财富也是你写技术文章、带新人、做知识分享的素材来源。从原理图到PCB制造再到板子测试整个过程每个阶段都有关键细节其中任何一个环节做了错误的妥协都会在后面暴露出来。我的体会是嵌入式硬件开发的最大成本从来不是打样费而是排查问题所花的工程时间。流程意识、检查习惯、工程记录这三件事做好你的硬件开发之路会顺畅很多。如果这篇流程概述对你有帮助后续我可以继续写原理图各模块的设计细节、PCB Layout的进阶技巧以及Debug的实战案例。
返回列表