从抄板到理解原理:嵌入式硬件PCB设计进阶之路
从点灯到画板我花了一个暑假把“嵌入式硬件”这四个字拆开揉碎发现最卡脖子的不是代码能力而是对PCB设计的一片空白。上一篇写了我从零搭环境、调下载器那些事这一篇想聊聊更硬核的部分——从照着开发板抄到慢慢看懂别人为什么这么画板子以及在这个过程里遇到的一位真正把PCB设计讲透的UP主。如果你正处在大一升大二这个阶段想认真学嵌入式硬件但不知道从哪里下手或者已经买了开发板却只知道跑例程我强烈建议你花十分钟看完这篇。这篇文章不是告诉你“要努力”而是把我走过的一条真实路径完整复盘给你我踩过的坑、我找到的方法、我遇到的好资源全部展开说清楚。1. 一个月的学习路径我是怎么从“什么都不懂”走到“敢画板”的1.1 前两周在“抄”中建立基本手感很多人对“抄板”这两个字有天然的反感觉得那是老工程师才会做的东西。但我个人体验下来对新手的“第一次接触”来说抄一块成熟板子的收益远比自己凭空画一块高得多。刚开始的时候我连元器件的封装长什么样都没概念更不用说理解为什么STM32芯片周围要摆那么多104电容为什么USB座下面要铺一块完整的铜。我选择的学习对象是一块几块钱的STM32最小系统板。这块板子便宜、资料多、原理图公开而且功能简单到只有电源、主控、晶振、排针和一颗LED。但就是这么一块“简单”的板子我第一次对着原理图在EDA工具里摆放元器件时还是花了一下午才勉强搞清楚电源从哪里进、芯片怎么固定、晶振两边的负载电容该离芯片多远。抄板的过程更像是在“阅读”而不是“复制”。当你把别人的原件一个个摆到自己的画布上时会开始意识到原来地线要单独走一片原来是晶振底下不能走其它信号线原来排针的间距是2.54毫米不是随便拉的。这些东西从原理图上是看不出来的只有亲手摆一次、拉一次线才能感受到。1.2 两周之后从“抄”转向“理解”第一次接触设计规则抄完两块板子之后我面临一个瓶颈照着画我能画得基本不差但脱离别人的图纸让我自己设计一个功能模块就完全不知道如何下手。真正打破这个瓶颈的契机是我偶然看到那位UP主讲的一个系列的PCB设计教程从叠层结构到阻抗匹配从布局思路到电源完整性每一期都讲得很深但又不晦涩。看完几期以后我才发现自己之前“抄板”的时候忽略了很多关键信息。比如我抄板时只顾着把线连上却没有意识地去思考为什么电源线要加粗为什么晶振下面要挖空为什么模拟地和数字地要单点连接这些问题的答案在学校课程里可能要到大三、大四才会提及但在那位UP主的视频里他直接用“高频电流选择阻抗最小的路径回流”这个底层逻辑把这些问题全部解释清楚了。从那时候起我的学习节奏不再是“找例程、复制粘贴”而是“先理解为什么这么做再上手实践”。开始逼着自己画一些没有答案的东西比如把一块ESP32核心板的电路重新自己画一遍然后拿着官方的板子对比走线。整个过程比较折磨但确实是我这一个多月里成长最快的一段日子。2. 抄板到底在抄什么新手最该认真对待的几件事2.1 抄板不是描图而是进行“反向阅读”如果把抄板简单地理解成照着别人的板子重新画一遍那确实价值不大。但如果你把它当成一项“反向阅读”工作就会发现每一块成熟的板子都藏着大量设计决策。一块量产的开发板它的布线不是随便拉出来的每一根走线的宽度、每一颗电容的位置、每一个过孔的放置都是经过测试和验证的。我当时给自己定的要求是每抄一块板子至少要能回答出下面这几个问题否则就说明还没有看透电源输入部分为什么要用这种拓扑是直接接了LDO还是DC-DC两者在这里各自的取舍是什么主控芯片附近的去耦电容为什么是0.1微法而不是1微法或者10微法数量是根据什么确定的哪些信号线走了内层哪些走了表层这跟信号速率有什么关系板子为什么是两层板而不是四层板如果改成四层板哪些地方会好哪些地方又会变复杂。这些问题的答案很多都不是直接看出来的而是需要主动去查器件手册、去搜应用笔记、去翻芯片厂家的PCB Layout指南才能搞明白。但恰恰是这种主动查找的过程让我慢慢具备了一个硬件工程师最基本的资料检索能力。2.2 一次完整的抄板练习应该包含哪些步骤我建议新手的第一次抄板不要选太复杂的东西。像四层DDR内存条、BGA封装的CPU核心板这类东西两层板还没画明白就去碰只是自找打击。尽量从两层板开始比如Arduino Nano、STM32最小系统板、各种传感器模块的转接板都是一些很好的起步对象。下面这个流程是我后来固化下来的供大家参考找出这块板子的公开原理图没有原理图的尽量找引脚定义、芯片手册和Demo板的设计文件在EDA工具里用通孔焊盘和表贴焊盘把核心芯片和接插件先摆好注意方向要跟实物一致根据原理图把各个模块的“功能分区”画出来电源区、主控区、接口区这些分区规划好再摆元件先走电源和地再走关键信号最后再处理普通的IO口信号线把板子叠到自己画的图上逐条对比重点看那些跟自己预想不一样的地方对每个不一样的地方写下一句话注释解释“为什么他是对的”或者“这里有更好的方案”。第5步和第6步是整个流程里最花时间、也是最有收获的。因为那些跟你想的不一样的地方往往就是你认知边界所在的地方。2.3 抄板中最容易忽略的隐藏知识点大部分教程在讲抄板的时候讲的都是“怎么把线连上”但我个人觉得抄板真正的价值在于那些“不连起来也能看出来”的细节。比如PCB板边的倒角设计、拼板的邮票孔、定位孔的尺寸和位置、Mark点放哪、丝印标注怎么排列这些东西看起来跟电路功能没有直接关系但在实际生产、贴片、组装和调试中却直接决定了一块板子是不是一块“好板子”。以Mark点为例如果你只是手焊几块样板Mark点几乎没用。但只要你的板子要进SMT产线贴片没有Mark点或者Mark点设计不合规机器就找不到板子的精确位置轻则贴偏重则整批报废。我后来才意识到那些我抄过的板子上每一个看起来不起眼的小方块或小圆点都是设计者考虑过的结果。所以抄板的过程其实是在跟一位你看不见的工程师进行跨时空对话。你把自己代入他的角色去理解他为什么在这个位置上放这个东西为什么这条线这样绕了一下比单纯地把他的板子复制下来价值高得多。3. 认知升级的那个节点当我知道了“走线为什么这么走”3.1 第一次被问到“为什么”我答不上来抄完第三块板子的时候我以为自己已经“会”画PCB了。直到有一天我在一个嵌入式交流群里看到有人问“为什么高频走线不能有直角”底下有人回答“因为直角会产生阻抗突变”然后又有人追问“为什么阻抗突变就不能有直角”那个追问一直问到特性阻抗、趋肤效应和电磁波反射最后群里的讨论又回到了麦克斯韦方程组。我这才意识到自己虽然知道“不要走直角”但根本不知道这个结论到底是从哪来的。不知道这个背后原理下次遇到一个稍微复杂的布局还是不知道线宽该怎么选、间距要留多少、参考平面怎么处理。那一刻我突然理解了一件事学硬件不能只停留在“记住规则”而是要尽可能去理解规则背后的物理原理。只有理解了原理才算真正拥有可变通的能力。3.2 “能连通”和“设计合理”中间隔着一个完整的知识体系刚开始画板子的时候我的目标就是“让每一条网络都能连上”。但后来慢慢发现同样一块电路A工程师画出来能稳定工作B工程师画出来就是各种灵异问题明明原理图一模一样可功耗、噪声、稳定性、EMC表现都不一样。差别在哪就在PCB设计这一个环节。比如说去耦电容原理图上画了10个0.1微法电容新手可能随手就把它们全堆到芯片电源引脚旁边觉得“越近越好”。但真正合理的做法是大容量的储能电容放得远一点小容量的高频去耦电容贴着电源引脚放而且电容的电源端和地端要尽量用短而宽的走线连接到对应的电源平面和地平面。如果只追求“连通”这些细节全部都会被忽略掉板子也许能工作但工作状态就是不如别人设计的稳定。那位UP主在讲这部分内容时用了一个类比让我印象很深信号回流就好比人回家有宽敞的大路地平面走就不会去挤泥泞的小路。如果你把地平面切断了信号就只能绕着旁边的缝隙走绕出来的路径面积越大辐射和噪声就越大。这个类比并不算严谨但对入门阶段的认知建立来说非常直接好用。4. 找到那位讲透PCB设计的UP主他把怎么画板子讲明白了4.1 这个系列内容的最大特点把每一条规则都还原到物理原理网上的PCB教程其实并不少但大多数视频存在两个极端要么太浅只是教你怎么用某个EDA工具的某个按钮要么太深上来就跟你讲传输线理论、S参数和眼图没点基础根本跟不上。这位UP主最难得的地方在于他把这两者结合得很好既告诉你操作层面应该怎么做又把背后的物理机理说清楚了。举一个非常典型的例子关于晶振布局和布线。常规教程只会告诉你晶振要靠近芯片放走线要短旁边要包地。但这位UP主会从晶振的振荡原理讲起解释晶体本身是一个窄带器件走线过长会引入寄生电容和寄生电感导致起振条件改变甚至出现停振。然后再告诉你包地不是随便在晶振周围画一圈铜皮包地环上要打地过孔而且过孔间距要小于最高次谐波波长的二十分之一否则这个包地环就是一个天线反而把噪声辐射出去了。这种“从物理层到操作层”的讲述方式对我这种喜欢刨根问底的人来说简直就是量身定做。每看完一期视频我都有一种“原来如此”的顿悟感而且这种顿悟感会支撑我在实践里做出更好的判断。4.2 我是怎么跟着这个系列系统查漏补缺的看完一批视频后我没有马上开始画新板子而是先做了一个“查漏补缺”的整理。把我之前抄过的几块板子重新调出来对照UP主讲过的知识点逐个去检查我抄的板子在晶振处理上有哪些细节是我之前没注意到的板子的电源输入部分是不是真的按要求做了加宽处理底层地平面的完整性怎么样有没有被信号线割裂成几个孤岛USB这类高速差分信号是不是按差分规则走的等长控制是否到位。这一遍检查下来我发现最常出现的问题集中在两个方面地平面完整性不足和过孔位置不合理。以前我拉线时只要觉得不碍事就在地平面上随便打几个过孔做“假装接地”。但实际的接地过孔该放哪里、放多少、连接哪几层的地都有讲究。盲打只会破坏参考平面的回流路径在有高速信号的时候带来麻烦。4.3 值得反复观看的几个具体主题如果让我给同样刚开始学PCB设计的朋友推荐优先级我会把这位UP主的系列内容按下面这个顺序去“食用”第一优先级是叠层结构设计。因为叠层不是画板时前几分钟才决定的事而是在规划PCB的总厚度、层数、阻抗需求和成本预算时就得定的。两层板什么时候够用四层板什么时候能带来明显的收益信号层和参考平面怎么安排这些问题不搞清楚后面所有的工作都等于在豆腐上盖楼。第二优先级是电源完整性模块。这里面包含电源走线的载流能力怎么算、大电流路径的铜皮宽度怎么确定、DC-DC转换器的输入输出电容该怎么摆。这些知识点无论以后是做智能车、做飞控还是做电源模块都会反复用到。第三优先级才是高速信号的布线细节。USB、以太网、HDMI这些接口在消费类产品里太常见了但它们的差分对怎么走、等长怎么约束、阻抗怎么控制都属于“看着简单做起来容易翻车”的内容多看几遍再练习可以少走很多弯路。我后来养成了一个习惯每画完一块板子就回去对应看一遍相关主题的视频每次都有新的体会。第一次看是熟悉规则第二次看是理解原理第三次看是发现自己上一次画板时哪里做得不够好。同一个视频在不同阶段看收获完全不同。5. 吸收之后我最想分享的几个PCB设计核心认知5.1 叠层结构先定参考平面再谈走线以前我画板子的顺序是先把元件摆好然后一条线一条线地连连到哪算哪最后实在不行就在顶层飞根线像极了做数学题不看条件直接算。这种做法在两层板上也许还能勉强应付但一旦信号密度上来就会彻底乱套。正确的逻辑应该是先想清楚有几层、哪几层是信号层、哪几层是完整的参考平面再根据叠层去分配元件和走线。四层板最常见的叠层方案是信号-地-电源-信号这样顶层和底层都有完整的参考平面可以回流信号质量远好于两层板。但代价是成本上升所以不是说层数越多越好而是够用就好。实际上“参考平面”这个词一开始我也没有想象中抽象。简单理解就是信号线旁边的那个铜皮层跟信号线一起构成电流回路的那一层。信号走在表层回流电流就在紧挨着的平面层上如果那个平面被割裂了回流电流就要绕道绕道的路径越长环路面积越大这个环路就成了往外辐射或接收干扰的“天线”。所以在布线之前把参考平面的完整性先守住是PCB设计里非常多的后续问题的一个根源性解法。5.2 布局就是给信号排一条顺畅回家的路很多人觉得布局只是个美观问题只要元件不打架就行。但实际上布局对信号质量的影响比布线还要大一个糟糕的布局再好的布线技巧也很难救回来。我自己的理解是布局其实是在规划“信号的流动路线”哪条信号从哪里进、经过哪些器件、再从哪里出这条路上会不会跟其它信号交叉电源和地去会不会形成明显的环路面积这些在摆元件时基本已经定调了。在学完UP主关于”模块化布局“的那一期后我把自己的布局习惯改成了“先画电源树再摆敏感电路最后补机械接口”。先根据原理图把电源从哪里输入、经过哪颗LDO或者DCDC、分出几路供给哪些模块全部梳理成一张图然后按照电源的流向去安排各个模块的位置。这样做的好处是电源路径很自然就短了其他被电源拉高的噪声也少了很多。另外模拟电路和数字电路尽量不要混在一起摆。我踩过一个比较典型的坑把一个I2C温度传感器放在了主控芯片和DC-DC电感的正中间结果读出来的温度数据偶尔跳变示波器一测I2C的SDA线上始终叠加着一个几百毫伏的开关噪声。后来把传感器挪到板子另一侧再给I2C走线加了一个对地电容数据才干净下来。这种事光靠布线规则是救不了的根源就在布局。5.3 电源设计不是“多加几个电容”而是要管好回路的路径新手画电源部分最常见的操作就是“按原理图把电容接上就完事”。但原理图上那一排电容在实际画板时放置的位置、过孔怎么打、走线怎么连会对电源纹波产生非常大的影响。那位UP主有一句话电源设计最重要的不是稳压电路本身而是从输入到输出的整个回路上高频电流是不是能用一个很小的环路面积顺畅流动。比如给MCU供电的3.3V电源原理图上会有一个10微法的大电容和一个0.1微法的小电容。大电容负责低频储能小电容负责高频去耦。画板时0.1微法电容必须尽可能靠近MCU的电源引脚而且从电容到MCU电源引脚的走线越短越宽越好。大电容则不一定非要贴着MCU可以放在电源进入这个区域的地方因为他体内的寄生电感较大对高频信号帮助有限但也别拉得太远否则起不到储能作用。同时要留意地回路。如果电源走线在顶层地回路在底层那这两条线之间的面积就构成了一个电流环路。环路面积大一来对外辐射强二来容易收到外部干扰。所以电源线和地线尽量平行、靠近走让回流面积尽量小是PCB设计里非常基本但非常实用的一招。6. 新手学PCB设计最容易踩的几个坑个人实测版6.1 坑一一上来就挑战四层板核心板结果只会劝退自己当时看到一个开源项目用的是四层板BGA封装的处理器DDR走线还有等长要求我觉得“抄完这块我就无敌了”。结果光是看BGA扇出就看了两天真到自己动手一连串的过孔和走线直接把软件卡到拖不动心情瞬间降到谷底。其实这类板子涉及到阻抗控制、叠层设计、制造工艺约束根本没有一定基础是不可能画好的。正确做法是分阶段来两层板稍微有点密度的模块比如带USB和Type-C的电源板然后试着画一个四层板的简单模块比如一块带DDR3的Linux小板DDR等长可以先不做部分最后再去挑战那些真正高速的复杂板子。一定要把成就感的来源放在“我把一块简单的板子画得干净合理”而不是“我画过一块很复杂的板子但画得一团糟”。6.2 坑二把过孔当“逃生通道”到处乱放过孔刚开始拉线的时候一遇到走线不通我第一反应就是“打个过孔绕过去”。一块10平方厘米的双面板硬生生被我打了上百个过孔。后来去测量板上某个信号的噪声发现比另一块同样功能但过孔少了三分之一的板子差了不少。原因很简单每个过孔都有寄生电容和寄生电感过孔多了信号路径上的阻抗不连续点就多高速信号自然被“折腾”得不成样子。后来我学会了能用一层走通的就不要用过孔确实需要换层的也尽量让过孔的数量少且集中最关键的是过孔不要打断旁边平面的完整性尤其不能在高速信号线的正下方打一排过孔那样等于把参考平面捅了一排窟窿。另外想提醒一下过孔的孔径跟载流能力也有关系。如果走的是电源或地线电流比较大不要用默认的最小过孔要适当加大孔径并注意过孔和铜皮的连接方式。花几秒钟在过孔属性上多看一眼省的后续调试时烧板子。6.3 坑三只画信号不管地地回路被自己弄出一个大圈这是我踩得最“莫名其妙”的一个坑。板子功能很简单一个传感器模块加一块主控画完之后板子也能工作但就是会在某个特定时刻复位重启。查了很久最后用示波器抓到主控电源引脚上有一个负向毛刺怀疑是从传感器数据变化时地回流路径突然从一个很大环路切换到另一个很大环路造成的。因为那批板子的地平面在中间被信号线切开了一条又细又长的口子导致回流路径发生了明显的变化。从那之后我画板子有一个习惯把地线作为最高优先级来处理。画完主要信号线后先不要急着铺铜认真检查一下地平面的完整性。如果发现哪块地铜皮被信号线割裂成了孤岛优先调整信号线的走向实在调不动再考虑加粗的跳线或使用过孔转接千万不要“假装有一个完整的地”。地不完整信号线画得再直、等长控得再好都很难达到理想状态。7. 大学阶段学嵌入式硬件什么样的节奏和心态最合适7.1 不必盲目追求“高阶”但要有意识地构建知识主干大一暑假这个时间节点其实非常关键说它关键不是因为这时候该学多少知识而是因为这时候的“时间容错率”很高。没有考试压力没有人逼你赶进度完全可以按照自己喜欢的方向去探索。但这段时间也容易走偏比如看到别人在搞Linux驱动也去跟风看到别人在画四层板也去卷结果什么都接触了却什么都没扎下根基。回头看对我帮助最大的选择是集中火力把“嵌入式硬件”这根主干打通。从最基础的电路原理、常用元器件、PCB设计到焊接调试、仪器使用再慢慢扩展到嵌入式软件代码的配合。等这根主干稳定之后后面再往任何一个方向延伸比如射频、高速信号、电机驱动、电源管理都有了基本的判断力。主干的重要组成部分就是PCB设计。很多学嵌入式的同学把精力全花在写代码上对画板子这件事敬而远之。但如果你以后想自己做一个完整的产品而不是一直用别人的开发板打样PCB设计是绕不开的一步。早一点把这个技能拿下后面做电赛、做大创、做毕设都会顺畅很多。7.2 学习节奏上固定的时间段做固定的练习暑假期间我给自己定的规矩是上午看视频课下午实操画板子或焊接调试晚上整理笔记并且每周日把这周画过的板子从头到尾重新审查一遍看有没有可以优化的地方。这样做的好处是学习和实践之间基本不会出现断层看过的视频内容当天下午就可以尝试操作一遍完成“输入到输出”的闭环。我见过一些同学学习方式是收藏了一大堆教程然后一整天都不停地看很少动手。看的时候觉得都会了一关视频自己画立刻卡住。不要误以为那叫学习那只是“收集资料”。真正的学习必须发生在你把手放到鼠标上、开始拖元件摆封装的那一刻。刚开始元器件不会摆封装不会画都可以搜教程、查手册、找书。难点在于你是否愿意花这个时间去把每一步都落实到位。我第一次画一个SOT-23封装的焊盘时光是看数据手册算尺寸就花了差不多两个小时画完还觉得不满意又改了好几版。但正是这个不厌其烦的过程让我后面画其它小封装时越来越有把握。7.3 关于资源动态学习比静态囤积更有用最后说说找资料这件事。很多新手常犯的一个误区是先花一两个星期把各种教程、手册、视频“囤”到网盘收藏夹里囤完就觉得心里踏实了。然而一个月之后再看收藏夹几乎没打开过几个。更好的方法是“需要什么、学什么学完马上用”。我当时学PCB设计的过程中基本流程是“画板时卡住了去搜怎么解决看到相关视频讲这个问题看完马上回到软件里操作一遍然后带着新的理解继续往下画”。这种“问题驱动式”的学习效率远超线性刷教程。解决问题带来的成就感也会成为你继续学下去的重要驱动力。那位把PCB设计讲透的UP主就是在这个过程中被我“撞到”的。他讲的不止是某个按钮怎么用而是把自己做硬件多年的思考框架和判断逻辑完整地展示了出来。对我来说这比直接给我一份可以照抄的项目文件有用得多。因为项目文件只能告诉我“别人是怎么做的”而真正的理解能让我在面对一个全新设计时知道“我自己该怎么做”。8. 一些个人体会诚实面对不会的东西是一个好开始整个暑假下来我最大的变化不是会用了某个EDA工具也不是画了多少块板子而是养成了一个比较难得的习惯遇到问题不再急着上网找“正确答案”而是先自己推导一遍推测一下可能的原因再通过实验去验证。这个习惯听起来简单但真的需要一点一点建立尤其是面对硬件这种“错一步就得重做”的事情耐心和诚实特别重要。有时候半夜一点多我还在对着示波器盯一个不知道从哪冒出来噪声信号脑子里反复回放前几天看过的视频内容试图找到跟眼前现象对应的那一条原理。那次经历非常痛苦但得到的收获也是前所未有的那个噪声的根源是我在电机驱动芯片底下铺的铜皮面积太大导致寄生电容把开关节点的高频噪声耦合到了AD采样引脚上。如果我只是机械地照着别人视频里的规则去画不去理解规则背后的物理本质那么我就一辈子都在“照猫画虎”。但当我开始真正理解“为什么”并且能用自己的话解释给同学听的时候我才算真正迈过了那一道“从抄板到进阶”的坎。也希望还在起步阶段的你能先学会跟“不会”相处那个过程其实就是在积累经验值一点都不会白费。
上一篇/下一篇内容由系统自动关联
返回资讯列表 →