ARTICLE DETAIL

资讯详情

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

PCB丝印报错全解析:三种常见DRC违规的工艺根因与修复指南

PCB丝印报错全解析:三种常见DRC违规的工艺根因与修复指南 画PCB的时候最后被DRC揪着一顿骂的往往不是走线而是丝印。Silk To Silk Clearance、Silk To Solder Mask这类报错看起来像“EDA在玩文字游戏”实际上背后全是实物工艺约束。很多工程师一看到丝印报错就习惯性忽略结果样板回来要么字符糊成一团要么贴片机识别不了极性方向要么被板厂打电话问“这个字符能不能往边上挪一挪”。这篇文章直接用实际设计和交付经验把三种最常见的丝印报错拆开讲透它们怎么触发、为什么必须管、怎么改才能既满足规则又不挤占空间。适合正在画第二块板子以后、想认真把PCB交付做干净的工程师也适合初次接触Altium Designer或Cadence Allegro的硬件新手——只要你能打开DRC面板这文章里的方法就能落地。1. 丝印层到底管什么报错的底层逻辑1.1 丝印的物理实现决定了它“矫情”丝印就是PCB表层的白油字符层一般用网版印刷或者字符喷墨打印上去。这个物理实现方式直接决定了它有一堆“硬约束”线宽太细会印不出来字太小会糊成一团字符间隔太小油墨没干之前会互相渗透。所以EDA工具里的丝印规则不是为了给你找茬是在帮你模拟板厂的工艺底线。丝印在板子上的作用很多人低估了。装配焊接时有极性的元件、IC第一脚、二极管方向全靠它调试维修时位号R12、C34、U1是唯一的沟通语言产线测试时测试点名、版本号、日期码也是靠丝印传递。我见过一块板子因为位号重叠产线工人需要拿放大镜反复确认方向本来一条线一小时能贴完硬是拖了两个小时。丝印乱了后面的装配、调试、维护全跟着遭殃。1.2 DRC报错的底层逻辑间距和覆盖EDA工具对丝印的检查本质上就两类一类是间距检查计算丝印和丝印、丝印和焊盘、丝印和阻焊开窗之间的最近距离另一类是覆盖检查看丝印有没有落到焊盘、开窗或者其他不允许覆盖的区域里。报错名字里带Clearance的就是间距问题带Over或Sliver的就是覆盖和间距混合问题。这些规则的数值源头是IPC-7351B标准加上板厂实际能力。不同板厂能力不一样常规能稳定做到的水准大概是最小丝印线宽4到5mil常规设计用6mil最小字高25到30mil也就是0.63到0.76毫米丝印字符到字符间距至少5mil丝印边缘到焊盘/开窗边缘4到6mil以上阻焊桥最小宽度3到4mil。设计的时候如果能留到这些值以上基本所有板厂都能做。要是压着极限值走那就得提前跟板厂确认。2. 三种常见丝印报错逐个拆解2.1 Silk To Silk字符碰字符Silk To Silk Clearance报错是最常见、也最容易被新手当成“小问题”忽略的。触发场景很典型0603电阻旁边放了一堆位号R12和C23的字符线框靠得太近或者某颗芯片的位号U1被手动拖到了旁边电容的位号上又或者器件太密集位号自动摆放的时候互相叠在一起。这个报错为什么必须管因为字符印刷不是激光打印油墨印上去之后有一个干燥过程。两个字符间距太小油墨边缘会互融干了之后就是一团模糊的墨迹别说机器识别人眼都看不清。而且板子拼版后要V-cut或铣边字符离裁切线太近会被切掉半个板子上就会出现残缺的“R1”或者只剩半截的极性符号产线很容易误判。解决办法分几步走。第一步看字号是不是设太大了很多默认封装里的字符用的字号偏大密密麻麻的板子直接把字号从30mil降到25mil画面立刻清爽。第二步把位号统一放到空白区域手动拖也行AD里有Alignment工具选中器件后按A键可以把位号对齐到器件中心或统一偏移。第三步也是最关键的在规则里设置Silk To Silk Clearance的最小值让DRC替你盯着谁再碰到一起直接标红。我自己的习惯是设5mil极限可以到4mil但再小就真的不推荐了。2.2 Silk To Solder Mask丝印压到焊盘和开窗区域Silk To Solder Mask报错中文意思就是丝印和阻焊开窗区域的间距不足。阻焊开窗就是焊盘露铜的地方包括常规贴片焊盘、插件焊盘、测试点、甚至大面积的散热开窗。丝印一旦压进这些区域问题很麻烦丝印油墨是绝缘体印在焊盘上会直接影响可焊性严重的时候焊料润湿不上就是虚焊插件过波峰焊的时候油墨残留物还会混进焊点里造成焊点发黑或者开裂。这个报错的触发场景也很常见。第一种封装库本身就有问题——某些第三方封装库或者自己早期画的封装位号字符离焊盘太近放在了开窗边缘批量摆放之后全部报警。第二种手动加的字符压到了开窗上比如在电源模块旁边手动添加“5V”“GND”之类的说明文字随手一放就压线了。第三种极性标记、圆点符号本来是放在焊盘外侧的但器件旋转之后符号跟着转到了焊盘区域。解决这个问题的思路不是简单地“把丝印挪远一点”而是要从封装设计源头预留空间。在画封装的时候就把位号、极性标记放在距离焊盘边缘至少5mil以外的区域并且给“丝印禁区”留出余量。规则上我会在AD里设置Silk To Solder Mask Clearance为5mil同时配合Silkscreen Over Component Pads规则设置成允许但严格限定范围避免手动加的字符乱跑。如果是已经画完的板子直接把报错的字符选中往安全区拖一拖配合对齐工具批量处理。2.3 Solder Mask Sliver / Solder Mask Clearance阻焊桥和开窗的间距问题第三种报错是很多人最想不通的丝印明明没有压焊盘为什么DRC里出现了Solder Mask开头的报错这种报错有两种常见情况。第一种叫Solder Mask Sliver翻译过来就是阻焊桥太窄。阻焊桥指的是两个开窗焊盘之间残留的阻焊油墨宽度不够的话板厂制作时油墨会脱落或者塞不住导致两焊盘之间爬锡严重时直接短路。这种问题在QFP芯片的0.5mm间距引脚上特别常见另外在大面积开窗铜皮和细间距焊盘之间也容易出现。报错信息里一般会带上Sliver和具体间距会精确告诉你“这里的阻焊桥只有2.5mil而规则要求至少4mil”。第二种是Silk To Solder Mask的变体丝印虽然没有直接压到焊盘但是压到了阻焊开窗的边缘甚至落在阻焊层和丝印层的边界地带。这种位置一旦阻焊油墨厚度不均丝印字符就会附着不牢过完回流焊字符直接脱落相当于白印了。处理这类报错核心是重新审视阻焊开窗尺寸。缩小开窗可以让阻焊桥变宽但开窗太小又会影响焊盘上锡量所以不能一味往小了压。正确做法是先看板厂的能力表确定最小阻焊桥宽度一般常规是4mil好一点的板厂能做到3mil。然后在规则里设置Solder Mask Clearance最小值比如4mil让DRC按这个标准检查。对于已经报错的位置用放大镜功能逐个查看判断是该缩小开窗还是调整铺铜而不是闭着眼睛忽略。3. 实操在AD与Allegro里配置丝印规则3.1 Altium Designer丝印规则配置与批量处理Altium Designer里配置丝印规则路径是Design → Rules然后找到Manufacturing这一组。重点设置三个规则。第一个是Silk To Silk Clearance在Manufacturing组下面直接找数值填5mil下限4mil。这个规则检查丝印和丝印的间距全局生效。第二个是Silk To Solder Mask Clearance同样在Manufacturing组下面数值设5mil下限4mil。如果板子上有特殊位置必须要压开窗可以用Query语句限定范围比如只对某几个器件生效其他区域还是严格检查。第三个是Silkscreen Over Component Pads这个规则控制丝印能不能覆盖器件焊盘。我一般会设置成允许但配合查询语句让它只放过封装设计里故意放上去的字符比如调试按键的丝印框。查询语句可以写成IsPad的排除形式例如Not IsPad意思就是除了焊盘以外的丝印还是正常检查。批量处理位号AD里最实用的是Tools → Annotation → Annotate。注意重排之前一定要先在原理图里确认好位号顺序否则一排序原理图和PCB的参考编号全对不上更乱。重排之后用Align功能把位号统一放到器件中心或者统一偏移比如所有位号都放在器件右上角45度方向板面会整齐很多。3.2 Cadence Allegro约束管理器设置与Auto SilkscreenAllegro用户也不要慌丝印规则配置在Setup → Constraints → Constraint Manager里。打开之后选Physical → Spacing域然后找到Silk to Silk、Silk to Solder Mask、Silk to Pin这几项。数值建议和AD保持一致Silk to Silk设0.127mm5milSilk to Solder Mask也是0.127mm如果有BGA区域引脚极密可以单独建一个Referenced Spacing的CSet给局部区域用更宽松或者更严格的值。Allegro里还有一个自动丝印的功能在Manufacture → Silkscreen。这个功能可以把封装里的位号自动生成到Silkscreen层并且自动避开焊盘和开窗位置非常实用。跑完之后会生成一个未放置字符的报告根据报告手动处理没有生成出来的字符就行。用Allegro有个坑就是Silkscreen层分Top和Bottom而且有些封装里位号是放在Assembly层装配层的不是Silkscreen层。导PCB之后看不到丝印或者丝印报错先检查层别是否对应。设置规则的时候也要注意Silk Top和Silk Bottom有时会被拆成两套约束别只改了一层就以为改完了。3.3 规则值的选择逻辑和工厂极限很多刚入行的人喜欢把规则值设得极其严格比如Silk To Silk直接设10mil觉得这样板子一定很干净。但如果板子密度高字符会被挤得到处都是反而影响布局。我的习惯是常规板子用5mil极限4mil高密度板子用4mil但需要和板厂确认一下制程能力。阻焊桥宽度同样是这个逻辑先查厂家的最小制程能力在能力范围内取一个有余量的值不要让任何一个报错卡在极限值上。有一个细节容易被忽略丝印规则设置的是“字符线框”之间的距离不是文字实际可读区域的间隔。也就是说DRC计算的时候它把字符当成一组几何线段来处理。所以就算DRC显示间距5mil视觉效果上两个字符可能已经很挤了。要想字符看起来舒服实际距离最好再加2到3mil尤其是有极性圆点的封装圆点本身比线段粗视觉上会更占空间。4. 常见问题与排查技巧实录4.1 位号“爆炸”原理图更新后字符全乱这个场景我遇到太多次了。原理图改到凌晨导入PCB之后位号要么全部变了要么新器件挤到旧器件头上丝印叠成一堆。这里给个实用技巧导入PCB之前先检查原理图的Annotate设置选择“All”模式下锁定已有位号只给新增器件分配位号。这样在位号重排的时候老器件的参考编号不会变丝印也不会大规模重排。如果已经导进来乱了就不要急着全部重排。先把报错关掉打开PCB面板按位号排序看看哪些器件变了哪些没变。因为有时候只是部分网络标号变了位号本身没变你只要把变了的那几个器件重新放置位号就行。全部重排是最后的选项因为那会把板子上所有已有的丝印位置全部打乱等于重画一遍。4.2 丝印层“消失”了显示、隐藏和误删有工程师问过“allegro丝印被删除了怎么办”这种情况我排查过很多次大多是四个原因。第一显示层没打开Allegro里Silkscreen Top/Bottom层被关掉了AD里Silkscreen Overlay被隐藏了看着像丝印没了其实还在。第二丝印被误删了尤其在移动元件后快捷键按错或者不小心把整层删了。第三丝印被其他物体遮挡了比如机械层或者敷铜显示干扰其实没有消失。第四封装库里根本没画丝印位号虽然在但放在了Assembly层导不出Silkscreen层。如果是显示问题打开对应层即可。如果是误删AD里可以用Edit → Undo只要没保存就能找回。Allegro里如果保存了才发现那就只能利用Manufacture → Silkscreen重新生成位号然后重新摆放。经过这一轮折腾我是深刻体会到封装库标准化太重要了——如果一开始封装里的丝印就是规范画的就算要重新生成也不至于手忙脚乱。4.3 丝印的例外情况与拼版/板边注意事项丝印不是所有地方都严格禁止覆盖焊盘的有几种例外非常常见。比如调试按键的丝印框经常是画在按键器件上方按键焊盘和丝印框是有重叠的这种就需要在DRC里给这个器件单独豁免又比如大功率MOS管的散热焊盘区域丝印标注“VIN”“GND”这样的网络标识有时候也会在距离开窗很近的地方还有维修用的测试点丝印文字必须离测试点尽量近否则找不到这种情况下宁可牺牲一些间距。另一个常被忽视的点是拼版和板边。V-cut拼版的时候丝印离板边太近会被切掉V-cut两侧建议至少预留0.6mm以上无字符区铣版的话丝印离板边至少1.5mm。如果你用的是AD的拼版功能或者发Gerber让板厂拼版要特别注意丝印是否被镜像——拼版一旦做了镜像丝印也跟着镜像板子上出现反着的字符那基本就废了。下面给一个丝印报错速查表方便你遇到报错的时候直接对号入座报错类型常见原因推荐处理方案工艺极限参考Silk To Silk位号重叠、字符太大、器件太密缩小字号、位号重排、规则设5mil4milSilk To Solder Mask位号离焊盘太近、手动字符压开窗位号整体偏移、封装预留安全区4milSilk To Pad / Over Pads丝印直接覆盖焊盘检查封装设计、单独豁免异常器件默认禁止Solder Mask Sliver阻焊桥太窄、开窗过大缩小开窗、重置Solder Mask Clearance3milSilk To Board Edge丝印离板边太近字符内缩、拼版预留无字符区1.5mm4.4 板厂沟通和资料交付的小技巧最后聊聊和板厂打交道的事。板厂拿到的是Gerber文件他们对丝印的检查一般只会看字符完全缺失、位号严重重叠这些明显问题。你DRC里的Silk To Silk报错人家不一定帮你查。所以和板厂沟通的时候直接问一句话“你们的丝印最小线宽和字符间距能力是多少阻焊桥最小多少”拿到数值之后把规则设成比这个数值略大一点就能避免很多打样阶段才发现的工艺问题。还有一个细节很多原厂方案资料里比如SW6206这类电源方案的完整规格书PCB注意事项部分会明确写丝印规范比如电源输入输出网络要加警告标识、IC区域不允许丝印覆盖散热焊盘等等。这些内容经常藏在“PCB Layout Guide”那一章里而不是原理图或者寄存器列表里。画板前通读一遍原厂指南能省下后面大量返工时间。版本字符也不要随便写我习惯在丝印层放三样东西板子型号、版本号、日期码比如“PWR_V1.2_202406”这样后期调试拿到任何一块板子都能快速定位。最后说点体己话说实话丝印在整个PCB设计流程里成本和复杂度都不高但它是最能体现一个工程师“交付洁癖”的环节。我见过有人布线布得极其漂亮一打开丝印层却乱七八糟位号叠字、极性反向、测试点找不到板子打样回来只能拆下来重画。每次画完板子我都会把丝印层单独打开像检查地图一样从上到下扫一遍重点看位号有没有重叠、极性标记方向对不对、版本号有没有标错。这个习惯帮我躲过了很多次返工。丝印是板子的门面也是产线同事的“扶手”它规整了整个项目的交付品质会提升一大截。
返回列表