利用Cadence Allegro强大的功能节省您调丝印的时间

 利用Cadence Allegro强大的功能节省您调丝印的时间

调丝印、拉等长、撩妹是老wu的工作日常,? 现在,随着Cadence Allegro 新版本的发布,其加入了强大的丝印辅助功能,让你不用再苦逼的浪费时间去调丝印,能省下更多的时间来撩妹…

好吧,也许你会问,为啥要调丝印呢?丝印是什么鬼?

PCB板丝印层即文字层,它的作用是为了方便电路的安装和维修等,在PCB板的上下两表面印刷上所需要的标志图案和文字代号等,例如元件标号和标称值、元件外廓形状和厂家标志、生产日期等等。

从电气特性的角度来说,不加丝印信息对电路性能没有影响,PCB板上的丝印主要是给人看的,起到生产装配维修的指示作用,所以丝印排版就有一定的要求规范,丝印不能排的乱七八糟,造成阅读困难或者引起歧义。

下边列举一些常用的PCB板丝印规范及要求:

  • 为了方便PCB板的安装,所有元器件、安装孔、定位孔都有对应的丝印标号,PCB板上的安装孔丝印用H1、H2……Hn进行标识。
  • 丝印字符尽量遵循从左至右、从下往上的原则,对于电解电容、二极管等极性的器件在每个功能单元内尽量保持方向一致。
  • 为了保证器件的焊接可靠性,要求器件焊盘上无丝印(即丝印不可上焊盘);为了保证搪锡的锡道连续性,要求需搪锡的锡道上无丝印;为了便于器件插装和维修,器件位号不应被安装后器件所遮挡;丝印不能压在导通孔、焊盘上,以免开阻焊窗时造成部分丝印丢失,影响识别。丝印间距应大于5mil。(密度较高,PCB板上不需作丝印的除外)
  • 有极性元器件其极性在丝印图上标识清楚,极性方向标记应易于辨认。
  • 有方向的接插件其方向在丝印上标识清楚。
  • PCB板上应有条形码位置标识在PCB板面空间允许的情况下,PCB板上应有42*6的条形码丝印框,条形码的位置应考虑方便扫描。
  • PCB板名、日期、版本号等制成板信息丝印位置应明确。PCB板文件上应有板名、日期、版本号等制成板信息丝印,位置明确、醒目。
  • PCB板上应有厂家完整的相关信息及防静电标识。
  • PCB板上器件的标识符必须和BOM清单中的标识符号一致。

我们从原理图导入网表信息后,便有了对应的元器件的封装信息,同时,也有了元器件对应的参考位号信息,然而你在布局摆放器件的时候,器件对应的位号位置也会跟着封装一起移动、旋转,有时候元器件的位号信息就会方向不统一,位置重叠,造成阅读识别的困难,同时,为了保证焊盘的可焊性,焊盘开窗部分是禁止上丝印的,PCB在做板时,板厂会对重叠在焊盘上的丝印进行清除,这就造成了丝印信息不完整,无法人工辨认啦,有时候,遇到不靠谱的板厂,他会将丝印原本的印在焊盘上,这样元器件就会焊接不良啦,?

所以,在提交给板厂制板之前,一般要求遵循上边罗列的丝印规范要求,对冲突的丝印进行调整。但人工去一个个调整元件的位号丝印,非常繁琐枯燥,效率低下,更重要的是占用撩妹的时间…

利用Cadence Allegro 的 Productivity Toolbox 的Silkscreen功能,可以很方便的对丝印进行调整。

运行Cadence Allegro,点击菜单栏“Manufacture -> Silkscreen…”,打开「Auto Silkscreen」对话框。

通过 Auto Silkscreen 工具,我们按照自己的需要,通过调整设置参数,实现自动摆放的功能。比如我们可以设定字符的旋转角度,保证元件字符的方向性一致,便于阅读,同时Auto Silkscreen 还可以确保丝印不会上到焊盘上边,对于焊盘干涉的丝印会自动删除。

