一个电路设计:从原理图到
PCB
板的绘制基于
orcad(备忘)
(原理图中的如何搜索放置元器件和连接元器件和应用全局的电源网络,生成材料清单)
(
PCB
图中如何制定板子的需要比如线宽和
spacing
,指定模板)
原理图如下图所示:
这是一个基本的电路:
包括一个有源的元件(运放)和几个无源的元器件(比如电阻和电容),一个插座提供双电源和信号的输入输出的接口。直插元件包括连接器和供电滤波电容,贴片元件包括放大器,旁路电容以及增益电阻。
当根据实际要求设计电路之后,最好制作一个元器件清单,包括连接器(插针插座),在常用的元器件目录中找到你常用的喜欢的元件并且下载元器件数据手册,然后存放到一个专用的文件夹中。
有必要建立一个表格来记录详细的元器件名称(实际中能够买到的,没有停产的)和对应的封装,当
PCB
板生产出来的时候,你买到的元器件能够对应的上。在整个设计过程中你可以添加或者修改一些信息文档比如元器件的供电电压功耗等等特殊的要求。当在调试的过程中如果出现错误,你就可以很快的知道是那些地方出现了错误。下图是这个电路用到的
元器件清单:
这些都做好之后,就可以开始原理图的绘制:
首先建立一个工程(怎样建立一个工程,工程的设置),然后绘制原理图:
选中
PC Board Wizard
这个选项。选项
Analog or Mixed A/D
用来建立
PSpice
仿真工程的。
然后选择一个合适的地方存储你的工程。在下一步中不要选择
enable project simulation
。然后点击
NEXT.
然后在下一步中,添加
CONNECTOR,DIscrete
,和
OPAmp
元件库。
在放置元件之前,需要先将
place grid
选中(选中了就是灰色的,如果不选中的话,放置的元件将会不能连上
wire
,因为元件的管脚没有放置在
grid
上,但是
wire
一般都是根据
grid
进行连接的)。然后是放置元件,放置元件,需要到库中寻找。
就需要对绘图的软件的库文件有一些了解(库文件的特点以及分布特点)。当放置某些元器件的时候,如果没有,还需要自己根据
datasheet
建立自己的库文件(怎样建立库文件)。
原理图的最终效果图如下:
有源元件一般都有电源引脚也是接电源的那个供电的引脚一般是
VCC
之类的,这些引脚有几种情况,比如:这个引脚(
Pin
)定义的类型为
power
类型,但是这个
Pin
是隐藏的,不可见的,或者是一个
power
类型的,但是可见的。或者是这个
Pin
的类型是(
passive
或者
input
等),一般是可见的。可见的意思是说这个
Pin
对于连接导线的工具(
wire
)来说说可见的,并不是针对的用户,不过一般情况下,一个不可见的
Pin
对于用户来说一般也是不可见的。对于数字元件来说,一般是不可见的
power
类型的引脚。但是对于模拟器件,尤其是放大器,通常一个引脚要么是可见的
power
类型的引脚,要么是可见的非
power
类型的引脚。
如果一个元件的供电引脚是一个
power
类型的引脚而且是不可见的,你不能直接的将它连接到一个
wire
(
net
)上。
一个不可见的
power
类型的
pin
是一个
net
而且是全局的。可以通过取相同的名字将一个元件的
power
类型的
pin
连接到一个
power symbol
。为了建立连接你需要在原理图上放置一个
power symbol
(全局的)。
Power Symbol
一直是可见的并且
wired
到一个板子接口的插座上(
connect
)上,或者是一个仿真的供电电源上(
PSpice power
)。可以修改
power pin
的名称或者
power symbol
的名称,使它们属于同一个网络
如果一个供电引脚是
power
类型的
pin
,而且是可见的,可以直接的用
wires
连接上,也可以应用
power
类型的
pin
的全局的属性应用
power symbols
。如果应用全局特性名字应该一样,如果是直接连接就不用考虑名字的改变了。如果你应用一个有多个
part
的封装的时(比如一个有四个放大器,共享
powerpin
),所有在放置在原理图中的属于这个封装中的
part
,必须让他们的电源供电引脚以相同的方式连接。要么都是全局的,要么全都是通过
wire
连接的。
如果一个元件的供电引脚不是一个
power
类型的引脚(
pin
),你必须应用一个
wire
去连接那个
pin
到其他的物体,比如一个
power symbol
或者一个板子的接口(
connect
)。如果一个放置了多于一个
part
从一个有多个
part
的封装中(而且这个封装的供电引脚不是
power
类型的),只需其中一个
part
的供电引脚连接,(当然你也可以将所有的供电引脚都连上),
(通过看第七章了解一下更多关于
pin
类型的信息)
Zero-length power pins
和
line-length power pins
对于
wire
都是可见的,但是对于用户来说
zero-length pins
是不可见的。
放置
power symbol
(比如
vcc
,
gnd
等等)。他就是常见的电路中的各种电源符号。
当在原理图上修改一个元件的封装的时候(也可以对一个元件的单个的引脚进行单独的操作),
design cache
与
part library
之间的连接就被打破了,在本章的最后详细的讲述细节在管理
design cache
方面。(关于
design cache
。
Cleanup cache
移除从
design cache
移除不用的元件。)。
为
PCB
设计做好准备:
当所有的元件之间的连接都完成之后,下一步就是准备制作一个
LAYOUT netlist
了。
(1)
保证所有的元件的封装都安排上了
(2)
给相关的元件分组
(3)
执行一次
annotation
(4)
清除
design cache
(5)
在原理图中执行一次
DRC
(6)
生成网络表
Grouping related Components
可以将同一部分的电路(比如运放和他的引脚上的那个滤波电容)作为一个组(
group
),这样生成网络表的时候,导入
PCB
,可以使在
PCB
中放置元件更加的容易,分组号信息将在原理图中安排并且导入到
Layout
中去。
执行
annotate
,通过软件制动对元件设置标号。
并且为每个元件指定
PCB
封装。
绘制完毕原理图的时候,执行一次原理图的
DRC
检查,看一下你的设计上并不是遵守设计规则。如果没有错误,就生成网络表
netlist
。
不要关闭原理图工程,以便原理图与
PCB
图之间进行交流。
然后开始进行
PCB
板的设计:
首先要分析一下板子的需求,根据设计中用到的元件的类型(封装和安装类型),得出板层的层数,走线的宽度和布线的间隔的需要。
设计中用到了贴片和直插元件还有
8
个脚的
SOIC
元件。设计的需要在下图中列了出来。
这个图显示了板子的主要需求。
以为至少需要两个电源和一个
ground
电源层,而且至少需要两个布线层。(除非跳线),那就需要
5
层了,因为大多数的多层板是由双层板的内核叠加而成,所以只可能得到偶数成的多层板。我们可以应用那个多出来的层作为一个额外的
ground
电源层,有很多的电源层的堆叠方法,(第
6
章中有介绍)。下图为设计的板层叠加图,这样可以表明两个不同的方法来定义电源层。
(
一般的
PCB
的设计时候的板子的层的分配情况
)
。
走线的宽度决定于两个设计限制,(走线的宽度与电流的大小以及本身的阻抗的关系)第一个是需要的电流大小,第二个是走线的阻抗。通过
datasheet
我们可以知道,
UA741
的短路输出电流为
40ma
,为安全,设置为
100Ma
,
应用阻抗为
1
欧姆的铜板作为板层,通过第六章中的方程
17
或者第六章中的图表,最小的走线宽度是
1.3mils
对于
inner layers
。
0.5mils
对于
outer layers
。所有的工艺图在
9-4
中,都比
6mils
要宽可以应用任意的工艺图。
在第
6
章中你将会看到
6mil
的走线可以通过大约
300ma
的电流在内部的走线中,和大约
600ma
的电流在外部的
traces
上。
在这个例子中,我们指定所有的信号都是非常低的频率(小于
20khz
)。所以走线的阻抗是不用考虑了。
决定走线间的间隔
那个运放需要双电源供电,可以高达正负
15v
(输入输出信号必须在这个范围之间),那么两个走线之间最大的压差就是
30v
,所以走线的空间间隔必须能够达到这个要求。如果为了安全起见,要用
31―50v
的标准,而且还要用到
soldermask
(阻焊剂),通过第
6
章的
6-8
,走线的空间间隔必须是
4mil
在内部层上,
5mils
在外部层上。
当你第一次打开一个设计的时候,
Layout
将会问你需要那个技术工艺文件,工艺图定义了板子的结构,并且设置了板子对于走线宽度,布线空间的要求(比如走线与走线之间,走线与焊盘之间),默认的
grids
,
padstack
,默认的颜色等等。一个完整的技术文档默认值设置以及特性在附录
a
中有介绍。
导入网络表到
layout
中去,
Zoom all
设置板子并且制作一个板子的
outline
在布板子之前第一个步骤就是制作板子的
outline
和添加安装孔,这样板子的范围可以知道。首先要关闭
DRC box
通过切换
Online DRC
(
DRC
的作用
)按钮,然后画一个板子的外框。
选择
Board outline
(绘制
Board outline
的方法
)在
Global layer
上。从
0
,
0
开始向左在向上在向右,在向下。
Board outline
占据很多种
obstacle
(
obstacle
的作用及其分类用法
)的属性,包括
place outlines
,
route keep-outs
,和
anti-copper
。这个
board outline
可以提醒你当元件或者走线离板子的边沿太近了。它同时还可以移除铺铜从电源层,这样导体就不会暴露在板子的边沿上了。移除的多少由
outline
的宽度决定。
添加安装孔,
下一步就是在板子上安装装配孔。这个必须在把任何元件移入
board outline
中之前完成。安装装配孔的时候,(
AUTOECO
的作用)要选中
Not in Netlist ,
防止这个安装孔被移除当运行
ANTOECO
的时候,可以将一个装配孔与其他的所有的层中的
copper
孤立起来,如果它是一个镀金属的安装孔,可以将它连接到一个网络上
。(比如
grounp plane
)。具体的方法是:选中
PIN tool
,然后
ctrl+left click
那个安装孔(
padstack
),右击,然后选择
properties
显示
modify connectioons
。(安装孔或者
pin
或者
via
都属于焊盘
)。
选择你想附加到的
net
或者
plane
上
。
安装孔在
layout
中,默认的都是
plated
的。要想制作一个
nonplated
的,就要切换
PIN TOOL ,
然后选择安装孔中的
padstack
(用
ctrl+left-click
),切换到
VIEW SPREADSHEET
然后右击选中
PROPERTIES .
选择
NON-PLATED
选项。
需要用一个单独的
drill file
叫做
thruhole.npt
(
plated througth-holes
被改为
thruhole.tap
),
NONPLATED HOLES
在板子制作的最后阶段进行加工,在最后阶段没有
plating
工序了。
看第
8
章,找到其他的设计安装孔的方法,索引
E
是一些标准的机器
screw
和
drill
孔的
sizes
。
添加尺寸标度,(不同的对象在不同的层上,整理一下)
可以将尺寸标度作为文档使用,也可以作为暂时的标度,指导你去标记安装孔的位置,和连接。尺寸可以放在
assembly
或者
comment layers
上。(比如
NOTES LAYER
上
)。当对当前的布局满意的时候。可以删除掉文档层或临时的尺寸标注。
添加尺寸标注需要三个过程,分别是
tools―Dismension ---
指定
snap setting --------
指定尺寸的类型
----
放置尺寸。
当
grid
和
type
都设置了,你不必在去设置了。
Absolute dismension
或者
relative dismension
。当尺寸标注完成的时候,
line
变成一个简单的
obstacle
,距离数字变成一个简单的文本
text
,你可以移动他们,当时不会有任何的改变。
放置
parts
。
放置元件布局是一个布局艺术和布局科学。你的板子的最终布局,决定了你以后的板子的机械性能和电器性能。机械性能包括以后的手工的装配和焊接。以及板子的物理大小,形状,等等,电器
性能包括信号的流动,热量控制,信号完整性,电磁兼容。通常情况下,这些因素都很重要,而且有时候相互的矛盾。这些在第
4
,
5
,
6
章中都有详细的解释。
刚开始的时候,元件都被放置在原点的左边。第一步是去寻找某个元件,然后将它放到
board outline
中。有一些好的方法,帮助你在移动的过程中,使画面看起来更加的简洁。
首先是先关闭装配层(
layers
)(
AST
和
ASB
),然后是关闭
nest
(飞线)。
关闭装配层(
layers
)的方法是选中
AST
层,点击“―”键,将这个层关闭。如果你想打开这个层,你可以在按一次“―”或者直接选中
AST
层在
layers list
中,
有两中方法去关闭飞线,第一种是去切换
RECONNECT button
这样只是将
nets
变得不可见了。可以通过切换
spreadsheets
选择
Nets
。使某些
nets
能与不能。
在放置元件之前最好先调整放置格点,
option---system setting
,改变
place grid
【
x
,
y
】
到
50 mil
或者(
25 mils
看一下
IPC
的建议)。
你可以手工的选择一个元件,左击远近,移动鼠标,然后在合适的位置再左击,或者同“
R
”快捷键,使他旋转,或者按下“
T
”快捷键,将元件放在板子的另一面。
也可以通过
Find/GO
命令。
也可以将一个元件的
snap
到
cursor
,显示一个
选择元件的方法,
先选中电源网络,其他的网络都取消了(暂时不用使能了),将放大器的电阻放在放大器周围这样能够使信号流的更远。
当元器件放到预期的位置之后可以用,
text
工具将(
U1,J1
)等等放置到合适的位置。
便于阅读,
在进行设置
layers
和布线之前,先进性一下
DRC
检查。看一下有没有大的错误。
在大型的电路中,找到特定的
nets
是个不小的挑战。可以通过原理图与
layout
的交互,进行
nets
的选择,快速选择。
设置
layers
,将
nets
与
layers
联系起来。
一旦将元器件放置完毕,第二部就是进行
layers
的设置了。这个设计我们需要六层
---
两个电源层,两个地层,两个布线层。
有两种方法添加电源层。一种方法就是转变一个布线层到一个电源层中去。通过一个当前的电源层生成一个新的电源层。层的名字没有必要和
nets
的网络相同,但是相同了会很方便。
只用改变一下层的类型就行了,不要改变层的
NICKNAME.
层的
nickname
和一个模板文件有联系。
用第二种方法添加一个
GND plane
。
下一步是要安排他们各自的电源与地的网络到相应的电源层中去。
指定
vias
为
fanouts
。你可以指定那个
via
用来
fanouts
,那个
via
用来为特定的
nets
。
欲布线板子
为
power
和
ground nets
布线
将其他的
nets disable
。将
power
和
ground nets
到他们指定的
planes
中去。
每一个连接到
plane layers
的
pin
将会有一个
thermal relief
包围着这个,贴片元件没有说因为它没有路径到
planes
中去,下一步就是提供路径到
plans
。
FANNING OUT POWER AND GROUND
一般情况下,建议将
power
和
ground
分开来
fannout
。
一般是
ground
先
fanout
。可以通过自动的
fanout
,但是
power
可能需要手工的
fanout
。
可以改变一个
nets
的颜色。来改变一个
thermals
的颜色。
手工的布线的
fanout
Lock traces
要想使一个
nets
被布线可以将其
disable
,防止一个
trace
被
unrouted
,可以
lock
一个
trace
。
在板子自动的布线之前,执行一次
DRC
检查。
在电源层上的
Pads
实际上是
clearances
。
自动的布线
当
power
和
ground
连接和其他的关键的走线已经欲布置好了之后,所有的错误都被排除了。你可以自动布线来布剩下的板子。在自动布线之前一定要记得去
disable
和
lock ground
和
power nets
,并且使能
signal nets
利用
NETS Spreadsheet
。
控制那个
route box
(
自动布线与
DRCbox
的关系
)
自动布线器可以在
DRC box
定义的区域进行布线。
你有选择告诉自动布线器去为整个板子布线或者仅仅在
DRCbox
定义的区域中布线。你可以指定
DRC
的大小
。
运行
autorouter
。
当自动布线完成之后,必须检查错误的地方,比如锐角。长的平行的走线和坏的
via
位置。第
6
章讨论了几个和其他的布线问题。这个时候可以执行一下
DRC
,看看有没有新的问题出现。可能需要移动或者取消一些布线应用手工的布线工具。
对布线进行统计。
看看是不是
100%
的布通了。
同步
PCB
设计到
capture
(
back annotation
)。
Postprocess
。