首页 / 资讯中心 / 文章详情

DRC全绿板子却废了?硬件工程师必知的四大致命错误

DRC全绿板子却废了?硬件工程师必知的四大致命错误 ★ FEATURED ARTICLE
1. 当DRC报告一片绿为什么板子还是废了画PCB这件事最让人心里踏实的瞬间大概就是点下运行DRC然后看着错误列表空空如也所有规则前面都挂着绿色的对勾。那一刻你会觉得这板子稳了可以发出去打样了。可现实往往很打脸——板子回来焊上元件要么某个接口死活不通要么电源一上电就冒烟要么信号质量差得离谱查来查去发现是某个封装画错了、某个网络连错了、某个间距在物理上根本装不下。我做了十多年硬件经手的板子从两层板到十几层的都有用过的工具从Altium Designer、Cadence Allegro到KiCad、嘉立创EDA都算熟。这些年踩过的坑里有一类特别隐蔽也特别气人DRC全绿但板子就是错的。这类问题的根源在于DRC本质上只是一个规则检查器它检查的是你设定的规则而不是物理世界的真实约束。你规则设得不对、封装画得不对、网络逻辑本身就有问题DRC照样给你亮绿灯。这篇文章我想把这类假绿灯问题彻底拆开讲清楚。核心围绕四个最容易让所有检查都通过、但实际必然出错的致命错误展开封装与实物不匹配、网络连接逻辑错误、DRC规则设置形同虚设、以及Gerber输出与设计意图脱节。这四个问题覆盖了从原理图到PCB、从设计规则到生产文件的完整链路任何一个出问题板子都救不回来。文章会结合KiCad、Altium Designer、嘉立创EDA这几个主流工具的实际操作来讲涉及封装尺寸、螺丝孔、过孔环宽、RS485上下拉电阻、Gerber导出这些具体细节适合已经能画板子、但想少走弯路的硬件工程师和电子爱好者。先说一个我自己的真实经历。早年做一块RS485通信的采集板DRC全绿打样回来发现通信时好时坏折腾了两天才定位到问题RS485总线的上下拉电阻封装选成了0402但实际采购的物料是0603焊盘对不上勉强焊上去接触不良。DRC根本不会管你封装和实物是否一致它只认你库里的那个封装。这就是典型的检查通过、物理错误。2. 封装与实物不匹配DRC永远查不出的第一号杀手2.1 封装错误的三种典型形态封装问题之所以是DRC全绿的头号杀手是因为DRC的检查对象是你库里的封装定义而不是你手上真实的元器件。只要你的封装在软件里自洽DRC就不会报错。封装错误大致分三种形态每一种都能让板子直接报废。第一种是焊盘尺寸和间距错误。比如0603封装的电阻标准焊盘间距和焊盘尺寸是有行业规范的但很多人在网上随便下载一个封装库就用不同来源的库对0603的定义可能差很多。有的焊盘做得太窄回流焊时立碑有的焊盘间距偏大元件放上去两头够不着。这类问题DRC查不出来因为焊盘之间没有违反间距规则网络也是连通的。第二种是引脚编号与实物不符。这个在接口封装上特别常见。比如一个DC005电源座不同厂家的引脚定义可能完全不一样有的是中心正极、有的是中心负极引脚编号顺序也可能不同。你在原理图里按A厂家的定义连了线PCB里用的却是B厂家的封装DRC全绿但板子一上电就短路或者极性反了。第三种是封装与实物尺寸整体不匹配。就像我前面说的0402和0603混用或者M2螺丝孔留的过孔和环宽不对螺丝根本拧不进去或者拧进去把铜皮压裂。2.2 用三对照方法把封装焊死在源头要根治封装问题我的经验是建立一套三对照流程在封装入库之前就把它焊死而不是等到DRC阶段。第一对照对照数据手册的机械图。任何一个新封装入库前必须打开对应元器件的数据手册找到Mechanical Drawing或者Package Outline那一页逐个核对焊盘的长宽、间距、引脚编号。以0603封装为例标准尺寸是长1.6mm、宽0.8mm但焊盘设计要根据你的工艺来定一般焊盘长度会比元件本体略长留出爬锡空间。我通常会把数据手册的机械图截图存到封装库里方便以后复查。第二对照对照实物测量。数据手册有时候也会有坑尤其是国产替代料。我的习惯是拿到样品后用卡尺实测一遍关键尺寸特别是接口类元件。比如DC005电源座实测中心针直径、外径、引脚间距和手册对不上就以实物为准。第三对照对照已有量产板。如果公司有已经量产验证过的板子新项目尽量复用那些封装不要重新画。复用经过验证的封装比你自己新画一个再检查要可靠得多。在KiCad里封装管理相对透明你可以直接打开封装编辑器看焊盘坐标。Altium Designer里可以用PCB Library面板逐个检查。嘉立创EDA的封装库比较丰富但也要注意有些是用户上传的质量参差不齐用之前务必核对。2.3 螺丝孔、过孔环宽这些非电气细节有一类封装细节特别容易被忽略因为它们不涉及电气连接DRC默认也不怎么管。最典型的就是安装孔。一般PCB上M2螺丝孔的过孔直径留2.2mm左右环宽焊盘外径减去孔径的一半建议留0.5mm以上这样螺丝拧紧时不会把铜皮压裂。M3螺丝孔过孔直径一般3.2mm环宽同样建议0.5mm以上。这些参数如果你设得太小DRC不会报错但装配时螺丝一拧就出问题。还有过孔的环宽。过孔环宽太小钻孔偏差稍微大一点就会破环导致断路。一般过孔环宽建议不小于0.15mm机械钻孔的过孔环宽最好留到0.2mm以上。这些在DRC的最小环宽规则里可以设但很多人默认规则里这个值是0或者很小等于没检查。提示封装入库前把数据手册机械图、实物实测尺寸、量产验证记录三者对齐这一步花的时间远比板子报废后返工要少。3. 网络连接逻辑错误原理图对了PCB不一定对3.1 网络标号重名与隐式连接网络连接逻辑错误是第二类DRC全绿但板子错的重灾区。DRC检查的是PCB上的物理连接是否符合网表但网表本身是从原理图生成的。如果原理图里的网络逻辑就是错的那PCB和网表一致DRC自然全绿但板子功能是错的。最常见的是网络标号重名。比如你在原理图里给两个本该独立的信号都标了VCC软件会认为它们是同一个网络自动连在一起。DRC不会报错因为网表里它们确实是一个网络。但实际功能上这两个信号本不该短接。这类问题在层次化原理图里尤其容易出因为不同页面的网络标号作用域可能没设对。还有一种更隐蔽的叫隐式连接。有些EDA工具里两个引脚如果直接叠在一起或者通过某些特殊符号会被隐式认为是连通的即使你没有画连线。这种连接在原理图上看起来不明显但网表里已经连上了。KiCad和Altium都有类似机制用的时候要特别小心。3.2 用网表反查揪出逻辑错误要发现这类问题光看原理图不够得学会网表反查。具体做法是在PCB工具里打开网络管理器逐个检查关键网络的连接对象。比如你有一个RS485总线A和B两根差分线你应该能在网络管理器里清楚看到A网络连了哪些引脚、B网络连了哪些引脚。如果发现某个不该连的引脚出现在网络里那就是原理图逻辑错了。在Altium Designer里可以用PCB面板的Net视图点开每个网络看它连接的焊盘。在KiCad里用Board Setup里的Net Classes和Net Inspector可以查看网络连接。嘉立创EDA也有类似功能。我自己的习惯是在布线之前先把所有电源网络和关键信号网络过一遍确认连接对象和设计意图一致。这一步花十分钟能省掉后面几天的调试。3.3 RS485上下拉电阻的经典翻车案例拿RS485总线举个例子这是网络逻辑错误的高发区。RS485总线需要在A、B线上各加一个上下拉电阻通常A线上拉、B线下拉阻值一般选4.7kΩ到10kΩ具体要根据总线长度和节点数计算。这个上下拉的作用是保证总线在空闲时处于确定电平避免误触发。问题出在哪呢很多人画原理图时把上下拉电阻画在了错误的位置比如画在了隔离芯片的后面而不是总线侧或者两个电阻都上拉、都下拉。DRC全绿因为电阻确实连在A、B网络上但功能上总线空闲电平是错的通信时好时坏。正确的做法是上下拉电阻要放在总线的最远端或者主机侧A线上拉到VCCB线下拉到GND阻值根据总线电容和节点数计算。一般经验公式是上下拉电阻并联值要远小于总线终端电阻通常120Ω但又不能太小导致功耗过大。4.7kΩ是常见选择节点多的时候可以适当减小。注意网络逻辑错误不会在DRC里体现必须靠网表反查和功能审查来发现。布线前过一遍关键网络是性价比最高的检查。4. DRC规则设置你以为在检查其实在放水4.1 默认规则为什么等于没检查很多人跑DRC用的就是软件默认规则。这里有个残酷的事实大多数EDA工具的默认DRC规则宽松到几乎等于没检查。默认的最小线宽可能是0.2mm甚至更小最小间距可能是0.2mm最小环宽可能是0。这些值对于现代PCB工艺来说要么太宽松导致你画得很随意也不报错要么根本不符合你的实际工艺能力。更关键的是默认规则往往不包含很多重要检查项。比如丝印重叠、焊盘与板边距离、孔到孔距离、阻焊开窗这些默认规则里可能根本没开。你跑完DRC看到全绿其实只检查了线宽线距这几项最基本的。我见过太多人DRC全绿就发板结果板厂反馈说你这个孔到板边太近了我们做不了或者丝印压焊盘了我们帮你移了。这些都是DRC该管但默认没管的事。4.2 按板厂工艺能力反推规则正确的做法是根据你选定的板厂工艺能力来设置DRC规则。以嘉立创的常规工艺为例最小线宽/线距一般是0.1mm但建议留余量用0.15mm最小过孔内径0.2mm最小过孔外径0.4mm孔到板边距离建议0.3mm以上。你把这些值填进DRC规则里DRC才真正有意义。在KiCad里这些规则在Board Setup的Design Rules里设置可以分别设最小线宽、最小间距、最小环宽、最小孔尺寸等。Altium Designer在Design Rules里设置规则更细可以按网络类、按区域设不同规则。嘉立创EDA的规则设置相对简单但基本的线宽线距、孔尺寸都能设。我一般会建一个板厂工艺模板把常用板厂的工艺参数存进去新项目直接套用。这样DRC检查的就是真实可制造的约束而不是软件默认的宽松值。4.3 那些必须手动开启的检查项除了线宽线距有几个检查项我强烈建议手动开启丝印与焊盘重叠检查丝印压在焊盘上焊接时会影响上锡板厂也可能帮你移走导致丝印错位。孔到孔距离检查两个孔挨太近钻孔时可能破孔或者钻偏。焊盘到板边距离检查焊盘离板边太近铣边时可能伤到焊盘。阻焊开窗检查阻焊开窗太小焊盘露不出来太大可能连到旁边的铜。差分对间距检查如果有差分信号要检查差分对内的间距是否一致。这些检查项在Altium Designer里大部分都有现成规则KiCad里也能通过自定义规则实现。开启之后DRC才真正成为一道防线而不是一个摆设。提示DRC规则不是设一次就完事每换一个板厂、每换一种工艺比如从喷锡换沉金都要重新核对规则。5. Gerber输出设计对了文件错了照样白搭5.1 Gerber层遗漏与层序错误就算你的设计完美无缺DRC全绿如果Gerber文件输出错了板子照样废。Gerber是PCB设计的最终交付物板厂是照着Gerber做的不是照着你的设计文件做的。Gerber出问题前面所有工作都白费。最常见的Gerber问题是层遗漏。比如忘了输出阻焊层板厂就不知道哪里该开窗忘了输出丝印层板子上就没有元件标号忘了输出钻孔文件板厂就不知道哪里要钻孔。这些问题在设计文件里完全看不出来DRC也不会报错但板子做出来就是残废的。还有层序错误。多层板的内层顺序如果搞反了比如把电源层和地层对调板子做出来功能完全不对。Gerber文件本身不包含层序信息层序是靠文件命名和板厂的工程确认来保证的。如果你命名不规范板厂可能理解错。5.2 用Gerber查看器做最后一道人工检查我的习惯是Gerber输出之后一定要用Gerber查看器打开看一遍。常用的免费工具有KiCad自带的Gerber Viewer、Altium的CAM Editor、以及一些在线查看器。看的时候重点检查几件事第一逐层确认。把每一层单独打开确认这一层的内容符合预期。顶层铜箔应该有走线和焊盘阻焊层应该有开窗丝印层应该有标号。第二叠层对齐。把所有层叠在一起看确认焊盘、阻焊开窗、丝印位置对齐。如果阻焊开窗偏了焊盘就露不出来。第三钻孔检查。打开钻孔文件确认所有该钻孔的地方都有孔孔径符合预期。第四板框检查。确认板框尺寸和形状正确没有多余的线条。这一步看起来繁琐但能拦住绝大多数Gerber层面的错误。我见过太多人设计文件检查得好好的Gerber一出就发板结果板厂做出来发现少了一层只能重做。5.3 嘉立创EDA和AD导出Gerber的实操差异不同工具导出Gerber的流程不太一样这里说几个实操要点。嘉立创EDA导出Gerber相对简单在制造菜单里选导出Gerber然后勾选需要的层。但要注意嘉立创EDA默认可能不导出某些层比如某些机械层需要手动勾选。导出后建议用嘉立创的DFM工具检查一遍它会自动检查一些常见问题。Altium Designer导出Gerber在File菜单的Fabrication Outputs里选Gerber Files。这里要特别注意Layers标签页确认所有需要的层都勾选了包括阻焊、丝印、钻孔。AD的Gerber输出设置比较多建议存成一个输出模板以后直接调用。KiCad导出Gerber在File菜单的Fabrication Outputs里选Gerber。KiCad的层管理比较清晰但要注意钻孔文件是单独导出的在Drill Files里。不管用哪个工具导出后都要用查看器过一遍这是最后一道防线。6. 把假绿灯变成真放心的检查清单说了这么多最后我想把这套经验整理成一个可执行的检查清单。每次发板前按这个清单过一遍能拦住绝大多数DRC全绿但板子错的问题。封装层面新封装入库前对照数据手册机械图和实物实测复用已验证封装检查螺丝孔过孔和环宽检查过孔环宽。网络层面布线前用网表反查关键网络检查网络标号作用域检查RS485等总线的上下拉位置和阻值检查电源网络连接对象。DRC规则层面按板厂工艺能力设置规则开启丝印重叠、孔到孔、焊盘到板边、阻焊开窗等检查项每换板厂重新核对规则。Gerber层面逐层确认内容叠层对齐检查钻孔检查板框检查用Gerber查看器人工过一遍。这套清单看起来长但熟练之后十几分钟就能过完。相比板子报废后重新打样、重新焊接、重新调试的时间成本这十几分钟太值了。我个人在实际操作中的体会是DRC是一个工具不是一道保险。它能帮你拦住规则内的错误但拦不住规则外的错误。真正可靠的检查是规则检查人工审查Gerber复核三层叠加。把这三层都做到位板子出问题的概率会大幅下降。踩过几次坑之后我现在发板前必做的一件事就是把Gerber用查看器打开从头到尾看一遍这个习惯帮我拦住了至少五六次潜在的报废。
阅读完成 · 觉得有帮助?
咨询建站