EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 nuiga 于 2021-9-6 10:49 编辑
Q& h+ C( ?, W
3 Q* J4 v4 h" t0 l s; e长期使用protel作PCB设计,我们总会积累一个庞大的经过实践检验的Protel封装库,当设计平台转换时,如何保留这个封装库总是令人头痛。这里,我们将使用orcad Layout,和Layout2allegro来完成这项工作。步骤如下a)~i): 在Protel中将PCB封装放置(可以一次将所有需要转换的全部放置上来)到一张空的PCB中,并将这个PCB文件用Protel PCB 2.8 ASCII的格式导出(export);
5 B0 x( J( X1 k& Q/ _b) 使用Orcad Layout导入(import)这个Protel PCB 2.8 ASCII文件并保存(.max);
4 w2 ?) W% _$ Z) @0 r) h. yc) 使用Layout2allegro将生成的Layout .max文件转化为Allegro的.brd文件;
3 Q5 f( e& G4 od) 在Allegro里新生成的.brd文件打开,选择顶层菜单的Tools>padstack>Modify Design Padstack,此时会在OpTIons标签页里面看见当前pad的名称和数量(从24.pad开始逐一增加)。逐一选择一种,点选”Edit”,激活Padstack Designer对选中的.pad进行编辑。6 x) `$ y/ X$ z9 q
e) 对于表贴pad,首先查看Layers标签页,检查此Pad是否已经存在库中或可以用库中已经存在的.pad替换(差别在1/10以内即可考虑),如果不能那么:
, i9 q' d3 P, x+ p4 i① Parameters标签页中Type选项由”Blind/Buried”改为”Single项”;
; U% A9 e$ b. d" x9 a5 b% _② Unit 部份:Units 选择Mils,Decimal places 输入0,表示使用单位为mil,8 K7 Y3 E6 e/ U3 l1 M3 W
小数点后没有小数,即为整数;4 E4 d) Y2 @2 S6 p' o1 g% ~
③ Layers标签页中,删除Top~Bottom之间除Default Internal层之外其他的所有层;调整顶层的Regular Pad、Thermal Relief(比Regular Pad大6Mil) 、AnTI Pad(比Regular Pad大6Mil);Soldermask_Top层的Regular Pad(比Top层Regular Pad大6Mil);Pastemask_Top层的Regular Pad(同Top层Regular Pad),确认其他不用层的数据为”Null”;(对于表贴pad,只需要设置Top、Soldermask_Top和Pastermask_Top三层即可)( ^+ N& c' a2 X- @ U6 X( @( U
④ 按照.pad文件的命名格式对新建立的这个pad进行保存,保存在环境变量里设置的allegro识别的路径内;$ s# [9 w! K& e# N7 s3 U
⑤ 选择顶层菜单的Tools> Padstack>Replace,点选刚刚修改的Pad,此时在OpTIons标签页的Old选项里面里会出现未改之前的Pad名称;再点击New选项后面的按钮,选择新建立的Pad,最后点击下方的Replace按钮,完成对此Pad的更新。6 @( w/ p* ]( @/ {9 o# ^3 q4 e P
对于过孔的pad,首先查看Layers标签页,检查此Pad是否已经存在库中或可以用库中已经存在的.pad替换(差别在1/10以内即可考虑),如果不能那么: [color=rgb(51, 51, 51) !important]① 确认Parameters标签页中Type选项为”Through”(或者定义为”Blind/Buried”视设计需要而定); [color=rgb(51, 51, 51) !important]② Unit 部份:Units 选择Mils,Decimal places 输入0,表示使用单位为mil,小数点后没有小数,即为整数;& z# |9 U: Y8 B' m; g( j; v
③ Layers标签页中,删除Top~Bottom之间除Default Internal层之外其他的所有层;调整顶层的Regular Pad、Thermal Relief(比Regular Pad大10Mil) 、AnTI Pad(比Regular Pad大10Mil);复制Top层信息并且Copy to all ,即可设定Top、Default Internal和Bottom这3层;调整Soldermask_Top层的Regular Pad(比Top层Regular Pad大6Mil)并复制到Soldermask_Bottom层;(对于过孔pad,不需要设置Pastermask_Top层)
* t N( W' t, p6 o" V④ 按照.pad文件的命名格式对新建立的这个pad进行保存,保存在环境变量里面设置的allegro识别的路径内;
3 b4 @5 `" y0 z" i' [6 T. \ f⑤ 选择顶层菜单的Tools> Padstack>Replace,点选刚刚修改的Pad,此时在Options标签页的Old选项里面里会出现未改之前的Pad名称;再点击New选项后面的按钮,选择新建立的Pad,最后点击下方的Replace按钮,完成对此Pad的更新。) x2 @) o, D; y% H
f) 按照上面(e)项的方式将所有pad替换完成;+ p; f5 [9 b" s' E+ v; ?& M
注:由于allegro每生成一次库文件的时候,其.pad文件的名称都是从24.pad开始依次增加直至所有的pad输出完毕。如果进行2次或多次库文件生成操作,后面的操作产生的.pad文件(从24.pad开始的)会覆盖前面的.pad文件从而导致在调用前面生成的库文件.dra时出现焊盘被更换的情况,所以在导出之后需要从.dra文件中重新建立.pad文件并将.dra中的pad用新生成的.pad文件replace才能保证库的正确使用!+ N: q7 p* h0 T+ ~! M
g) 接下来,我们使用Allegro的Export->libraries功能将封装库.dra、.psm等,焊盘库.pad输出出来,再经过h)操作,将ref等加上就完成了Protel封装库到Allegro转化;
3 C) K v! M$ R! Ih) Protel中的”Designator”转换为allegro里Components 下Ref Des的Silkscreen_Top和Display_Top这2层;”Comment”转换为Geometry下Part Geometry的Silkscreen_Top和Display_Top这2层。此时将2个”Designator”与2个”Comment”删除,并在Ref Des的Silkscreen_Top层添加”REF”,在Device Type的Silkscreen_Top层添加”DEV”;# K$ n8 }% q# S) o0 R
i) File>Save as按照元器件命名规则生成.dra文件并保存至allegro元件库目录下;* T6 ?, m9 c: _( q+ F; |
j) File>Create Symbol生成.psm文件并保存至.dra的同一目录下。; a; U1 e4 U& o; ^9 ~7 D
至此Protel元器件导入Allegro的过程全部结束,在allegro里面可以对新生成的库文件进行调用。在Allegro中通过.pad文件组织.dra文件,通过.dra文件生成.psm等文件后才能 对元器件进行调用,所以在元件的使用过程中要注意各个部分的对应关系避免出现.pad的错误调用等不匹配现象的发生。
6 B( H* C* f5 ?- z3 k |