TA的每日心情 | 开心 2022-1-29 15:07 |
---|
签到天数: 2 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 elephant_ 于 2022-1-17 13:25 编辑 2 ^4 N' j3 a- O, G+ }( S8 [
/ z7 [6 h, f1 `' V% P' |5 W
往往我们画完电路原理图后,也知道要检查检查,但从哪些地方入手检查呢?检查原理图需要注意哪些地方呢?下面听我根据我的经验到来$ x; A; J6 P4 T% j/ l9 g
7 t8 K. O9 O, I
1. 检查所有的芯片封装图引脚是否有误 * v; K6 g' u2 R* K
2 L; `' l. @: I; C2 M$ p
当然,我指的是自己画的芯片封装。我在项目中曾经把一个芯片的2个引脚画反了,导致最后制版出来后不得不跳线,这样就很难看了。 / ]: Q, X6 X8 M& {& @/ _, D" l
. h! ^) F% j3 ^& j所以,检查与原理图前一定要从芯片的封装入手,坚决把错误的封装扼杀在摇篮中! # N3 ~1 c: Q% V8 g6 Q0 j
& T" X: ~0 v1 |0 C" [7 ]
2. 使用protel的Tools->ERC电气规则检查,根据其生成的文件来排错
' V. F5 K0 M7 P. R$ g; J& [1 u; i" l D
这个指的是protel99的ERC电气规则检查,DXP应该也会有相应的菜单可以完成这样一个检查。很有用,它可以帮你查找出很多错误,根据它生成的错误文件,对照着错误文件检查一下你的原理图,你应该会惊叹:“我这么仔细地画图,竟然还会有这么多错误啊?”
8 O) S9 p+ a" N& D/ E( h
. A# f* w9 G; E% e0 `6 M M) N$ J, @" q3. 检测所有的网络节点net是否都连接正确(重点) 3 U) Y. M' Z9 C+ G. S; d$ b% j
4 \: s5 `1 w* o$ _9 b# b2 C3 w
一般容易出现的错误有: 4 x$ r$ K; M) v+ J( a& b
% s' [# d. y/ L w5 i {
(1) 本来两个net是应该相连接的,却不小心标得不一致,例如我曾经把主芯片的DDR时钟脚标的是DDR_CLK,而把DDR芯片对应的时钟脚标成了DDRCLK,由于名字不一致,其实这两个脚是没有连接在一起的。
- W M. C9 l3 M6 m1 w$ j3 L* s- {
" v9 o% q; x1 E" z% w5 y3 d, v3 \(2) 有的net只标出了一个,该net的另一端在什么地方却忘记标出。 $ O! ]0 Z: Z. F4 F- J$ G
$ @( i7 v& ?/ W0 l3 o' c. {, s9 x(3) 同一个net标号有多个地方重复使用,导致它们全部连接到了一起。 ! P" Y2 w) Y" J# |7 U; u" m
) c2 X% ~0 f) l! G* F! ~+ a9 l" M
4. 检测各个芯片功能引脚是否都连接正确,检测所有的芯片是否有遗漏引脚,不连接的划X 5 b1 C8 ^% D1 q P4 o7 f( L" o
1 C0 @$ ^; U. s* e芯片的功能引脚一定不要连错,例如我使用的音频处理芯片有LCLK、BCLK、MCLK三个时钟引脚,与主芯片的三个音频时钟引脚一定要一一对应,连反一个就不能工作了。 - p, C4 `6 p, M% R* w3 F
2 Q! N; W0 l0 P- `6 Y" }6 z
是否有遗漏引脚其实很容易排查,仔细观察各个芯片,看是否有没有遗漏没有连接出去的引脚,查查datasheet,看看该引脚什么功能,如果系统中不需要,就使用X把该引脚X掉。 2 w' i5 q3 W0 @$ J
5. 检测所有的外接电容、电感、电阻的取值是否有根据,而不是随意取值 # {9 a" o7 m9 G
0 j2 X% Z- N; h4 G$ v0 J* d) `其实新手在画原理图时,时常不清楚某些外围电阻、电容怎么取值,这时千万不要随意取值,往往这些外围电路电阻、电容的取值在芯片的datasheet上都有说明的,有的datasheet上也给出了典型参考电路,或者一些电阻电容的计算公式,只要你足够细心,大部分电阻电容的取值你都是可以找到依据的。偶尔实在找不到依据的,可以在网上搜搜其他人的设计案例或者典型连接,参考一下。总之,不要随意设置这些取值。
" s. l$ N. U7 n6 |( a
9 M# x4 N' d( G( l1 ~4 w3 a/ y6. 检查所有芯片供电端是否加了电容滤波 1 ~: [& n8 ^4 |
7 x1 C! U! p T电源端的电容滤波的重要性就不用我多说了,其实做过硬件的人都应该知道。一般情况下,电路电源输入端会引进一些纹波,为了防止这些纹波对芯片的逻辑造成太大的影响,往往需要在芯片供电端旁边加上一些0.1uf之类的电容,起到一些滤波效果,检查电路原理图时,你可以仔细观察一下是否在必要地芯片电源端加上了这样的滤波电路呢? $ i/ h1 ~! B2 m/ X; w
: V7 ~9 b- u# W/ G6 t
7. 检测系统所有的接口电路
& [/ z! W) i- v& L! ^' ?4 `/ H% N. E9 |1 P* }9 ?
接口电路一般包括系统的输入和输出,需要检查输入是否有应有的保护等,输出是否有足够的驱动能力等 0 G/ d% @# u" B" _
+ o' C4 ^/ N. Y* t* b5 b* N* E5 \/ g7 ]; ]输入保护一般有:反冲电流保护、光耦隔离、过压保护等等。 6 Q& [" F8 W# B |% r" j
: W; B* K& ^6 z输出驱动能力不足的需要加上一些上拉电阻提高驱动能力。
) n0 j6 D0 Y; s) W( ?: j" j/ _: y4 I- u: ~) H$ {/ G2 i& \
8. 检查各个芯片是否有上电、复位的先后顺序要求,若有要求,则需要设计相应的时延电路。
- B# ]; M$ s3 H
9 }4 h: T' T2 G4 p- r" C例如我项目中使用的DM6467芯片,对供电电压的上电有先后顺序要求,必须先给1.2V电源端供电,然后给1.8V电源端供电,最后给3.3V电源端供电。因此,我们将电源芯片产生的三种电压通过一个时延芯片的处理(其实也可以使用一个三极管,利用钳位电压),然后再依次输送到主芯片中。 ( U/ P/ ^/ p$ x& Y3 N+ Q
9 }9 A, @, }/ w# ~
9. 检查各个芯片的地,该接模拟地的接模拟地,该接数字地的是否接的数字地,数字地与模拟地之间是否隔开。
, V, O5 ~* w# c, c2 L* X
0 x4 i3 V0 g% e& a8 g) y一般处理模拟信号的芯片有:传感器芯片、模拟信号采集芯片、AD转换芯片、[color=rgb(68, 68, 68) !important]功放芯片、滤波芯片、载波芯片、DA转换芯片、模拟信号输出芯片等等,往往只有当系统中存在这些处理模拟信号的芯片或者电路时才会涉及模拟地和数字地。 2 V2 e( d% j9 Q8 u
0 o& e) b2 C& H1 T( m V8 Z
一般芯片的接地脚该连接模拟地还是数字地在芯片手册中都有说明,按照datasheet上连接就可以了。 0 A+ ~3 s# B# r) l
% V# s- W: j, N: U2 Y; I
10. 观察各个模块是否有更优的解决方案(可选)
$ [ Z8 D) ?, R4 _0 j4 m c R/ T* _) A( g& p7 Q7 D8 U1 f) D
其实,刚刚设计原理图初稿时,往往没有想那么多,当整个系统成型后,你往往会发现其实很多地方是可以改进可以优化的。
7 T; F( C9 l% Y1 r1 ?, q8 ?8 _" _) g |
|