Auto Silkscreen 会自动参照“Board geometry、Component value、Device type、Package geometry、Reference designator、Tolerance、User part number“这几个Class及设定的“Silk”或者“Any”subclass上的信息,自动将丝印信息映射到“Manufacturing”Class下的” AUTOSILK_TOP 及 AUTOSILK_TOP“subclass下。

首先,我们要统一下text block,避免因不同封装中的text block引用值不一致,造成丝印文字大小的不一致。同时,文字丝印的最小字符线宽、最小字符宽、最小字符高、贴片字符框距离阻焊间距、字符宽高比 请按照板厂的工艺能力来设置,避免因text block参数设置不合理造成最终丝印文字模糊,板厂一般不会对你的字符丝印做调整的,这个锅得自己背,?

首先设置符合板厂要求的text block,在allegro界面菜单栏“Setup -> Design Parameters …” 打开 Design Parameter Editor 对话框,然后切换到“Text”选项卡,点击“Setup text sizes”按钮,然后在弹出的“Text setup”对话框中设置text

block参数。在“Text Setup”对话框中,你既可以直接点现有的Text Block参数进行修改,也可以点击Add按钮新增新的Text Block编号。

Width:字符宽度

Height:字符高度

Line Space:字符行间距

Photo Width:字符丝印线宽

Char Space:字符字体间的间距

某板厂给出的字符丝印要求如下:

  • 最小字符宽 ≥0.6mm       字符最小的宽度,如果小于6mm,实物板可能会因设计原因而造成字符不清晰
  • 最小字符高 ≥0.8mm       字符最小的高度,如果小于8mm,实物板可能会因设计原因造成字符不清晰
  • 最小字符线宽 ≥5mil 字符最小的线宽,如果小于5mil,实物板可能会因设计原因造成字符丝印不良
  • 贴片字符框距离阻焊间距 ≥0.2mm       贴片字符框距离阻焊间距,如果小于2mm,阻焊开窗以后套除字符时,造成字符框线宽不足,导致丝印不良
  • 字符宽高比 1:6     最合适的宽高比例,更利于生产

大家可根据板厂的工艺要求,自行进行调整设置。老wu自己的设定如下,供给大家参考,(单位mm):

对于元件位号丝印

height:          1.000

width:           0.625

photoplot width: 0.150

spacing:         0.250

line spacing:    1.500

功能性文字说明字符

height:          1.200

width:           0.750

photoplot width: 0.150

spacing:         0.300

line spacing:    1.800

 

height:          1.600

width:           1.000

photoplot width: 0.150

spacing:         0.400

line spacing:    2.400

设置好text block参数后,接下来便是让元件的位号字体使用我们设置的text block,统一元件位号字符大小。

通过菜单“Edit -> Change”操作,进入编辑模式,在「Find」栏,先点击“All Off”取消掉所有的勾选项,然后单独勾选“Text”这一项,仅对Text做Change。

在「Option」选项卡,设置Class为“Ref Des”,对应为器件的参考位号,Subclass可以下拉选择,针对各层逐个进行修改。点击Subclass左右的小方块按钮,可以开启或者关闭该subclass的内容显示。

选中“Text block”即仅对字号大小做修改,在输入框中输入对应的text block 字号值,然后鼠标框选整板,这是就会看到所选的字符大小发生了改变,最后,鼠标右键,在弹出的菜单中选择“Done”完成编辑或者“Oops”返回上一步修改或者“Cancel”撤销刚才的修改。

除了元件的位号信息,你还可以在板子上添加一些标注信息,如版本号,跳线功能说明,电路功能说明等等。

通过菜单“Add -> Text”添加丝印信息,在“Options”面板中设置Class为”Board Geometry“,subclass 可以为“Silkscreen_Top或Silkscreen_Bottom”,”Text block”设置好对应大小的字符位号,可以设置得比元件位号的丝印略大一些。

然后鼠标左键点击空白处,便可以键入字符,当然,对于需要大量的字符来说,还可以通过读取外部的txt文本信息导入字符。通过鼠标右键弹出菜单中选择“Read from File“即可选择外部的文本文件。

