ARTICLE DETAIL

资讯详情

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

DRC通过并不等于板子能用:PCB设计从原理到调试避坑指南

DRC通过并不等于板子能用:PCB设计从原理到调试避坑指南 第一次在小批量打样平台下单PCB的时候我一度以为把DRC跑绿就是万事大吉。文件提交、付款、等快递三天后拆开真空包装板子光鲜亮丽丝印清晰过孔整齐简直像一件工业品。但真正到了焊接、上电、调试的那一周我才发现自己当初有多天真。DRC通过离板子能用中间隔着的不是一段路而是一整套从电气原理到加工工艺再到焊接调试的系统认知。这篇文章不聊工具菜单怎么点只聊一个本科生第一次做PCB时在DRC之外踩过的坑和补上的课。1. DRC为什么不能替板子“能用”背书1.1 DRC的底层逻辑几何规则和连通性审计先回到DRC本身。Design Rules Check设计规则检查本质上是把你画的版图放进一组“静态约束”里去比对。比如最基础的Clearance间距规则线宽规则过孔内径和外径规则短路检查未连接网络检查丝印到阻焊的距离阻焊桥最小宽度。这些检查项全部通过意味着你的图在“几何层面”没有违反预设阈值所有网络也都有连通路径。但你要清楚DRC检查的是“像不像一块合格PCB的图纸”不是“这块板子拿在手里的表现”。它不评估电流流过铜箔时的温升不评估高速信号在走线拐角处的反射不评估电源网络上的压降也不评估底层平面被走线割开之后对回流路径的破坏。这些恰恰是决定板子能不能真正工作起来的关键。我记得当时画一块基于STM32的最小系统板ADC采集差分信号电源来自一个低压差LDO。布局走线完事后AD的在线DRC和批次DRC全部通过没有未连接网络没有短路间距也全部满足我自己设的6mil规则。结果板子回来上电ADC读数跳动幅度吓人用示波器一看模拟输入上有幅度不小的毛刺。后来一查问题出在底层覆铜被两条数字走线切成了一条细长的“孤岛”模拟信号的回流电流被迫绕了一大圈形成了一个面积很大的地环路。DRC对这种问题一点脾气都没有。1.2 DRC漏掉的关键变量电流、阻抗与热DRC规则文件里通常有默认线宽比如信号线8mil电源线20mil但如果你不去主动算一条走线实际要过多少电流再反推需要多宽的铜箔DRC是不会提醒你的。举个我实际算过的例子LDO输出3.3V负载峰值按500mA估算板厂默认1oz约35微米覆铜厚度。走线长度约2.5厘米如果你只给了10mil宽那这条走线的直流电阻大概在130毫欧左右满载时压降接近65毫伏对有些对供电精度敏感的外设来说已经是不可忽略的误差。若同时有大电流瞬变压降还会叠加在纹波上。DRC不关心这些它只在乎你的线宽有没有低于板厂最低能力。热的问题更隐蔽。DRC不会去算某一片铜皮上聚集了多少过孔、多少发热器件也不会提醒你MOS管底下的散热焊盘是不是被走线切成了一小块。我第一块板子上的稳压芯片底下Pad面积不小但没有打过孔到背面覆铜散热。手指按上去三秒钟就开始烫手一摸才知道自己把热设计完全扔在脑外了。2. 第一次打样后才发现的设计规则真相2.1 规则设置≠板厂能力DFM才是真正要命的很多人在自己的EDA工具里设了一整套规则线宽8mil、间距8mil、过孔内径0.4mm然后DRC通过就发板了。问题在于你设的规则只是你“希望板厂做到”的而板厂加工能力是有上限的。哪怕你设的规则在常规范围内不同的表面处理工艺、不同板厚、不同铜厚组合下厂家能稳定量产的最小值也不一样。这类问题通常要靠DFM分析来发现也就是Design for Manufacturing可制造性分析。国内几个主流打样平台在提交Gerber之后都会有在线DFM工具可以一键检查最小线宽、最小线距、最小孔径、板边到铜的距离、孤立铜皮、无阻焊桥等。我很建议第一次做板的人在导出Gerber后把文件丢进这类工具里跑一遍它会直接给出“风险提示”比如某处焊盘间距接近加工极限可能造成桥连某处铜皮与板边距离不足分板时容易露铜甚至起翘。我第一次做板的时候完全不知道这个流程AD里DRC绿了就直接提交。后来收到板子才发现有一排0.5mm间距的引脚焊盘之间的阻焊桥不见了焊接时锡膏一加热就侧面连桥怎么拖都拖不开。后来才明白是我画封装的时候用了过小的阻焊间隙板厂按最小能力做阻焊桥就会被油墨填充掉实际形成的就是整片开窗。2.2 叠层、铜厚和PCB阻抗是“看不见的硬约束”第一次画两层板的时候我根本不关心叠层和铜厚默认选的就是1.6mm板厚、1oz铜厚。后来做一块采样板板上有SPI接口的ADC时钟频率还不算高但SCLK信号沿比较陡我让它走了一条很长的顶层线底层刚好是有大片螺丝孔和独立铜皮。结果就是SCLK信号质量差数据线采集偶发错误。这里要说的核心问题是回流路径与阻抗。所谓回流路径就是信号电流从输出端流出最终总要回到源端形成了完整的环路。高频信号的回流电流会倾向于沿着信号走线正下方的参考平面走尽可能减小环路面积。如果你的参考平面是完整的那回流路径就平顺如果平面被长槽、细缝割裂回流电流就被逼着绕远路环路面积变大对外辐射变大抗扰度也变差。这种东西DRC百分之百不会告诉你。针对差分信号、射频信号甚至是有明确阻抗要求的单端信号板厂会提供叠层参数比如特定的介质厚度和铜厚组合下走多宽的线、留多大的间距正好能控制到某个目标阻抗。第一次做板的人基本不会遇到高速信号阻抗匹配问题但如果你做USB 2.0、以太网、DDR这类场景阻抗控制就是绕不开的。你能在约束管理器里看到“90欧姆差分阻抗”的要求但你不知道它对应的线宽和间距是自己瞎拍出来的还是按叠层算出来的。DRC能检查你设的阻抗规则有没有满足线宽线距约束但那份线宽线距本身靠不靠谱得靠你自己去推敲。2.3 封装与焊盘直接决定你焊不焊得上DRC通过不保证你能把芯片焊上去。这句话听起来很怪但第一次拿烙铁焊TSSOP、焊QFN的时候你就明白了。张拉力的解释很形象。焊盘尺寸如果画得太小焊料很难形成可靠的焊点虚焊的隐患很大焊盘画得太大两个相邻的引脚焊盘之间拉锡容易短路。DRC能检查焊盘之间的间距有没有小于规则值却不能告诉你这个封装适不适配你手里那颗实际买到的芯片。我画过一块板子芯片是某厂贴片封装的运放SOP-8。我直接用了EDA自带的封装库图方便嘛。结果拿到实物芯片一看引脚宽度比封装库里的焊盘窄了不少焊接时锡膏很难铺满整个焊盘部分引脚焊点不饱满。后来学会了一个比较土但很有效的办法等芯片实物到了之后用游标卡尺量一遍引脚宽度、间距和长度再和封装库对比。误差大了就自己改焊盘宁可多花点时间也不要让板子到手之后再返工。还有一种问题几乎每个新手都会遇到过孔和焊盘绑在一起。DRC不会说不行但它会让焊接过程非常痛苦。焊盘底下打一个过孔焊锡在加热时会顺着过孔流到另一面形成“吸锡”现象焊盘上锡量明显不足小引脚虚焊概率直线上升。这种过孔如果不是为了散热就不要直接放在焊盘里。3. 上电调试实录那些DRC根本管不到的问题3.1 第一次通电两小时排查电源短路板子焊完先用万用表量了一下电源输入端的阻值心里祈祷别短路然后插上USB供电。那一瞬间电流表指针直接飚到三百多毫安正常情况下这块板子的待机电流应该在三十毫安左右多了整整十倍。我第一反应是某个电容焊反了或者是某个芯片引脚连锡。排查过程比想象中痛苦。先看电源树5V输入3.3V LDO输出然后各路外设。我把LDO后级断开测3.3V网络对地阻值发现只有不到2欧姆。于是开始一段一段找是哪一片区域短路。这时候手上没有红外热成像只能靠“手摸法”加“分段割线法”。断掉某条支路之后电压恢复了又顺着支路往下找最后发现是一个10uF瓷片电容焊盘附近的阻焊层下面有一小截铜皮毛刺焊接的时候被锡膏带起来直接把相邻两个焊盘桥接在一起了万用表一量短路点就是这么来的。这种问题是DRC查不出来吗严格说你在布局阶段不会放这种毛刺毛刺来自板厂加工时残留的铜渣或蚀刻不干净的问题。工程上要靠目检、AOI检测或者绝缘测试来发现。所以永远不要相信“DRC过了板子就安全”这句话。3.2 模拟信号串扰和地平面碎块再讲一个让我印象更深的例子。板子上同时有数字电路和模拟电路AD7606这种数据采集芯片把模拟输入和数字接口放在一起新手最容易犯的错误就是没有做区域规划。我当时已经意识到要分开模拟地和数字地于是把覆铜区割成了两片。但问题来了我用一条细走线把两块地连起来ADC的数字返回电流和模拟返回电流全都挤在这条细线上模拟地电位被污染采集数据自然不稳定。比这更麻烦的是地平面被信号走线切碎。底层我大面积覆铜作为地但为了走通一些信号我把底层当成“第二信号层”来用了各种走线在底层横穿地铜皮变成了很多条又细又长的“孤岛”。这就等于把一个完整的参考平面打得千疮百孔回流路径一片混乱。DRC对“铜皮完不完整”没意见它只检查有没有短路但对工程来说地平面上的这些“裂缝”已经足以让模拟性能劣化到没法用。之后把走线重新规划了一下能走顶层就走顶层底层尽量少走线微调过孔位置让底层的铜皮重新连成片。效果立竿见影ADC的采样跳动从几十个LSB降到两三个LSB。3.3 晶振走线过长复位脚被串扰干扰还有一次折腾了很久的问题板子上的MCU偶尔启动失败看门狗随机复位。我一开始怀疑是电源纹波太大后来用示波器看复位引脚波形发现有周期性的小毛刺叠加在复位信号上。顺着这条线索追下去发现复位引脚走线和晶振引脚走线在顶层平行走了超过一厘米中间间隔只有十几mil。晶振工作的时候在相邻走线上耦合出了噪声复位引脚恰好是高阻输入所以毛刺就被“照单全收”了。DRC怎么看你这个布局它只看你两条线之间的间距有没有大于最小间距规则。如果大于了就给你通过。但你想想一个1nF电容在复位脚上多留点时间可能这点毛刺就被滤掉一大半。或者把晶振挪远点把复位线换成粗短的地包围走线问题也就不存在了。这类问题靠DRC永远发现不了靠的是对信号耦合路径和敏感网络的敏感度。4. 板子到手后我是怎么一步一步排查和救板的4.1 先做外观检查再看电源最后跑功能这个流程听起来很基础但我第一次做板子的时候完全没按这个来。焊完板子、插电就跑程序出了问题才回头检查。后来板子丢在我面前我总结出一套顺序可以说每次帮我省了不少时间。第一步外观检查。拿着台灯放大镜看焊点是不是饱满光亮有没有桥连、虚焊、锡珠看有没有元件装反芯片上的圆点或者缺口是不是和丝印一致。这一步能发现一半以上的低级问题。第二步电源检查。上电之前先量电源输入对地阻抗看看有没有异常。上电之后先测各路电源电压是否在预期范围内纹波大不大。电源没整明白之前后面所有信号调试都没有参考基准。第三步分模块验证。不要一上电就烧整个程序可以先烧一个最精简的点灯程序确认MCU能跑起来再逐步加外设、加通信、加采集。这样出问题的时候你能很快锁定是哪一部分引入的。还有一个小经验手边常备一根曲别针改成的飞线一根吸锡带一把不心疼的烙铁头。调试时发现某条走线走错了或者噪声太大直接飞线比重新投板快得多。我用飞线把晶振的地包围绕了一圈顺便把模拟地数字地之间那条细走线换成了一根粗铜丝结果信噪比改善非常明显。4.2 割线、刮绿油、补锡自制“手术刀”三板斧板子已经做出来了发现某条走线设计不合理怎么办我试过三种办法。第一种是割线。如果是顶层走线用美工刀片沿着铜箔中间划一道就能把走线断开。割开之后用万用表确认两边已经开路再飞线连到自己想要的位置。如果是内层走线割不了那就只能靠附近的过孔或者直接放弃这条走线。第二种是刮绿油。有些焊盘旁边被阻焊层盖住你想用示波器探针测某段铜皮的信号可以拿刀片轻轻刮开一小块绿油露出铜箔。刮的时候要轻别挖断走线也别刮太大影响旁边网络。第三种是补锡加粗。有些走线过流能力不够别指望DRC告诉你跑负载的时候明显发烫。我会在这条走线表面补一层比较厚的焊锡增加截面积实测能压掉不少温升。但要注意这是应急做法正规设计里还是改版加宽铜箔来得可靠。4.3 关键信号飞线实验验证问题比修复问题更重要飞线不只是为了让板子“能跑”它更重要的作用是帮你验证假设。比如我怀疑模拟信号被数字地污染了那我就把模拟区域的地通过一根粗飞线直接接到电源输入端的GND看看采样数据有没有变化。如果变化明显说明地回路确实有问题后续改版就知道该怎么改。这也是我和“DRC思维”告别的一个转折点DRC是验证“我对图纸的定义”调试是验证“我对电路的理解”。后者才真正指向“能用”。5. 工具链与专业细节不同EDA的DRC能力差异5.1 AD、立创EDA、Allegro、PADS的DRC边界各不相同现在很多本科生接触到的EDA主要是Altium Designer、嘉立创EDA课程设计或竞赛里也有用Cadence Allegro和PADS的。很多人以为这些软件里的DRC都一样其实差别挺大的。AD的DRC更偏“通用规则检查”你可以设置网络类间距比如把电源网络和信号网络设置不同的间距还可以检查未连接网络、短路、线宽、过孔规格、丝印压焊盘等。AD的在线DRC可以一边画一边报错这种实时反馈对新手很友好。PADSMentor里叫Verify Design也能做类似检查但它的规则模型封装得更细比如安全间距可以按“网络到网络”“层到层”来定义。Cadence Allegro里的约束管理器更专业支持物理规则和电气规则分离还能给高速信号专门设定组内等长、相对延时等约束。也就是说Allegro的DRC可以做到“检查你高速信号等长有没有满足要求”而AD默认的DRC就不会管这种电性能层面的约束。我第一次用AD的时候以为DRC是全能的后来接触了Allegro才发现电性能约束在专业工具里是可以作为规则写进DRC的。比如你给DDR数据线组设置等长约束Allegro能自动报出组内偏差超没超。所以“DRC达不到高速设计要求”这个命题在工具链层面就已经被拉低了真正超出的是你对电性能约束的理解。5.2 Gerber导出后的二次检查不能只信EDA里的绿灯你的EDA里DRC全绿不代表给到板厂的文件一定没问题。每一款EDA导出的Gerber文件都有不同的精度设置和图层定义。我吃过亏的地方在于油墨层也就是阻焊层。AD里默认的阻焊扩展是4mil但我当时有一块板子的焊盘间距只有6mil阻焊桥几乎就没了板厂DFM直接提示“阻焊桥无法形成”当时不懂就直接发结果焊盘之间连成了一片开窗。后来我的操作习惯是出Gerber之后用Cam350或板厂自带的在线查看器把所有图层叠着看一遍重点看三层——顶层丝印是不是压到了焊盘阻焊开窗是否和焊盘对位过孔有没有盖油需求。这三个地方是新手最容易出问题的重灾区。5.3 网络类间距规则DRC能设置但你要去用AD的规则系统里有一个很好用的功能就是按网络类设置不同间距。你完全可以把整个电源网络的间距和信号网络分开设置甚至可以把强电区域和弱电区域设置成两套不同的间距规则。我后来画电源板的时候把AC侧和DC侧的间距分开定义AC侧最小间距按爬电距离要求加大DC侧按普通信号处理。这样DRC才能真正帮你发现“某处低压走线离高压太近”这种问题。可很多新手拿到工具以后全程就用一个默认规则等于让DRC戴着眼罩工作。你设多大的约束它就查多大的范围查不出来不代表没问题。6. 新手送样前必做的10道自查清单这10条是我踩坑之后整理出来、每次发板前一定会对一遍的内容直接给大家做参考。板厂工艺能力表看过没有线宽线距下限、孔径下限、最小槽宽、铜厚和最小线宽的关系。电源网络有没有单独设规则而不是和信号线混用一个默认间距。所有散热焊盘是不是打了足够多的过孔过孔有没有堵孔或者盖油要求。底层地平面是不是完整的没有被人为切成碎块。高速信号和敏感模拟信号下方有没有完整的参考平面。晶振、复位、模拟输入这类敏感走线是不是离其他高频信号太近。所有旁路电容是不是尽可能靠近芯片电源引脚过孔数量够不够。丝印层符号和实际器件方向对不对有没有丝印压在焊盘上。板框尺寸、安装孔位置和实际外壳装配尺寸对不对。用板厂的在线DFM重新跑一遍确认没有制造层面的风险提示。不要嫌麻烦。我第一次投板前这10条里至少有一半没检查代价是多花了两个星期调板。之后每一条对下来板子基本回来都能正常活起来就算有小问题也大多是焊接层面不会反复翻车。多说一句“DRC通过离板子能用差得很远”这件事本身不是坏事。它让你意识到EDA里的绿色对勾只是底线而“能用”背后是电源完整性、信号完整性、热设计、可制造性、可维修性这些真实存在的工程维度。第一次做PCB的人其实很幸运因为这些问题留在课程设计和竞赛板子上成本低、改版快可以趁早把它们想明白。而当你真正能把“DRC通过”和“板子好用”画上等号时你也就从画图员往前走了一小步变成半个硬件工程师了。
返回列表