资讯动态

DRC全绿却板子翻车?PCB设计四大盲区与自查清单

发布时间:2026/10/8 12:35:11 来源:尧图企业网站定制
1. 为什么“全绿”反而最危险从一次真实的翻车说起DRC 全绿板子回来却点不亮。这种事我经历过不止一次每次都是打样费加急费外加一周的调试时间打了水漂。最让人难受的不是钱而是你明明看着软件里那个绿色的对勾心里踏实得不行结果拿到实物一上电要么某个芯片发烫要么信号死活出不来要么连接器根本插不进去。你回头再打开工程文件DRC 依然是绿的规则检查一条报错都没有。问题出在哪出在DRC 只检查你告诉它要检查的东西。它检查的是“设计规则”不是“设计意图”。线宽够不够、间距够不够、过孔有没有超出边界这些它管但你的封装引脚定义对不对、原理图和 PCB 的引脚映射有没有错位、机械结构和电气连接有没有冲突它一概不管。换句话说DRC 是一个严格执行命令的士兵但你给的命令本身就是错的它也会一丝不苟地执行到底然后告诉你“一切正常”。这篇文章要聊的就是四个典型的“DRC 全绿但板子必错”的场景。这些坑在 KiCad、Altium Designer、嘉立创 EDA、Cadence Allegro 里都会遇到只是表现形式不同。无论你是刚画完第一块板子的新手还是已经做过几十款产品的老手这四个错误都值得你逐条对照检查。因为它们的共同特点是软件不会报错但硬件一定会出问题。我先把这四个错误的轮廓勾出来后面再逐个拆解。第一封装引脚编号和原理图符号引脚编号不匹配这是最隐蔽也最致命的一类第二DRC 规则设置过松导致实际制造无法实现第三机械层与电气层脱节板子装不进外壳或者螺丝孔短路第四Gerber 导出参数错误软件里看着没问题工厂拿到文件却做不出来。这四个问题有一个共同点它们都发生在 DRC 的盲区里。提示DRC 通过不等于设计正确。DRC 是底线检查不是完整性检查。每次发板前必须有一套独立于 DRC 的人工复核流程。2. 错误一封装引脚编号与原理图符号错位2.1 这个错误为什么 DRC 查不出来DRC 检查的是 PCB 上的物理关系走线间距、线宽、过孔环宽、铜皮到板边的距离。它不关心你 PCB 上这个三脚器件的焊盘在原理图里对应的是哪三个网络。KiCad 的 DRC 不会去比对原理图符号的引脚编号和 PCB 封装的焊盘编号是否一致Altium 的 Design Rule Check 同样不管这件事。嘉立创 EDA 的检查也集中在物理规则上。结果就是你的原理图里一个 SOT-23 封装的 MOS 管引脚 1 是栅极、引脚 2 是源极、引脚 3 是漏极。但你用的 PCB 封装焊盘编号可能是 1 是栅极、2 是漏极、3 是源极。原理图导入 PCB 时网络按照引脚编号一一对应连接DRC 检查走线间距全部合格板子做出来MOS 管的漏极和源极接反了。上电一瞬间要么管子直接烧掉要么电路功能完全异常。这种错误在分立器件上尤其常见因为不同厂家、不同封装库对同一个 SOT-23 的引脚定义可能不同。你从网上下载的封装库和你自己画的原理图符号引脚编号映射关系很可能不一致。2.2 一个真实的案例RS485 收发器引脚错位我之前做过一块 RS485 隔离收发板用的是一款常见的隔离型 RS485 芯片。原理图符号是我自己画的按照数据手册的引脚定义引脚 1 是 VCC1引脚 2 是 GND1引脚 3 是 RXD引脚 4 是 RE引脚 5 是 DE引脚 6 是 TXD引脚 7 是 GND2引脚 8 是 VCC2。PCB 封装用的是从供应商官网下载的参考库。导入 PCB 后DRC 全绿走线也全部连通。板子回来一上电隔离侧没有输出。我查了半天最后拿万用表一个一个引脚对发现供应商的封装库把引脚 4 和引脚 5 的定义搞反了——RE 和 DE 互换了。DRC 不会告诉你这个因为网络连接关系是按照引脚编号建立的编号对上了网络就通了但物理引脚的功能错了。这个问题的排查成本极高因为你首先会怀疑电路设计、怀疑芯片本身、怀疑电源最后才会想到去核对封装引脚。而那时候已经浪费了大量时间。2.3 如何系统性地避免引脚映射错误我的做法是建立一套“三对照”流程。第一步原理图符号画完后对照数据手册的引脚定义表逐个核对引脚编号、名称、类型输入/输出/电源/地。第二步PCB 封装画完或下载后对照数据手册的封装尺寸图和推荐焊盘布局逐个核对焊盘编号和位置。第三步原理图导入 PCB 后不要急着布线先用“交叉探测”功能在原理图里点一个引脚看 PCB 里高亮的是不是对应的焊盘。KiCad 里可以用“工具 - 交叉探测”来实现Altium 里是“Tools - Cross Select Mode”。嘉立创 EDA 也有类似的功能。这一步花不了五分钟但能拦住绝大多数引脚映射错误。另外对于关键器件我建议在 PCB 上放一个丝印标注比如在 MOS 管旁边标上“G/S/D”在连接器旁边标上“Pin1”。这样即使焊接时也能快速核对。丝印不占额外成本但能救命。注意从网上下载的封装库尤其是非官方渠道的必须逐引脚核对。我遇到过不止一次封装库焊盘编号错位、焊盘尺寸偏差过大的情况。2.4 封装继承与多态在 PCB 设计中的类比热词里出现了“封装继承多态”这其实是软件工程的概念但在 PCB 设计里也有类似的逻辑。你可以把“原理图符号”理解为一个接口定义它规定了引脚编号和功能把“PCB 封装”理解为一个实现类它规定了物理尺寸和焊盘位置。两者必须严格对应否则就是“接口实现不一致”。在 KiCad 里一个符号可以关联多个封装比如一个电阻符号可以关联 0603、0805、1206 三种封装。这类似于“多态”——同一个接口不同的物理实现。但前提是这些封装的焊盘编号必须和符号的引脚编号一致。如果 0603 封装的焊盘编号是 1 和 2符号的引脚编号也是 1 和 2那没问题但如果某个封装的焊盘编号是 A 和 B那就对不上了。所以每次给符号关联新封装时都要确认焊盘编号的映射关系。KiCad 在“符号属性 - 封装”里可以查看和编辑这种映射Altium 在“原理图库 - 引脚映射”里也有对应的设置。3. 错误二DRC 规则设置过松制造端无法实现3.1 默认规则为什么不够用KiCad 的默认 DRC 规则里最小线宽通常是 0.2mm最小间距 0.2mm最小过孔直径 0.6mm最小过孔环宽 0.1mm。这些参数对于很多常规板厂来说是可以做到的但问题是你的板厂能做到不代表你的设计意图能被正确实现。举个例子你设了最小线宽 0.2mm然后电源走线也用了 0.2mm。DRC 不会报错因为规则允许。但实际电流需要 1A0.2mm 的线宽在 1oz 铜厚下大概只能承载 0.5A 左右长时间工作会发热甚至烧断。DRC 只管“能不能做出来”不管“做出来能不能用”。再比如你设了最小间距 0.2mm然后两根信号线之间刚好 0.2mm。DRC 通过。但板厂在蚀刻过程中由于工艺偏差实际间距可能变成 0.15mm导致短路或者阻抗异常。DRC 不会考虑工艺余量。3.2 线宽与电流的对应关系热词里出现了“pcb 线径和电流”这是每个 PCB 工程师都必须掌握的基本功。我一般用这个经验公式来估算对于 1oz 铜厚约 35μm外层走线温升 10°C 的情况下1A 电流大约需要 0.4mm 线宽2A 需要 0.8mm3A 需要 1.2mm。如果温升允许 20°C线宽可以适当减小但余量要留足。内层走线因为散热条件差同样的电流需要更宽的线。一般来说内层线宽要比外层大 50% 左右。比如外层 1A 用 0.4mm内层 1A 就要用 0.6mm。对于电源走线我通常会在计算值的基础上再留 50% 到 100% 的余量。比如计算出来 1A 需要 0.4mm我会用 0.6mm 到 0.8mm。多出来的铜面积不花额外成本但能显著降低温升和压降。3.3 过孔与环宽的选择热词里还有“一般 pcb 中 m2 螺丝孔留多大过孔和环宽”这个问题很具体。M2 螺丝的直径是 2mm螺丝孔通常留 2.2mm 到 2.4mm 的孔径具体取决于螺丝公差和装配精度。如果是金属螺丝还需要考虑螺丝头与周围铜皮的间距避免短路。对于过孔我一般用 0.3mm 孔径配 0.6mm 焊盘环宽 0.15mm。这是大多数板厂的标准工艺成本最低。如果需要更小的过孔比如 0.2mm 孔径环宽 0.1mm那就属于“微孔”范畴成本会上升而且不是所有板厂都能做。DRC 里设置过孔规则时要注意“最小环宽”这个参数。环宽太小钻孔偏移时可能钻到焊盘外面导致断路。我一般设最小环宽 0.13mm这是大多数板厂的工艺底线。3.4 如何根据板厂工艺调整 DRC 规则我的做法是在画板之前先确定板厂然后去板厂官网下载他们的“工艺能力表”。嘉立创、华秋、捷配这些国内主流板厂都有公开的工艺参数。把他们的最小线宽、最小间距、最小过孔、最小环宽等参数填入 DRC 规则里并且在此基础上留 20% 到 30% 的余量。比如板厂说最小线宽 0.1mm那我在 DRC 里设 0.15mm板厂说最小间距 0.1mm我设 0.15mm。这样即使工艺有波动也不会超出板厂的能力范围。另外对于阻抗控制的走线比如 USB、HDMI、以太网不能只看线宽和间距还要考虑层叠结构和铜厚。热词里出现了“lan8720 pcb 设计”和“usb3.0 9pin pcb 布线图”这些高速信号对阻抗匹配要求很高。我一般会用板厂提供的阻抗计算工具或者用 KiCad 自带的“PCB Calculator”来算。提示DRC 规则不是越严越好。规则太严会导致大量误报反而让你忽略真正的错误。规则太松又拦不住问题。关键是“匹配板厂工艺 留合理余量”。4. 错误三机械层与电气层脱节4.1 板子装不进外壳的经典场景DRC 只检查电气层不检查机械层。你的板子电气上完全正确但连接器位置偏了 2mm外壳装不上或者螺丝孔位置对了但孔径太小螺丝拧不进去或者板边到最近走线的距离不够安装时螺丝刀碰到走线导致短路。我遇到过最离谱的一次是板子画完后DRC 全绿发出去打样。板子回来发现 USB 连接器离板边太近插线时插头会碰到外壳边缘根本插不到底。原因是画 PCB 时只考虑了电气连接没有考虑连接器插头的物理尺寸和插拔空间。还有一次螺丝孔周围铺了铜皮DRC 没报错因为铜皮到孔壁的距离满足电气间距要求。但实际装配时金属螺丝拧进去螺丝头压到铜皮把电源短路了。DRC 不会检查“螺丝头会不会碰到铜皮”因为它不知道你会用什么螺丝。4.2 机械层的正确使用方法在 KiCad 里机械层通常用“Edge.Cuts”来定义板框用“User.Drawings”或专门的机械层来标注螺丝孔、连接器位置、外壳边界。Altium 里有专门的“Mechanical Layer”嘉立创 EDA 也有类似的层。我的习惯是在画电气层之前先把机械结构画好。具体来说第一步根据外壳或安装要求画出板框和螺丝孔位置。第二步标注连接器的位置和方向确保插拔空间足够。第三步标注禁止布线区比如螺丝孔周围、板边一定范围内、连接器下方等。第四步再开始画电气走线。这样做的目的是让机械约束成为电气设计的“边界条件”而不是事后检查。DRC 不会帮你检查这些但你可以通过“禁止布线区”来强制约束走线。KiCad 里可以用“Keepout Area”来实现Altium 里可以用“Keepout”或“Polygon Pour Cutout”。4.3 螺丝孔与安装孔的细节处理热词里出现了“一般 pcb 中 m2 螺丝孔留多大过孔和环宽”我再展开说一下。M2 螺丝孔如果是非金属螺丝孔径留 2.2mm 就够了如果是金属螺丝孔径留 2.4mm并且孔周围至少 1mm 范围内不能有铜皮和走线。如果是沉头螺丝还要考虑沉头深度和直径。对于安装孔如果不需要电气连接最好做成“非金属化孔”也就是孔壁没有铜。这样即使螺丝碰到孔壁也不会短路。KiCad 里在焊盘属性里选“NPTH”Non-Plated Through Hole就行。Altium 里也有对应的“Non-Plated”选项。如果需要金属化孔作为接地连接那就要确保孔周围的铜皮与螺丝头有良好的接触同时避免短路到其他网络。我一般会在螺丝孔周围做一个“接地焊盘”但焊盘外径要比螺丝头大并且与周围铜皮保持足够间距。4.4 圆形 PCB 的特殊注意事项热词里出现了“圆形 pcb”这种板子机械层和电气层的配合更麻烦。圆形板框在 KiCad 里用圆弧画但 DRC 对圆弧的检查有时候不够精确。我遇到过圆形板边到走线距离 DRC 显示合格但实际板厂铣边时刀具半径导致实际板边内缩走线被切到。所以对于圆形 PCB我一般会把板边到最近走线的距离留到 0.5mm 以上而不是 DRC 允许的 0.2mm。另外圆形板的拼板方式也需要注意V-CUT 不适合圆形板通常用邮票孔或者桥连。这些机械细节DRC 一概不管。5. 错误四Gerber 导出参数错误5.1 Gerber 导出为什么容易出错Gerber 是 PCB 制造的标准格式但导出 Gerber 时的参数设置非常关键。单位选错了英寸 vs 毫米、格式选错了RS-274X vs RS-274D、层选错了少导了一层、多导了一层、钻孔文件格式不对这些都会导致工厂拿到的文件和你软件里看到的不一样。DRC 是在 PCB 工程文件里跑的它检查的是工程文件的数据。但工厂拿到的是 Gerber 文件是工程文件经过“导出”这个转换过程后的结果。如果导出参数错了DRC 再绿也没用因为工厂看到的和你看的不是同一个东西。我遇到过最典型的一次是导出 Gerber 时忘了勾选“包含板框层”工厂拿到文件后不知道板子多大打电话来问。还有一次钻孔文件用了英制单位工厂按公制解读孔位全部偏移。5.2 Gerber 导出的标准流程在 KiCad 里导出 Gerber 的流程是“文件 - 制造输出 - Gerber”。我一般会按以下参数设置单位毫米格式RS-274X精度4.6整数 4 位小数 6 位层至少包含 F.Cu、B.Cu、F.SilkS、B.SilkS、F.Mask、B.Mask、Edge.Cuts钻孔文件单独导出单位毫米格式 ExcellonAltium 里是“文件 - 制造输出 - Gerber Files”参数类似。嘉立创 EDA 里是“导出 - Gerber”流程更简化但也要注意层选择。导出完成后我强烈建议用 Gerber 查看器比如 KiCad 自带的 Gerber Viewer或者在线工具打开检查一遍。重点看板框是否完整、丝印是否清晰、阻焊开窗是否正确、钻孔位置是否对得上。这一步花五分钟能拦住绝大多数导出错误。5.3 阻焊层与丝印层的常见问题阻焊层Mask Layer定义的是“哪里不盖绿油”也就是需要露铜的地方。如果你在焊盘上忘了开阻焊焊盘会被绿油盖住焊不上锡。DRC 不会检查这个因为它只管电气连接不管焊接工艺。丝印层Silkscreen Layer定义的是文字和图形。如果丝印压到焊盘上焊接时丝印油墨会影响焊锡润湿导致虚焊。DRC 通常不会报丝印压焊盘的错误但有些软件可以设置“丝印到焊盘间距”规则。我一般会手动检查一遍确保丝印不压焊盘、不压过孔。另外丝印的线宽不能太细否则工厂印不出来。我一般用 0.15mm 到 0.2mm 的丝印线宽最小不低于 0.12mm。字符高度不低于 0.8mm否则看不清。5.4 BOM 文件与坐标文件的导出热词里出现了“kicad 生成 bom 文件”和“cadence pcb 怎么导出 bom 表”BOM 和坐标文件是给工厂做贴片用的。BOM 里要有位号、型号、封装、数量坐标文件里要有位号、X 坐标、Y 坐标、旋转角度、层。这两个文件如果出错贴片厂就会贴错料或者贴偏。我遇到过 BOM 里型号写错导致贴片厂贴了错误的芯片也遇到过坐标文件旋转角度不对导致芯片方向反了。这些错误 DRC 都不管但后果很严重。我的做法是导出 BOM 和坐标文件后用 Excel 打开逐项核对位号、型号、封装、坐标。特别是对于有极性的器件二极管、电解电容、芯片要确认旋转角度和方向标记。注意Gerber、BOM、坐标文件是三个独立的输出每个都要单独检查。不要以为 Gerber 没问题BOM 就没问题。6. 四个错误的快速自查清单6.1 发板前的必查项每次发板前我都会过一遍这个清单。你可以直接抄作业检查项检查方法常见问题引脚映射交叉探测逐个核对封装焊盘编号与符号引脚编号不一致线宽电流按 1A/0.4mm 估算留余量电源线太细发热或压降过大过孔环宽最小环宽 0.13mm环宽太小钻孔偏移导致断路机械配合1:1 打印板框实物比对连接器位置偏、螺丝孔干涉禁止布线区螺丝孔、板边、连接器下方走线太靠边装配时短路Gerber 层Gerber 查看器逐层检查少导层、单位错误、格式错误阻焊开窗检查焊盘是否露铜焊盘被绿油盖住焊不上丝印压焊盘目视检查丝印压焊盘导致虚焊BOM 型号逐项核对型号写错贴错料坐标文件核对位号、坐标、角度旋转角度错器件贴反6.2 我的个人经验三次发板三次检查我现在的习惯是画完 PCB 后不急着发板。第一天跑 DRC改到全绿。第二天过一遍上面的自查清单重点核对引脚映射和机械配合。第三天导出 Gerber、BOM、坐标文件用查看器检查一遍然后才发给工厂。这三天不是连续三天中间可以隔几天让自己冷静一下。因为画板的时候容易陷入“局部正确”的思维定式隔几天再看往往能发现之前忽略的问题。我至少有三次是在“第三天检查”时发现了引脚映射错误或者机械干涉避免了打样失败。6.3 常见问题速查表现象可能原因排查方法板子点不亮电源引脚接反、芯片方向错万用表测电源引脚电压、核对芯片方向某个功能异常信号引脚映射错交叉探测核对引脚、示波器测信号芯片发烫电源短路、引脚接错断电测阻抗、核对引脚定义连接器插不进机械位置偏、孔径小1:1 打印比对、卡尺测孔径螺丝孔短路孔周围有铜皮检查禁止布线区、改用非金属化孔工厂说文件有问题Gerber 层缺失、单位错Gerber 查看器逐层检查、确认单位贴片贴反坐标文件角度错核对坐标文件、确认器件方向标记焊盘焊不上阻焊没开窗检查阻焊层、确认焊盘露铜7. 从“DRC 全绿”到“板子能用”的思维转变7.1 DRC 是工具不是保证我刚开始画板的时候特别依赖 DRC。每次看到全绿就觉得万事大吉。后来踩的坑多了才明白 DRC 只是一个“语法检查器”它检查你的设计是否符合规则但不检查你的规则是否符合意图。就像写代码编译器不报错不代表程序逻辑正确。真正的保证来自于你对电路的理解、对器件的了解、对工艺的熟悉。DRC 能帮你拦住 80% 的低级错误但剩下的 20% 才是真正考验功力的地方。而这 20% 里引脚映射、机械配合、Gerber 导出、规则设置是最容易出问题的四个点。7.2 建立自己的检查清单每个工程师都应该有自己的检查清单。这份清单不是从网上抄的而是从自己踩过的坑里总结出来的。我现在的清单里每一条都对应着一次真实的翻车经历。比如“核对封装引脚映射”这一条就是因为 RS485 芯片引脚错位那次加进去的“检查螺丝孔周围禁止布线”这一条就是因为螺丝短路那次加进去的。你也可以这样做每次板子出问题解决之后把问题和解决方法记下来加到自己的检查清单里。时间长了这份清单就是你最宝贵的经验财富。7.3 工具选型的建议热词里出现了很多工具名KiCad、Altium Designer、嘉立创 EDA、Cadence Allegro。每个工具都有自己的优缺点。KiCad 免费开源适合个人和小团队Altium 功能强大适合专业设计嘉立创 EDA 上手快适合快速打样Allegro 适合高速高密度设计。但无论用什么工具上面说的四个错误都可能发生。工具只是工具关键还是设计者的思维和流程。我见过用 KiCad 画出非常专业的板子的工程师也见过用 Allegro 画出引脚映射错误的板子。工具不能替代思考。7.4 最后分享一个小技巧每次发板前把 PCB 的 3D 视图打开转一圈看看。KiCad 和 Altium 都有 3D 预览功能。这一步能发现很多 2D 视图下看不到的问题连接器方向对不对、器件高度会不会干涉、螺丝孔位置合不合理。我至少有两次是在 3D 视图里发现连接器方向画反了避免了打样失败。3D 视图不需要精确的器件模型哪怕只是简单的立方体也能帮你判断空间关系。这个习惯花不了几分钟但能拦住很多机械层面的错误。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