利用 「Auto Silkscreen」工具来自动摆放丝印信息。

Layout参数设置:指定需要生成丝印车层,只在顶层生成丝印或只在底层生成丝印亦或者顶层和底层都生成丝印。

「Top」将SILKSCREEN_TOP subclass的信息生成到AUTOSILK_TOP subclass

「Bottom」将SILKSCREEN_BOTTOM subclass的信息生成到AUTOSILK_BOTTOM subclass

「Both」则是包含上Top及Bottom的信息。

Elements 参数设置:设置丝印包含的元素信息,Line是只包含线条部分,Text为包含文本,Both你应该懂的 ?

Classes and Subclasses参数设置: 设置需要生成的classes及Subclasses,对于出丝印来说,用到“Board geometry、Package geometry、Reference designator“这三项信息就可以了,如图所示设置。

每一个 Class 中可选的 Subclass 有三种:

  • Silk:创建的丝印层参照 Silkscreen 的信息创建
  • Any:首先参照 Silkscreen 进行创建,如果当前 Class 中没有 Silkscreen,则参照 Assembly 进行创建
  • None:创建丝印时不采用当前 Class 中的任何 Subclass

Text 参数设置:

Rotation 文本旋转角度,建议只允许0及90

Element to pad clearance:丝印到焊盘的最小间距,为了防止丝印工艺时出现的公差,一般板厂会要求丝印离焊盘有一个最小间距距离,如0.2mm

通过“Silkscreen”按钮生成丝印到“Manufacturing”Class下的” AUTOSILK_TOP 及 AUTOSILK_TOP“subclass下。

有时,我们会手动对生成的丝印进行微调。

移动丝印文本

选择“Edit->Move”命令,在 Find 面板中只勾选 Text,鼠标点击需要移动的丝印文本即可进行位置的移动。

调整丝印文本方向

选择“Edit->Spin”,在 Find 面板中只勾选 Text,鼠标点击文本,进行文本的旋转; 以上这些对丝印文本的调整还可以通过选中丝印文本,在右键下拉菜单中选择相应命令。如图:

有时会遇到局部器件过多,无法摆放元件位号的情况,这是我们可以将对应的位号丝印调整到PCB上空间相对宽敞的地方,然后将对应的丝印位号用线条框起来,并加上指向性的箭头,以增加丝印信息的可读性。

可以通过菜单“Add -> Line”,在”Options“面板中选择Class为”Board Geometry和Subclass“Silkscreen_Top或Silkscreen_Bottom”。

当然,如果你嫌弃使用Auto Silkscreen 来自动帮你摆放丝印,你可以手动调丝印(当然,这回挤占你宝贵的撩妹时间),然后可以利用Allegro 的 Silkscreen DRC 功能来自动检测检查丝印上焊盘等违规情况,通过菜单“Manufacture -> Silkscreen DRC…”打开silkscreen 检测对话框。

Elements:为设置起效的元素:Text、Lines和Shapes

Source:Silkscreen 丝印信息的参考源,Silkscreen DRC 程序会依据Source设置的Class/Subclass来生成丝印信息,比如老wu这里加入了“PACKAGE GEOMETRY/SILKSCREEN 对应元器件的外框丝印、REF DES/SILKSCREEN 对应元件的位号信息丝印、BOARD GEOMETRY/SILKSCREEN 电路板上的丝印信息” 作为丝印参考源。

Obstacles:即丝印干涉参考层,DRC 会依据Source 所设置的Class/Subclass与Obstacles所设置的Class/Subclass做干涉检查,产生DRC及自动将干涉的丝印图形剔除。老wu这里设置为:“PIN/SOLDERMASK 焊盘阻焊开窗区域 VIA CLASS/SOLDERMASK 过孔阻焊开窗区域”作为丝印干涉检查的参考。

Parameters

设置DRC监测的参数,包括:

Min Line Length:生成丝印的最短线长度

Min Clearance:及Source里所设置的丝印离Obstacles说设置的SOLDERMASK开窗区域的最小间距,这个预计板厂的工艺要求来设置,如0.2mm

