ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

嵌入式硬件开发全流程:从STM32最小系统原理图到PCB打样调试

嵌入式硬件开发全流程:从STM32最小系统原理图到PCB打样调试 很多人第一次做嵌入式硬件开发都是从画一块STM32最小系统板开始的。原理图看着并不复杂芯片加上电源、晶振、复位电路再引出几个GPIO好像就完事了。可真等到板子从工厂打样回来焊好元件上电才发现问题一个接一个串口打印乱码、ADC采样值漂移、程序偶尔跑飞、板子发热异常。这时候回头再翻原理图往往看不出什么毛病但问题就是实打实摆在那里。这就是嵌入式硬件开发最真实的处境原理图到PCB制造这条链路每一步都有隐藏的门槛。画原理图不是连线布局布线也不是把线连通那么简单。我见过太多软件背景转硬件的工程师在原理图阶段觉得“差不多就行了”结果在PCB阶段和调试阶段付出几倍的时间代价。这篇文章把我这些年从原理图设计到PCB打样、再到板卡调试的完整流程和踩坑经验整理出来给正在做嵌入式硬件开发、或者准备从零开始做第一块板子的朋友做个参考。1. 硬件开发的起点不是画图而是需求拆解很多新手拿到一个嵌入式项目第一反应是打开EDA工具开始画原理图。这个顺序其实是错的。原理图本质上是对需求的电路实现需求没想清楚画出来的图一定是空中楼阁。我自己早期的教训就是直接上手画图画到一半发现引脚不够用或者供电方案撑不住外设功耗只能推倒重来。浪费的时间远远超过多花半天做需求分析的时间。1.1 从白板到元件清单嵌入式硬件需要先回答的五个问题在打开画图软件之前我会先拿一张白纸把下面这五个问题逐一写清楚。这些问题全部落实之后原理图基本就有了七成把握。第一系统用什么主控。这个决定整个硬件架构的走向。是做低功耗物联网节点选STM32L系列或者ESP32还是做算力密集的边缘计算可能要上A系列核心板又或者只是简单的电机控制STM32F103甚至STM8就够用。主控选型要综合处理性能、外设接口数量、功耗、封装形式、供货稳定性和开发工具链成熟度。尤其要注意的是引脚数和封装100引脚的LQFP和48引脚的LQFP对PCB布局布线的影响天差地别。第二供电方案是什么。整个板子的供电架构必须从源头理清输入是USB的5V还是锂电池的3.7V还是工业现场的24V每一路负载需要多大电流板上需要几路电压域比如常见的组合是5V输入板上有3.3V给MCU和数字外设可能还有1.8V给传感器模拟部分或者12V给电机驱动。每一路用什么电源芯片LDO还是DC-DC需要算清楚压差和功耗。一个简单的判断标准如果压差大于1V且电流超过100mADC-DC往往比LDO更合适否则LDO的功耗浪费会非常可观。第三有哪些外设接口。UART、SPI、I2C、CAN、USB、以太网、ADC、PWM……把所有需要跟外部交互的接口列全。这里最容易漏掉的是调试接口。很多人只留了程序下载口没有留SWD调试口结果程序运行异常时只能靠猜。我的习惯是任何板子都至少保留一个SWD调试接口哪怕只引出SWDIO、SWCLK、GND三根线调试阶段的效率能提升一大截。第四机械结构与接口位置。外壳是什么样的连接器在哪个方向板子尺寸和安装孔位置是多大这些看起来跟电路无关的问题实际上严重影响PCB布局。按键、LED、显示屏幕、天线、USB座、电源座都要提前定好位置不然画完PCB再来挪元件布线的返工量非常大。第五工作环境与可靠性要求。是消费类室内环境还是工业现场还是车载温度范围、湿度、振动、EMC要求决定了你需不需要加防护器件需不需要做宽温选型需不需要在PCB上做特殊的铺地和屏蔽处理。工业场景下电源入口的TVS管和防反接电路几乎就是标配消费类产品可以省工业产品绝对不能省。1.2 最小系统与外设模块的边界划分需求理清之后下一步是把电路划分成“最小系统”和“外设模块”两大块。这个概念虽然基础但很多新手没有真正执行到位。最小系统指的是让主控芯片能够运行起来的最少电路一般包括电源、复位、时钟、启动模式配置、下载调试接口以及必要的去耦电容。最小系统以外的像按键、LED、传感器、通信接口、显示屏幕都属于外设模块。划分边界的好处有两个。一个是方便复用。我手里积累了好几套经过验证的最小系统模板STM32F1、STM32F4、ESP32的都有。新项目开始的时候直接把对应模板的最小系统部分拷贝过来改改需求部分的电路就行。另一个是方便独立调试。如果板卡上电后主控无法运行问题肯定出在最小系统如果最小系统跑起来但某个外设不工作问题就锁定在外设模块。这种划分对后期排错有直接帮助。外设模块内部也要再做一次边界划分。一个传感器子板和一个主控板之间的接口怎么定义供电电压、通信协议、信号极性都要明确。我的习惯是所有对外接口都加上标识丝印上写清楚引脚名称这样硬件调试时不用时刻翻原理图。1.3 需求拆解阶段的“过度设计”陷阱做需求拆解时还有一个非常常见的毛病就是过度设计。新手总想预留冗余把主控换成更高性能的、把所有接口都引出来、把所有引脚都加上保护器件。结果是成本上去了、板子变大了、布线的复杂度直线上升但大部分预留功能一辈子都用不上。我的原则是够用就好并且为可能升级的方向留出“软件可配”的余地而不是“硬件堆料”。比如不确定将来要驱动多大功率的电机就先按照当前需求选驱动芯片但PCB上预留一个兼容替换的焊盘位置。这样的预留不会增加当前成本又能给未来留一条路。硬件开发永远是在性能、成本、面积、功耗这四个维度上做权衡需求拆解阶段就是在给这些权衡定基调。这个阶段想清楚后面每一步都会顺畅很多。2. 原理图设计从最小系统开始的嵌入式核心电路搭建需求拆解完成之后才真正进入原理图设计。嵌入式硬件开发里的原理图设计核心其实就三件事最小系统画对、外设接口画对、检查做到位。这里没有太多花哨的技术全是细致活但恰恰是这些细致活决定了板子的成败。2.1 最小系统的构成与搭建顺序先看MCU最小系统的电源部分。嵌入式主控的电源引脚通常分成数字电源和模拟电源两类有些还有独立的备份电源域。原理图上每个电源引脚旁边都要放去耦电容这是雷打不动的规矩。我见过有人为了省几个电容把多个电源引脚共用一个去耦电容结果MCU在驱动负载时频繁复位。去耦电容的放置原则是每个电源引脚至少一个100nF的MLCC靠近引脚放置整个芯片电源入口处再放一个10uF左右的钽电容或大容量MLCC做储能。数字地和模拟地之间如果芯片内部已经有隔离外面通常用0欧电阻或者磁珠连接具体要看参考设计。复位电路看着最简单但坑也不少。STM32系列一般用RC复位电路10k上拉电阻加100nF电容接地这是一个很成熟的组合。需要注意的是复位引脚上如果有外部干扰源RC时间常数太小会导致芯片复位不彻底。有些芯片支持外部看门狗或者复位IC这时候要严格按照数据手册的连接方式接。我踩过的坑是低成本方案里省略了复位电路的电容只保留上拉电阻结果在电源缓慢上升的场景下芯片偶发启动失败。加回那个电容之后问题消失。时钟电路是另一个重灾区。有源晶振和无源晶振的接法完全不同。无源晶振需要匹配负载电容这个电容值要从晶振数据手册里找不是随手选个22pF就行。负载电容选大了晶振起振慢选小了频率偏差大。有源晶振则要特别注意使能引脚的接法有些型号的使能脚内部没有上拉悬空可能导致晶振不工作。另外晶振下方尽量铺地并做一圈地孔这在后面的PCB布局布线部分还会详细说。启动模式配置也要在原理图上画明白。STM32的BOOT0和BOOT1引脚通过电阻拉到确定电平不能悬空。很多人觉得反正平时用不到BOOT1就留着不接结果EMC测试时BOOT引脚耦合了噪声芯片意外进入ISP模式程序没跑起来排查了很久才发现是这个原因。下载调试接口单独说一句。ST-Link、J-Link对应的SWD接线并不复杂但接口上最好留一个串口。很多嵌入式开发板调试时串口打印几乎是唯一的信息输出手段。SWD加UART这两个接口同时留在板上是我调试所有嵌入式硬件的基础配置。2.2 外设接口电路电平匹配、保护与隔离最小系统画好之后开始处理各种外设接口。这里的核心问题有三个电平匹配、保护、隔离。电平匹配是最容易出问题的环节。3.3V的MCU要接5V的传感器模块怎么办如果传感器输出是开漏结构通过上拉到3.3V那大概率可以直接连接。但如果传感器输出是推挽5V直接接3.3V的GPIO轻则信号异常重则烧毁引脚。正确的做法是加电平转换芯片或者分压电路。双向电平转换需要专门的转换芯片单向从5V到3.3V则可以用两个电阻组成分压网络但要注意分压后的信号上升沿会变缓高速信号不适用。保护电路的主要目标是防静电、防过压、防反接。对外连接器附近通常要加ESD防护器件比如USB接口的ESD阵列或者简单的TVS二极管。电源入口要加防反接电路最简单的是串联一个肖特基二极管但会带来压降和功耗更好的方案是用PMOS管做理想二极管防反接压降几乎为零。工业环境还要注意光耦隔离或者数字隔离器把外部信号和MCU在电气上彻底分开。外设接口电路设计还有一个细节连接器的引脚分配要有冗余思想。一个4pin的连接器如果只用到3根线剩下那根不要悬空接到GND做备用同时丝印上标注清楚。这样后面扩展功能时不用重新改板。我自己统一的做法是所有未使用的连接器端子都接GND既方便做机械固定又减少信号干扰的耦合路径。2.3 原理图检查的“两条腿”ERC和人工审查原理图画完必须做检查。EDA工具自带的ERC电气规则检查能查出引脚短路、输出引脚冲突、悬空输入这类低级错误但ERC查不出逻辑错误。我的习惯是ERC之后再做一轮人工审查重点查四件事。第一每个芯片的电源和地引脚是否全部连接正确有没有漏接或者错接。第二去耦电容是否放置在正确的位置每个电源引脚是否都有就近去耦。第三所有外设接口的方向是否正确输入输出是否搞反了。第四对照需求清单逐一确认每个功能模块的电路是否完整。人工审查这一步不要隔天做最好是画完原理图当天休息一会儿回来再看一遍。人对于刚画完的图容易有“确认偏误”总觉得哪里都是对的。休息一下再回来看往往能发现之前视而不见的问题。有条件的可以找一个同事互相审查效果显著。我自己的一个惨痛经历是原理图上把I2C的两根线SDA和SCL接反了因为两个引脚在封装上相邻画图时没注意人工审查也没发现结果打样回来通信始终不通用万用表一根根量才查出来。3. 元器件选型与封装连接原理图与PCB的桥梁原理图上的每个符号最终都要对应到真实可购买的物理元器件。元器件选型和封装的正确性直接决定了PCB制造和焊接的成败。这个过程看起来只是库操作实际上充满了决策和陷阱。3.1 选型不是选“最合适”的而是选“能买到且够用”的工程师做选型最容易犯的毛病是只看性能参数不看供货和价格。一颗芯片性能再好如果货期要二十周或者起订量要几万片对小批量嵌入式项目来说就没有意义。我现在的选型流程是先查供货再比性能最后看价格。查供货就是看电商平台和代理商库存确认样品能买到、批量也有保障。比性能就是对照需求拆解阶段确定的参数指标筛选候选型号。看价格要注意区分单颗价格和批量价格小批量项目的采购成本往往比预期高很多。另外要特别关注芯片的生命周期状态那种标注NRND不建议新设计使用或者EOL即将停产的型号能避开就避开。选型时还要关注器件的替代性。同一功能最好有第二第三备选型号pin-to-pin兼容那种。这样遇到缺料问题时可以直接替换不用改板子。工业级和商业级的差别也要看清楚温度范围不同价格差异明显要根据实际工作环境选择。消费类产品用工业级器件是浪费工业现场用商业级器件则是风险。3.2 封装的三种来源与常见错误封装库是原理图到PCB之间最容易出错的环节。封装来源一般有三种EDA工具自带库、芯片厂商提供的参考封装、自己根据数据手册画的封装。EDA工具自带库用起来最方便但可靠性和准确性参差不齐。有些焊盘尺寸不准有些丝印方向和实物方向不一致完全照搬容易出问题。芯片厂商官网提供的封装库通常经过验证可靠性最高。如果没有现成库就需要自己按照数据手册的封装图画。画封装是一个需要“较真”的工作焊盘宽长、间距、热焊盘尺寸都要按照图纸严格绘制。封装错误造成的后果非常严重。焊盘画小了焊接时立碑或者虚焊焊盘画大了贴片时元件漂移引脚顺序画错整片芯片焊上去方向是反的。最怕的是那些看起来很相似但引脚定义不同的封装比如SOT-23的几种不同引脚排列还有LQFP封装的方向标记。我的做法是所有新画的封装都做一次“实物比对”——等拿到真实的元器件用游标卡尺量一遍关键尺寸跟自己的封装库再核对一次。这个习惯帮我避免了很多次打样返工。3.3 BOM清单的整理与替代料规划原理图完成之后EDA工具能自动导出BOM物料清单但这份自动导出的BOM在生产制造之前必须人工整理。第一件事是“料号归一化”。同样的阻容10k电阻可能因为放置在不同位置而产生了多个BOM项需要合并成一项。第二件事是补充采购信息包括规格描述、品牌、封装、精度、耐压值每一栏都不能漏。比如电容只写“100nF”是不够的要写清楚“100nF 0402 50V X7R”这样采购和生产才能做出正确的判断。第三件事是标注替代料每个关键物料列出一到两个可以互相替换的备选料号。这些替代料必须确认过封装兼容、电气参数满足要求不能随意列。BOM整理还有一个容易忽略的点阻容的精度和温度系数。定时电路里的电阻电容精度要选1%甚至更高去耦电容用X7R就够了但频率相关的振荡电路可能需要C0G。这些细节在生产时会被放大——一个本该用1%精度的电阻因为BOM里只写了阻值采购买回5%的最终导致电路频率偏差超标。BOM整理得越细生产阶段的问题越少。4. 原理图到PCB的关键一步网表、层叠与布局原理图确认无误、封装核查完毕接下来就进入PCB设计阶段。这一步在嵌入式硬件开发中比例最大也是最考验经验的环节。PCB设计直接决定了板子能否量产、能否通过EMC测试、能否在恶劣环境下稳定运行。4.1 网表传递与同步检查先从EDA工具导出网表再导入PCB编辑器这是原理图到PCB的标准流程。但现在很多工具已经支持原理图和PCB的实时同步改原理图后PCB能自动更新。无论用哪种方式都要做一次连通性检查。我的做法是把PCB上所有网络逐个核对特别是电源和地网络看看有没有多余的断连或者意外的短接。尤其是那些在原理图上“看起来连接了”的网络导入PCB后受封装影响可能变成开路。这个检查用EDA工具自带的“比较原理图与PCB”功能就能完成但很多人嫌麻烦会跳过真出了问题才追悔莫及。4.2 PCB层叠设计双层板还是四层板嵌入式硬件的PCB层叠最常见的选择是双层板或者四层板。双层板成本最低单面板加过孔工序简单是原型验证和小批量产品的首选。但双层板对布局布线能力要求更高因为缺少完整的地平面高速信号回流路径不好控制电源走线也更容易产生压降和噪声。双层板适合的工作频率一般不要超过几十MHz信号上升沿不要太快。四层板在功能上比双层板上了一个台阶。典型的层叠是“信号-地平面-电源-信号”或者“地-信号-信号-电源”。四层板最大的优势是有完整的地平面和电源平面信号回流路径短电源阻抗低EMI表现明显更好。成本上四层板比双层板贵但现在打样价格已经非常亲民小批量生产的增量成本完全可以接受。我的建议是做STM32F103这类Cortex-M3级别的嵌入式系统如果信号频率在几十MHz以内双层板够用如果涉及以太网、USB高速、SDRAM这类接口直接上四层板别跟自己过不去。硬件开发的时间成本远比那一点板费贵。还有一种中间选择是双层板但是在关键区域做局部铺地铜对改善信号回流有一定帮助但效果远不如完整地平面。4.3 布局功能分区与可制造性PCB布局是整个设计中“最需要耐心”的环节。我习惯遵循“先大后小、先核心后周边”的原则先把连接器、主控芯片、电源模块这些大块头摆到位再在它们周围放置外围元器件。布局的核心逻辑是功能分区。每个功能模块的元件要聚在一起模块之间用合理的走线通道分隔开。电源模块要靠近输入接口并且远离模拟信号区域因为开关电源的噪声比较大。MCU放在板子中央偏上的位置方便BGA或者LQFP的扇出布线。模拟电路和数字电路要分区布置模拟地和数字地在一点附近单点连接。布局阶段还要考虑可制造性。元件方向要尽量一致尤其是有极性的电容、二极管、芯片方向一致可以极大降低手工焊接和SMT贴装出错率。相邻元件间距要满足焊接工艺要求太密的板子贴片机都没法贴。发热元件要周边留出足够的散热空间不要紧挨着电解电容或者锂电池这类热敏感器件。布局之后还要做一步“虚拟布线预演”眼睛沿着信号流向走一遍看看从原理图到PCB每个模块之间的信号走向是否顺畅有没有明显的交叉和绕线。预演中发现的问题在布局阶段改起来代价最小一旦开始布线再改布局返工成本就高了。5. 布线实操电源完整性与信号完整性的经验取舍布线是PCB设计里占比最大的工作也是最需要经验积累的部分。嵌入式硬件不算高速设计但也不是无脑连通就行。电源走线、地线设计、关键信号的阻抗都是需要认真对待的。5.1 电源走线从输入接口到每个负载的低阻通道电源走线最容易翻车因为很多人只关心线宽是否够过大电流忽略了整条供电通路的压降和噪声。计算线宽的最常用依据是1盎司铜厚下1mm线宽大约能过1A电流当然还要考虑温升。但这只是一个粗略参考更准确的要用IPC-2221标准或者PCB厂家的载流计算工具。我用一个原则电源主干道要比计算出来的理论值再放宽一半越是靠近电源入口的地方越要宽。比如计算下来需要1mm实际走到1.5mm到2mm。电源路径上的压降要控制在几十毫伏以内否则MCU或者传感器供电可能不稳。电源走线还要注意星型拓扑的问题。多个负载共用一段供电走线远端负载会看到近端负载带来的电源波动。正确的做法是电源从输入接口出来后先到每个负载的去耦电容再分别送往各个负载避免串联长距离共享走线。嵌入式开发板上最常见的场景是OLED屏幕和WiFi模块用同一路3.3VWiFi发射瞬间会造成OLED屏幕闪屏这就是共路供电的后果。模拟电源和数字电源在线路上要分开走。MCU内部模拟电路对电源噪声很敏感ADC采样值波动往往就来自数字逻辑开关造成的电源噪声。对外部ADC参考电压这一类的模拟电源走线我通常做专门的滤波并且加宽走线、减少换层避免与高速数字信号长距离平行走线。5.2 高速信号的阻抗控制与回流路径嵌入式系统里真正算得上“高速”的信号主要是USB、以太网、SDIO、外部存储接口以及SPI在较高时钟频率下的工作状态。这些信号的走线要遵循阻抗匹配的原则。单端信号一般控制50欧姆阻抗差分信号比如USB的D/D-要控制90欧姆差分阻抗以太网的差分对通常也是100欧姆。具体的线宽和线距取决于层叠结构和板材参数最好在布局布线前就跟PCB厂家确认他们的工艺参数用他们的阻抗计算工具来定线宽线距而不是自己拍脑袋。除了阻抗回流路径是更常被新手忽略的点。任何信号的回流电流都要经过信号线正下方的地平面或者地走线路径最短、面积最小这是信号完整性的基本原则。如果信号线跨越了地平面的缝隙回流电流就被迫绕路形成一个大电流环辐射和串扰都会增加。所以我的习惯是双层板布线时关键信号线的正下方尽量保留完整的地铜皮不要在地平面上到处打过孔、开槽四层板基本没有这个问题因为信号层紧贴地平面。还有一点是串扰控制。平行走线距离过长会产生产生耦合相邻信号线之间的间距至少要做到“3W原则”即间距达到线宽的3倍。尤其是I2C的SCL和SDA这类可能有静态电平差的信号若平行走线太近一根线上的跳变会通过寄生电容耦合到另一根线上导致数据错误。在嵌入式板上我通常把模拟信号和数字信号分区域走线中间用地线或者地铜隔离这是最简单的串扰抑制方法。实测中很多ADC采样不准、I2C偶尔读错其实都是串扰问题。5.3 布线后的DRC检查与人工复查布线完成之后的DRC设计规则检查是整个PCB设计流程最基础的一关。DRC能检查出短路、开路、间距不足、过孔钻孔过小等问题。做DRC之前要先设置好设计规则线宽最小值、间距最小值、过孔尺寸、器件间距这些参数要跟PCB厂家确认。我把DRC的规则分成两级第一级是“绝不允许违反”的比如短路、开路、最小间距第二级是“允许放宽”的比如某些线宽不够但实际电流很小。DRC过完还要做人工复查。我会重点看三类问题第一电源和地网络的走线是否足够宽是否所有铜皮都正确连接到了对应的网络第二发热元件周围的铜皮是否因为大面积铺铜导致散热过快造成焊接时“立碑”第三丝印是否清晰有没有被走线或者过孔打断。有一个细节我要单独提一下丝印。很多工程师觉得丝印是最后顺带的事实际上丝印做得好不好直接关系调试和生产的效率。每个接口、每个指示灯、每个可调电位器都标清楚名称板上直接印上版本号和日期这样拿到任何一块板子不需要对着图纸就能快速找到各个功能位置。我见过太多板卡丝印要么缺漏要么方向混乱调试时对着图纸找引脚找半天实在浪费时间。6. 制造文件输出与打样从Gerber到实际PCB的最后一公里原理图和PCB设计完成并不代表硬件开发结束。真正让板卡从设计变成实物的是制造文件输出和PCB工厂制造环节。这个环节如果处理不好之前的所有工作都有可能白费。6.1 Gerber文件、钻孔文件与制造说明PCB厂家需要的最核心文件是Gerber文件光绘文件和钻孔文件Drill文件以及一份制造说明Fabrication Drawing。Gerber文件建议用RS-274X格式这是目前所有PCB厂家的通用格式。导出时要包含所有层信号层、阻焊层、助焊层钢网层、丝印层、外框层。每层都要核对一下确认没有遗漏。最重要的是阻焊层阻焊开窗的大小决定了焊盘是否暴露开窗太大可能造成布线裸露短路开窗太小则可能造成焊盘被阻焊覆盖导致焊接不良。钻孔文件要跟Gerber文件的坐标系统一致单位制式也要明确。很多PCB制造问题都出在钻孔坐标偏移、单位弄混上面。明明设计的是公制厂家按英制处理尺寸就全乱了。制造说明是我特别想强调的。这是一份文字文件用来跟PCB厂家沟通那些Gerber文件表达不了的信息板材类型、板厚、铜厚、表面处理工艺、阻焊颜色、丝印颜色、最小线宽线距、过孔工艺要求、阻抗要求、拼板方式。举例来说如果板上有BGA封装或者细间距QFP要在制造说明里注明“需要做散热焊盘的过孔塞孔处理”否则焊接时焊锡会沿着过孔流走造成虚焊。如果没有制造说明厂家会按默认工艺生产默认工艺不一定满足你的实际需求。6.2 打样前的DFM检查跟PCB厂家对话的技术语言DFM即可制造性设计在文件归档之前做一次DFM检查能省下大量沟通和返工成本。现在主流的EDA工具大多内置了DFM检查功能或者可以导入PCB厂家的在线检查工具。最基础的检查项是线宽线距是否满足厂家的最小工艺能力。一般1盎司铜厚的板子厂家最小线宽线距能做到0.1mm左右但不同厂家能力参差不齐要在打样前确认。过孔尺寸要注意孔径和成品孔径的区别设计时标注的钻孔直径和成品孔径之间有差异因为孔壁要镀铜。最小过孔外径与内径的比例也要符合钻孔加工能力。还有一个容易遗漏的是“环形圈”问题。过孔焊盘的外径与钻孔直径的差值如果太小钻孔时的位置偏差可能让孔壁部分落到焊盘之外导致连接可靠性下降。一般要求环形圈宽度不小于0.15mm。对于多层板的板内过孔要检查每个过孔是否从顶层一直钻到底层半盲孔和埋孔工艺虽然能节省空间但成本和制造难度会明显增加不是必需的话尽量不用。DFM检查做完之后我就会看到PCB厂家发来的“工程问题确认单”上面会有阻抗线宽调整、丝印过孔处理、板边倒角、邮票孔拼接等问题的确认。这些问题逐一确认清楚再同意生产不要图省事一键同意。我吃过一次亏工程确认单里注明“将板内所有过孔做成盖油”我直接确认了。结果板子回来后有个需要外接测试的过孔被阻焊盖住了根本没法点焊测试线。从那以后工程确认单我都是逐条看的。6.3 板卡到手后的验证流程与常见问题PCB制造完成、拿到手之后并不是直接焊芯片上电。我有一套固定的板卡验证流程能快速判断板子的制造质量。第一步是目检。先用放大镜或者体视显微镜看一遍整板有没有明显的划伤、氧化、丝印异常、焊盘翘起。特别要检查组装的定位孔和板边看有没有毛刺或变形。第二步是尺寸抽检用游标卡尺测量板厚、外形尺寸、接口孔径看看是否跟设计一致。这一步往往被忽略但等到装配外壳时发现板子尺寸差了0.2mm才是真正的麻烦。第三步是“裸板测试”不上电、不焊元件用万用表测量电源正负极之间的阻抗看看有没有低阻甚至短路。正常情况下电源两端应该有一个较大的电容充电后的高阻值如果测出来只有几欧姆就要仔细排查是不是PCB内部短路。第四步才是焊元件和上电调试。焊接调试阶段的常见问题我总结成一张表给各位参考故障现象最可能的原因排查方向上电后电流异常大电源正负极短路或元件焊反用热成像仪或触摸法找发热点芯片不启动、无时钟输出晶振未起振或复位电路异常示波器测晶振引脚、量复位电平串口输出乱码波特率配置错误或TX/RX接反核对软件配置和硬件连接方向ADC采样值漂移或跳动模拟电源噪声或参考电压不稳检查去耦电容和电源走线I2C通信偶发失败上拉电阻阻值不当或信号串扰量波形、检查走线平行距离芯片发热但功能正常引脚驱动能力超限或内部功耗异常查阅数据手册核对引脚电流限制板卡的验证和调试是一个不断修正的过程。一块板子从打样回来到稳定运行经常会遇到两三轮迭代发现信号质量问题、调整布局布线、修改元件参数、重新打样。这完全正常硬件开发本来就是一个迭代优化的过程。想清楚这一点就不会在第一次打样失败时太沮丧。我现在的经验是第一版板卡更多是为了验证原理和布局的可行性预留测试点、预留调试手段比追求一次成功更有价值。写在最后的一点经验整个嵌入式硬件开发流程走下来我最深的体会是冷静、细致、有耐心。原理图阶段要把需求和边界想清楚PCB阶段要在布局布线上舍得花时间制造文件阶段要跟工厂耐心沟通清楚每一个细节。这一行没有太多捷径但是每走一步都走扎实后面就会顺畅很多。也希望这篇从原理图到PCB制造的流程拆解能给正在做嵌入式硬件开发的朋友一些参考和帮助。
返回列表