2019年9月6日 Cadence 16.6PCB封装设计记录(二)

徘徊边缘 提交于 2020-11-13 07:01:26

原文地址https://blog.csdn.net/yyw_0429/article/details/82320409

好记性不如烂笔头,学过的知识就要记下来,否则没过多久就忘得一干二净,又要重新学习。最新使用Allegro的Orcad画了一块板子,并用Allegro设计PCB。为了避免忘记,在此记个笔记吧!
本文使用的是Cadence 16.6,使用Orcad画原理图,导出网表在Allegro中画PCB。Allegro PCB封装设计要用的工具有Pad designer和PCB editor。
这里写图片描述
PCB封装是PCB设计的第一步,PCB封装设计错误,后果不堪设想,所以如果有现成的经过验证的封装,尽量用现成的,尤其是对新手来说。Allegro提供了可以从PCB图中提取封装的强大功能,所以在设计时如果有PCB图,可以直接提取封装。利用Allegro提取封装的方法如下:
(1)首先利用PCB Editor打开一个PCB图,点击File,再选择Export,选择Library,打开如下界面,默认全部输出,不用更改,选择一个输出路径后,点击Export,就成功将PCB图中的封装导出了。
这里写图片描述
如果没有现成的封装,那就只能自己设计了。Allegro的PCB封装设计和AD不同,将焊盘设计独立出来,使用Pad Designer设计焊盘,然后在PCB editor中调用设计好的焊盘,组成元件的封装。所以PCB封装设计可以分为两步:
1、焊盘设计:焊盘可以分为表贴式和通孔式焊盘。表贴式的封装例如贴片电阻电容、IC芯片等。以M95512 SPI EEPROM为例介绍设计步骤:
(1)查看芯片手册,读懂参数:芯片手册一般会给出芯片封装的结构尺寸,正确读懂芯片封装是第一步:如下图是M95512芯片的封装,芯片资料截图如下:
这里写图片描述
芯片手册中还给出了推荐的焊盘设计,如下图所示:
这里写图片描述
焊盘宽0.6mm,长(6.7-3.9)/2=1.4mm。有了这两个信息就可以设计焊盘了。
(2)打开Pad Desgner,新建一个.pad文件如下图所示:
这里写图片描述
建立好以后就可以开始焊盘设计了。设计界面的单位可以选mil或者mm,本文选择以mm为单位。对于表贴焊盘,不需要挖孔,所以Parameter页面不需要做任何更改,只需在Layer层设置尺寸:
这里写图片描述
Layer层用于设置焊盘形状和尺寸,对于表贴式焊盘,需要勾选single layer mode.接下来设置Begin Layer层,SOLDERMASK_TOP层,PASTMASK_TOP层参数。表贴式焊盘只需要设置regular pad的参数,如下图所示,选择形状,设置长和宽的尺寸。对于特殊焊盘形状,可以在shape栏选择FLASH,FLASH文件在PCB Editor中设计。本文选择矩形,设置长和宽分别为1.4mm和0.6mm:
这里写图片描述
BEGIN_LAYER层为顶层,SOLDERMASK_TOP层为阻焊层,要比焊盘尺寸稍大一些,PASTEMASK_TOP是助焊层,和BEGIN_TOP层参数一致即可。设计完成后点保存,这样一个焊盘就做好了,接下来就可以在PCB Editor中直接调用。
2、元件封装设计
元件的封装设计在PCB Editor中完成。打开PCB editor,选择Allegro PCB Designer (was performance L),然后新建一个.dra后缀的文件。建好的PCB封装有两个文件,分别为.dra后缀的供用户查看的文件,和.psm后缀的PCB工具调用的文件。用户只需在.dra文件中设计,设计没有错误保存后会自动生成.psm文件。新建文件如下图所示:
这里写图片描述
文件类型选择Package symbol,建好文件后就可以开始封装设计了。首先设置设计界面的参数,将右侧Option选项固定住,方便换层。点击Setup,再点Design Parameter修改设计参数:
这里写图片描述
这里写图片描述
本文使用mm为单位,Move origin项可以设置坐标原点的位置,这对封装设计很重要。更改坐标原点的方法如下:在画布随意位置点击鼠标左键,会在Command命令栏显示该位置的坐标,记下该坐标,填入Move origin选项中,就可以将坐标原点定位到鼠标点击的地方了:
这里写图片描述
接下来在Setup工具栏中选择Grid,设置栅格尺寸:
这里写图片描述
设置栅格间距0.1mm。设计界面设置好以后,需要将.pad文件所在路径添加到Package Search路径,否则系统默认只会在系统指定路径下寻找,添加方法如图所示:
这里写图片描述
添加以后,在layout工具栏中选择pin,在option中找到之前建立的.pad文件:
这里写图片描述
当可以调用焊盘后,真正的元件封装设计才开始!!
计算每个焊盘所在坐标:根据上面的芯片尺寸,引脚中心间的间距1.27mm,上下两排引脚的间距3.9mm。设计时将第一个引脚放在坐标原点位置作为参考,调出焊盘后不要直接放,在Command栏输入x 0 0,就可以将焊盘放到指定位置:
这里写图片描述
第二个引脚和第一个引脚相距1.27mm,所以对应坐标x 1.27 0,以此类推,第四个引脚坐标x 3.81 0.这样第一排坐标就放好了,如下图:
这里写图片描述
接下来放上面的4个焊盘,坐标原点位置的焊盘中心距离上面焊盘1.4+3.9=5.3mm,所以对应坐标x 0 5.3,第二个焊盘x 1.27 5.3以此类推,这样就将所有焊盘放置完成:
这里写图片描述
焊盘放置完成后,加下来放置Place_Bound_TOP层,该层用于标注元件体位置,布局时其他元件侵入该区域会DRC错误。选择Shape->Rectangular,选择矩形,然后在option中选择Place_Bound_TOP层,在option中可以设置矩形的尺寸:该层的尺寸一般比元件体略大一点,根据测量,芯片封装尺寸为4.4x6.7,元件体尺寸为5.0x6.2,本文选择5.2x6.9,设计如下:
这里写图片描述
接下来加silkscreen_top,该层用于显示芯片位置,是实实在在出现在PCB板上的,添加导线,设置0.1mm粗,如下图所示:
这里写图片描述
接下来添加Assembly Top层,该层用于机械焊时为机器提供芯片位置,指的是元件体所在位置,比理论值稍大即可,理论值4x5,本文选择4.1x5.2:导线宽度设为0:
这里写图片描述
最后一步:添加assembly top 和silkscreen TOP层的Lable。选择工具栏layout->lables->refdef,在option中选中对应层,添加lable后,封装制作完成!!
这里写图片描述
至此,一个PCB封装就制作完成了,在orcad中为元件添加该封装的方法是:选中元件符号,双击鼠标显示proprity,在PCB footprint栏添加封装名称即可。点击右键show footprint可以查看封装。
第一次可能显示error :Allegro foot xxx was not find in the serach path,
这里写图片描述
原因是元件封装搜索路径没有添加进来,解决办法是找到capture.ini文件,在里面添加封装文件路径。Cadence 有很多的Capture.ini文件,而只有一个添加封装路径是好使的。在第一次打开Orcad时,Command命令窗口会显示调用的Capture.ini文件位置,对应修改即可,还有一个方法是直接在Cadence安装盘下搜索Capture.ini文件,然后挨个尝试修改与Cadence相关的Capture文件,直到能在orcad中显示封装(大概有3个Capture文件)
这里写图片描述
以上是表贴元件的封装建立过程,接下来介绍通孔元件的焊盘设计。通孔元件的封装与表贴元件的不同在于焊盘,后期在PCB editor 中设计与表贴焊盘一致,不再介绍。
以3pin的1.27mm间距的排针设计为例,打开Pad Designer工具,新建一个.pad文件,设置通孔形状为圆形,直径0.7mm,如下图所示:
这里写图片描述
第一步修改单位为mm;第二步设置通孔形状为圆形,第三步选择孔的金属化类型为plated(金属化);第四步设置孔直径0.7mm;第五步设置孔上显示的字符(不太清楚啥作业);
接下来设置Layer层:Layer层设置如下图所示:
这里写图片描述
通孔设计single layer mode 不要勾选,设置层数相比表贴多了DEFAULT INTERNAL(中间层)、END LAYER(底层)、SOLDMASK_BOTTOM(阻焊层底层)、PASKETMASK_BOTTOM(助焊层底层),开始层,中间层和底层还增加了Thermal pad(热风焊盘)和anti pad(反焊盘)。本文选择焊盘直径1mm,阻焊层相应稍大一些。由于本次设计的板层少,所以没有添加热风焊盘和反焊盘,如果添加的话尺寸也要比Regular pad稍大一些。最后保存焊盘文件后,就可在PCB Editor中调用焊盘设计封装了(过程同上)。
以上是PCB封装的设计流程,本人也是刚刚开始画封装,内容诸多不足之处欢迎指正。
还有一个博客对PCB封装的设计介绍的也很详细,需要的可以参考:
https://www.cnblogs.com/dongfengweixiao/p/5819625.html
接下来会陆续更新PCB布局布线设计!!!

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!