DRC 设置

ALL 开启所有检查

Text <-> Obstacle 只开启文本与阻焊开窗的干涉检查

Line <-> Obstacle只开启线条与阻焊开窗的干涉检查

Text <-> Source 针对Source的文本与其他丝印信息之间的干涉检查,如REF DES/ASSEMBLY_TOP 与PACKAGE GEOMETRY/SILKSCREEN_TOP 之间的干涉检查。

生成丝印信息

最后,通过点击“Run”按钮来自动生成丝印信息,对应到MANUFACTURING/AUTOSILK subclass,生成的丝印会自动剔除阻焊开窗干涉的部分,如下图所示:

利用 LabelTune 将丝印自动调到焊盘中间

好不容易赶在下班前调完板上的丝印图,导出Gerber给板厂生产,可是事情还没完,还要导出装配信息图… 打开REF DES/ASSEMBLY_TOP一看,完了,全是乱的,还要重新整,可是妹纸在等着下班后去看电影,怎么破?

其实可以借助Label Tune 来帮忙,装配图与PCB上的丝印信息要求不一样,不用做焊盘干涉处理,元件位号信息直接至于元件的中间就可以了,利用Allegro Productivity Toolbox 新增的Label Tune功能来快速摆正装配图的元件位号信息。

要想用上Allegro的Label Tune功能,对于使用Allegro 16.6的小伙伴来说,需要打上S052以后的补丁,Allegro的菜单中才有Label Tune的功能或者直接用Allegro 17.2版本。同时,在启动allegro的选择License特性选项时,要勾选上“Allegro Productivity Toolbox”这项特性。

然后通过Allegro菜单栏“Manufacture -> Label Tune…”调出“Label Tune”对话框。

Label Tune 的主要功能有:

  • 将文本标签自动旋转到预定义的值(例如0º和90º),以提高可读性。
  • 要处理的标签可包括:Refdes,Value,Part Number,Device Type和Tolerance。
  • 自动将文本标签居中到对应的器件里。
  • 可以根据器件的外框尺寸调整文本标签的字号大小,
  • 根据器件是放在Top层还是Bottom层,自动镜像对应的文本标签。

老wu觉得这真TM的强大,? 点点鼠标,元件的位号装配信息就自动集中了,好惬意

Label Tune 界面参数介绍:

Objects:需要处理的对象,包括Refdes(器件位号), Value(值), Part Number(编号), Device Type (类型)和Tolerance(公差)。

label layer:需要调整的层

visibility control :显示控制

Text Rotation:文本旋转角度设定

具体的大家可以点击Help查看帮助文档的说明,或者大家逐个参数去调整,体验一下。

最后,关于丝印老wu的一些体会。

丝印是给人看的,所以最终PCB生产出来后丝印要完整,便于阅读。特别是给产品装配用的丝印,比如版号,生产日期,极性元件方向要一致,方便目检,接插件标识要清晰,无遮挡等等。

对于现代的PCB装配来说,大部分都是利用机器来贴装了,而且现在的PCB密度越来越高,那些大量的密密麻麻阻容元件的位号信息,老wu认为在量产的产品中是可以不需要在PCB上体现出来的,第一,你没空间摆,第二,你摆出来了也不好看,影响板子的美观,丝印被过孔一打 3 6 8 9 你傻傻分不清。出Gerber是可以将RLC的位号丝印不显示出来,对于IC 等重大元件,还是建议保留元件的位号,以便于人工维修。

当然,对于正在调试中的板子,元件位号最好想办法印到PCB上,拆个电阻换个电容飞根跳线什么的,那是经常的事情,这时候通过位号信息很容易能找到对应的器件。


字重叠,绝对不允许 ?

丝印被过孔打缺失了,阅读出现歧义,不允许 ?

位号信息摆在元件下方,器件焊上去后就会被挡住,不允许

空间再挤也不能少了指向性信息

极性最好方向统一,便于目检

调试的会爱死你的 ?

 

好了,就写这么多,妹纸在等老wu去看电影,就酱 ?

 

吴川斌

吴川斌