资讯详情

资讯详情

DRC全过板子却冒烟?PCB设计从原理图到打样的避坑指南

拿到打样回来的板子那天我记得特别清楚从嘉立创下单到收货一共四天板子绿油油地看着挺漂亮跟我画的3D预览一模一样。DRC检查零错误所有规则都是绿的我甚至截图发了个朋友圈。结果焊接完上电芯片冒烟数码管没反应串口连不上万用表量一圈才发现电源正负极画反了。那一刻我才意识到DRC通过跟板子能用之间隔着的不是一个检查项而是一整套工程思维。这篇内容就是想把这次“冒烟”换来的教训写透DRC到底在查什么、它必然查不到什么、投板前哪些检查只能靠人肉完成以及板子回来之后怎么高效排查问题。不管你是正在画第一块板子的学生还是刚转行做硬件的工程师照着这份清单过一遍大概率能少打一次废板。1. 先弄清楚DRC到底在查什么1.1 DRC的本质一张“格式检查表”不是“功能测试”很多教程把DRC说得神乎其神好像跑完DRC板子就稳了。实际上DRC全称Design Rule Check它的本质就是拿你当前的设计文件去跟一系列预设规则做比对。比对的维度非常机械走线跟走线之间的间距够不够、线宽有没有小于下限、过孔到焊盘的距离够不够、丝印有没有盖到焊盘、电源网络的载流是不是满足你设置的宽度约束。这些规则本质上都是几何尺寸和连接关系不涉及任何“电路功能”的判断。打个比方DRC相当于Word里的拼写检查和格式检查。它能告诉你“这个单词拼错了”“这段字号不统一”但它绝不可能告诉你“这句话的逻辑是错的”。你把电源接到了芯片的地引脚上只要走线宽度、间距都OKDRC一样给你绿灯。所以我后来跟学弟学妹讲的时候反复强调一句话DRC通过只能证明你的板子“长得合规”不能证明你的板子“活得起来”。DRC规则的主要来源有两类。一类是制造工艺限制比如最小线宽6mil、最小间距6mil、最小钻孔0.3mm这些是板厂能不能生产的问题你画个2mil的线DRC一定会报警另一类是你自己设置的电气约束比如何种网络要和地保持多少间距、模拟信号区和数字信号区的安全距离。第二类规则很多时候是设计者自己定的你定得松DRC查得就松你定得严DRC查得就严。问题恰恰在于新手根本不知道哪些规则该从严设置于是干脆全用默认值DRC跑了个寂寞。1.2 DRC必然漏掉的那几类问题既然DRC只是格式检查那它就注定有一堆查不到的东西。我把它归纳成五类每一类都直接导致过我或者身边人的板子报废。第一类是逻辑连接错误。芯片供电正负极接反、信号线接到不相关的引脚、去耦电容放到了错误网络上这些DRC统统不管。它在乎的只是“只要物理上没短路、间距没违规连接关系合法就行”至于连接得对不对那是原理图的事。所以很多人原理图画得草率靠PCB的DRC兜底结果DRC兜不住板子回来自然翻车。第二类是封装匹配问题。原理图符号里的引脚序号跟PCB封装的焊盘序号对不上是最经典的坑。比如原理图里运放的1脚是输出你用的PCB封装里1脚是输入网络标号虽然连过去了实际焊接后信号全乱。还有封装尺寸选错原理图上明明用的0402电阻PCB库里却调出来一个0603DRC检查焊盘间距也看不出问题因为封装本身合法。等你焊接的时候才会发现买来的料根本贴不上。第三类是信号完整性与电源完整性问题。退耦电容离芯片电源脚太远、晶振走线绕了一大圈、地平面被人为切割断开、ADC采样信号线和PWM大电流线并行走了一路这些在DRC里全是“合法”的但实际跑起来就是要么复位不稳定要么采样值狂跳要么通信误码高。DRC不会管你的开关电流环路面积有多大也不会管你的高速信号阻抗是否连续。第四类是制造与装配问题。板子尺寸和外壳干涉、插件排针方向画反、板边被走线太贴近导致分板时铜箔破损、Mark点缺失导致贴片机识别不了这些问题DRC同样完全无感。哪怕你用3D预览看过了也未必能发现散热器装不下的高度问题。第五类是热设计问题。大电流走线宽度够了但过孔数量不足热量堆在几个过孔上功率管的散热焊盘没有打散热过孔阵列局部温度直接飙升。DRC不会告诉你铜皮上的电流密度是不是超标了它只关心你规则里有没有设置而新手通常根本不会设置电流密度规则。2. 复盘那块“DRC全过却不能用”的板子2.1 芯片冒烟的根因电源接反了我的第一块板子用的是AMS1117-3.3稳压芯片当时在原理图里对照数据手册画符号把输入输出搞反了。原因很蠢数据手册上引脚排列我扫了一眼看到第一脚是GND、第二脚是Vout、第三脚是Vin结果画原理图封装的时候我把第二脚和第三脚的网络标号写反了Vout给了VinVin给了Vout。DRC跑完间距、线宽、孔径全部合规网络和网络之间也没有短路报警一切绿灯。上电那一刻1117直接冒烟板子一股焦味。后来拿万用表一测输入电压5V直接灌到了负载端稳压芯片内部调整管击穿。排查流程其实很简单断电用万用表二极管档测电源对地发现短路再逐段断开负载最后定位到1117的封装。问题不是焊接而是原理图符号里引脚顺序错了。从那以后我养成了一个习惯任何器件只要不是最常用的333那种画封装前一定打开数据手册一个脚一个脚对着核对打死不凭记忆。2.2 封装不匹配料是对的封装是错的第二块板子是帮实验室师兄做的传感器采集板上面要焊一个SOT-23封装的温度传感器。我当时从本地元件库直接调了一个SOT-23封装没仔细核对PCB封装和实际芯片的引脚对应关系。芯片买回来才发现SOT-23封装的引脚排列竟然有两种常见定义一种是1脚在左上另一种是1脚在右下我的封装正好选反了。最尴尬的是DRC依然全过因为封装本身并没有违反任何设计规则。板子焊完温度数据死活读不出来用热风枪吹芯片、换芯片折腾了两天最后用万用表通断档对着芯片规格书一量引脚才发现3脚和1脚互换。这个教训的代价是两块板子加一整天的调试时间。后来我形成了一条铁律新器件画封装之前首先去立创商城或者厂家官网下载官方封装或者至少对着数据手册里的“Package Drawing”把焊盘坐标人工核对一遍绝不再用“看起来差不多”的通用封装。2.3 布局布线里的隐性雷区DRC永远不提示DRC过了板子依然不稳定的案例我身边简直一抓一大把。最典型的是退耦电容放置问题。MCU的电源引脚旁边理论上是必须放一个0.1uF陶瓷电容的而且要求电容尽量靠近引脚回路面积越小越好。第一次画板子的时候我把电容放在了MCU的背面中间隔了两个过孔走线绕了半块板子DRC一点意见都没有结果就是MCU一跑起来复位脚时不时抖动示波器一测电源纹波大得离谱加上两个过孔的电感效应高频噪声全部耦合进复位电路。还有晶振布局。晶振走线过长或者过孔太多起振时间变长极端情况下直接不起振。这块DRC同样完全无感。再比如模拟地和数字地如果只是简单粗暴地用0欧电阻或者磁珠单点分隔但信号线跨越了分割区域走线回流路径被拦腰切断ADC的采样值就会出现规律性的跳动。这类问题在低频数字电路里可能不明显只要电路频率稍微高一点马上原形毕露。2.4 天线和高速信号别指望DRC帮你把关很多人做无线模块的板子比如315MHz/433MHz的遥控器、LoRa节点、BLE信标都会在PCB上画板载天线。这类天线设计里净空区、参考地、匹配网络缺一不可而DRC对天线相关的规则几乎没有任何内置检查。你画一根走线当天线线宽、间距都合规DRC照样全绿但实测通信距离可能只有几米甚至完全谐振不起来。还有涉及高速信号的情况。STM32的SPI跑到几十MHz、USB数据线、以太网差分对这些线一旦超过一定长度就必须按传输线来设计考虑阻抗匹配、差分等长、回流路径。问题在于默认DRC规则里不会帮你查等长误差不会帮你算差分阻抗甚至连“这个网络属于需要阻抗控制的网络”这种定义都要你自己手动指定。很多初次画板的人根本不知道还有这层设计维度自然也就不会去做相关设置。3. 投板之前真正能救命的人肉检查清单踩了足够多的坑之后我总结了一套投板前检查流程。流程不复杂但每一步都很关键尤其是对刚入门的本科生来说这套流程能直接把废板率降一半以上。3.1 原理图阶段的“功能性审查”在打开PCB编辑器之前先回到原理图页做一次完整的逻辑走读。第一步是逐页核对电源树。从输入电源开始到每一路DC-DC或LDO再到每个芯片的电源引脚用高亮功能把电源网络全亮起来肉眼确认每一个电源路径都正确。特别要检查的是芯片的VCC引脚是不是真的接到了电源网络、GND引脚是不是真的接地了、使能引脚有没有悬空或者接错。新手最容易在使能脚上翻车很多LDO和DC-DC的EN引脚是内部上拉的你悬空它也能工作但有些芯片EN默认是下拉悬空直接导致输出为零如果你又在原理图阶段不看数据手册PCB阶段DRC又不管这个板子回来肯定没有电压。第二步是检查每个IC的旁路电容。一个基本准则是每个IC的每个电源引脚旁边至少有一个0.1uF的陶瓷电容直接连接到该引脚的网络上最好物理上也靠近引脚。大电流芯片还要考虑10uF或者更大容值的储能电容。如果原理图里某个电源引脚附近空空如也先别画PCB回到原理图把电容补上再说。第三步是用计算器把关键分压电阻重新手算一遍。比如你用一个电阻分压给ADC采样电池电压把电阻值代进公式看看分压后的电压是否在ADC输入范围内。很多时候原理图是复制粘贴来的某个电阻的参数已经被改过但分压比已经不对了仿真不能发现这个问题DRC更不会。第四步是核对器件封装。这一步要打开元件商城页面确认你画的封装名称和实际买的料的封装名称完全一致。不要觉得“差不多”SOT-23和SOT-223差了十万八千里0402和0603看着尺寸接近焊盘间距完全不同。这个环节我在前文已经吃过亏现在宁愿多花十分钟也要打开数据手册对一遍。第五步是运行一次ERC电气规则检查。ERC能查出一些明显的悬空、单端网络、异常短路作用有限但也不是毫无价值把它当成一道最低门槛即可。需要强调的是ERC报告里出现警告不要直接无视至少看一遍每个警告讲的是什么再决定是否允许忽略。3.2 PCB阶段的“人肉视觉审查”布局布线完成并且DRC清零之后至少要做四件事这四件事DRC一件都代替不了。首先是把PCB视图切换到3D模式转一圈看一看。Allegro、AD、嘉立创EDA都自带3D预览花不了几分钟但能看出很多平面图上发现不了的装配问题插座有没有超出板边、电解电容高度是不是顶到了外壳、两个器件之间是不是靠得太近导致焊接互相挡住。我第一次打板的时候完全没看3D结果排针焊盘设计在板子反面插上去之后朝内根本插不到外壳预留的槽位里。其次是做一次网络比对。AD里对应功能叫Netlist Compare可以把你PCB里的实际连接关系跟原理图导出的网络表做一致性比对。这一步非常重要因为它能弥补“DRC只查上下层间短路”的盲区。PCB编辑过程中手动改了走线、改了过孔偶尔会出现删掉一根线忘了补上、或者网络被无意中改掉的情况网络比对能直接抓出来。然后是检查丝印。我见过最夸张的翻车案例是一块板子回来之后所有位号全被焊盘盖住了。焊接的时候根本分不清哪个位置焊哪个器件只能对照PDF一个个猜。丝印检查很简单把丝印层单独显示看位号是否清晰、方向标识是否有、极性电容的“”标记有没有被其他器件遮挡。顺带还要检查板子上有没有留自己的标识和版本号方便后续调试区分版本。最后是铺地和走线回流检查。用高亮功能把GND网络高亮出来肉眼确认整个地平面是否完整有没有被信号线切碎。再检查关键信号的回流路径晶振下方是否是完整的地参考、电源走线和地走线是否尽量平行靠近。这些属于信号完整性范畴DRC不管但直接决定板子稳定性。3.3 导出Gerber之后别急着下单很多人习惯在EDA里点“下单”之后把工程文件直接发给板厂这种做法其实风险不小。工程文件里有可能包含多余的层、非标准设置、甚至错误的设计约束板厂能打开但未必能正确解释。更稳的做法是导出标准Gerber文件再用第三方的Gerber查看器打开看一遍。嘉立创EDA有在线Gerber预览AD、Allegro也都能导出后回读。这一步能看到板厂真正会用来生产的“底片”有些在PCB编辑器里显示正常的内容导出Gerber之后可能出问题比如字体丢失、圆弧变成多边形、钻孔偏移。我曾经遇到过一次PCB编辑器里圆形焊盘一切正常导出Gerber后在查看器里发现焊盘边缘变成了多边形锯齿状虽然不影响功能但能看出导出设置有问题检查出来的时候还挺后怕。还有一个进阶但很重要的操作把导出的Gerber文件重新转回PCB工程文件跟原始文件做一个对比。现在有一些工具支持Gerber转PCB可以导入到一个空白工程里做交叉检查。这一步不是为了逆向而是为了确证。在实际操作中Gerber转回PCB后最常见的检查项是板框外形是否一致、孔位是否对得上、各层之间是否有意外重叠、是否出现了原始工程里不存在的莫名线条。这一步等于让设计和生产之间多了一道保险虽然麻烦但绝对值得。4. 板子到手之后怎么排查“DRC过了但跑不起来”4.1 上电冒烟第一步永远是断电而不是拔芯片上电瞬间闻到焦味或者看到某个器件冒烟第一反应应该是立刻断电然后拿万用表二极管档测电源和地之间的阻抗。如果阻值接近0大概率有短路如果阻值很低但没到0可能是有器件反向击穿或者焊错。排查短路的方向建议从电源入口逐段往后断开。看看有没有焊反的极性电容、焊反的二极管、芯片方向不对导致电源直通地。用热成像仪能更快找到发热点但学生党通常没有那就在断电状态下用万用表低阻档逐段测虽然慢但可靠。我那块冒烟的板子最后就是用二极管档顺着5V网络一路测测到1117引脚的时候发现输入对地只有几十欧拆掉芯片再测网络恢复正常问题锁定根因就是封装接反。4.2 MCU不启动先查最基本的三个点板子没冒烟但是程序烧不进去或者MCU不运行很多人第一反应是检查代码其实硬件问题更常见。用示波器或者万用表按顺序确认三件事供电电压对不对注意要在MCU引脚上量而不是在电源模块输出端量因为中间可能有断线或者焊桥短路复位引脚电压是不是高电平尤其是外部复位电路上拉电阻焊没焊、电容有没有短路晶振两端有没有振荡波形如果有示波器就直接看波形没有就用万用表测晶振引脚的对地电压正常应该在电源电压的一半左右如果量到0V或者VCC多半是晶振没起振重点检查负载电容是否焊错、晶振本体有没有受损。这三个点查完大概率能定位问题。我见过一个很典型的案例STM32板子回来后程序死活烧不进去Debug提示“No target connected”查了半天代码结果发现是复位引脚上的一颗0.1uF电容焊错了位置把复位引脚拉死在了低电平。这种问题DRC当然查不到原理图里看起来也是对的但PCB布局时那个电容的网络标号被自动分配错了变成接在复位和地之间。后来也是靠网络比对把PCB连接关系和原理图网络表一对立刻发现了这个隐蔽的错误。4.3 通信不稳定不要急着改软件先查硬件回路串口乱码、SPI偶尔出错、CAN总线时不时掉线这类问题排查起来最磨人因为它们可能不是固定复现。我的建议是按照“电源-接地-信号完整性”的顺序排查。电源方面用示波器看通信芯片的供电引脚如果纹波过大先加电容或者调整布局。接地方面拿万用表测各个通信接口的地是不是真的连到了主地特别留意螺丝孔、屏蔽壳这些容易“假接地”的地方。信号完整性方面查跨层走线是否有参考平面断裂、差分线是否等长、端接电阻是否正确。很多时候通信不稳定的根子就在两根线走得太久太远信号边沿变成正弦波接收端采错电平而已。这种情况下调整软件里的采样点和同步参数可以临时缓解但治本的办法是重新设计PCB减少信号线长度、控制阻抗、保证回流路径顺畅。4.4 无线模块距离短天线净空和匹配是关键如果你做的是315MHz/433MHz或者2.4G产品最好一开始就按官方参考设计来画天线区域。PCB板载天线的净空区要求非常严格天线周围的铜皮不能随便铺天线正下方一般不能有地平面匹配电路的电感电容值必须跟天线形式匹配。很多“DRC全过但距离短”的案例根本原因不是芯片功率不够而是天线周围的环境不对要么没按参考设计留净空要么匹配网络参数跟实际天线偏差太大。量化的检查方法是使用网络分析仪或者矢量天线分析仪去测天线端的S11参数。新手如果没有仪器至少用驻波表或者参考官方评估板的尺寸一比一复刻天线区域。我在实验室见过太多人把433MHz天线画成一根普通走线周围全是地铜皮RF信号能量大部分被耦合到地平面辐射效率极低。这种问题DRC不仅不会提示还很可能因为天线走线在电气上“看起来正常”而全数放行。5. 最后一次提醒把“检查”变成习惯而不是临时抱佛脚从原理图到PCB再到Gerber最后到焊接调试每一道关卡都有它特有的检查手段。DRC只覆盖了物理规则这一层它像一个非常严格的门卫只检查你有没有带齐证件却完全不管你把一颗炸弹还是礼物带进了门。真正决定板子好不好用的是你自己的工程师判断力。我现在画完一块板子标准流程是原理图完成先自己讲一遍电气逻辑再让师弟师妹帮忙交叉评审PCB布局完成后开3D视图转三圈投板前导出Gerber再回读一遍等待板厂打样的那几天顺手把焊接用的物料清单、位号图、装配说明都整理好。表面上看这套流程增加了不少工作量实际上它帮我省下的废板和调试时间远远超过那点额外投入。最后再分享一个小技巧每次打样回来拿到板子先不要焊接任何器件用万用表把电源网络到地的阻值测一遍记录下来。比如5V网络对地阻抗多少、3.3V网络对地阻抗多少建立一张“健康板卡阻抗表”。后续如果改版再打样先用这张表去对比新板子的网络阻抗如果某个网络的阻抗和上一版差异巨大多半是新版里存在接线错误或者封装错误。这个习惯帮我抓住了至少三次隐患比上电之后再冒烟强太多了。做硬件没有捷径该踩的坑一个都躲不掉但好的流程和习惯至少能保证同一个坑不踩第二遍。
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →