|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
最近采用CY7C68013A芯片设计了一款产品,其实内部就是一个51单片机,控制USB通讯。在测试过程发现部分电路板上电后,电脑无法发现新USB硬件,也不提示无法识别,设备管理器也没有UNKNOW DEVICE的提示。经过仔细排查怀疑内部的51单片机没有工作。
/ r$ S5 H% r# U' k排查了晶振,供电,IO脚等等之后都没发现问题,最后怀疑是电路reset有问题。
, L4 L$ s" ^8 b; d, O 根据芯片资料所述:VCC上升时间不能太快,至少需要200us。在使用无源晶振时,reset复位时间必须是在VCC达到3.0V后大约5MS。若是外部时钟的加电复位时间大约为200us。
$ b6 k0 Y3 V1 v
+ V0 W; {, x, {$ i1 d' V/ Q0 `, e4 g4 j/ s4 V4 {
5 N" w3 ]5 n$ K: p( J8 K
4 f% [, v" Q( ^! T. U1 T% l7 {. u
我们一般使用单片机的时候,硬件电路中的复位电路设计如下图所示。此复位电路是针对低电平有效复位而言的,其中二极管是起着在断电的情况下能够很快的将电容 两端的电压释放掉,为下次上电复位做准备
2 r1 J: a4 o/ ?+ A* q9 E. Z* I! p& L! y9 L5 N( {- _
' P& I; _8 H# V. J7 ^+ K3 N& v7 D! [! m6 |. }
电容两端的初始电压为U0(一般情况下设为0V),T时刻电容两端电压为UT。3.3V电压设为VCC。 ) V. }' }- r5 U# B6 P
. r" p9 J* V& ?9 a7 v. W. |* g 由流经电容的电流I和电容两端的电压变化关系式:I=C*dUt/dt
& p. z4 {3 _/ k- N: n
s+ ~: R( k1 P* ?可以得到:I*dt=C*dU t & t q5 ~9 u- a5 H2 J# M* F8 t
s# S# r. X1 R6 w
两边分别积分可以的得到:I*T=∫(0-1)C*dUt;即I*T=C*Ut−C*U0 2 z5 P6 z! B" u2 u+ z& M" y" _9 Z
3 d E T9 r8 k+ \; E" K. d
(其中U0=0V),
" V f! D7 H1 A# b* ~. b1 d P 由VCC=UR+UT 可以得到公式:VCC=R1*(C*UT/T)+UT+ n8 [, ?9 w' q$ F2 g
对电容充电至0.9*VCC时完成复位,此时可以得出T=9*RC,T就是所需要的复位时间。根据自己电路中的参数计算出复位时间. v( d4 l; I# m! r, Q: e
T=900MS; h# e# g. ?; ~" w( w* O* w
但实际过程中采用LOTO的OSCA02示波器的触发功能,捕捉正常工作USB电路板上电时刻复位信号的波形状态;如下图所示(黄色为电压VCC波形,蓝绿色为复 位信号波形):* M$ o, H# i1 w0 c# O% j/ \9 X8 L
1 a% O# G* ?6 Z4 ^. R
+ B% ~2 K( E2 y: {
: W; t$ M% }. a( p5 A
观察波形状态,正常USB电路板上电时,VCC上升时间为100US左右,RESET复位信号为500US。 $ ?; L F' l- k6 w3 }3 c, ^
8 ~/ n9 l$ R7 f7 Z; U, [
! B1 \; D4 D8 i3 \+ I# B! D
5 o3 }4 C3 f$ t# a; x" d% O/ F
无反应的USB电路板上电时,示波器捕捉的波形如图5所示,VCC在100US可从0V上升到3.3V,而RESET复位信号上升时间持续400MS,而且一直达不到3.3V。
+ X: A2 Z$ R. o |" X- O2 X+ V. v2 o" w, p8 ?) F) }; E# y1 g
I( z8 ^- z _+ V( G$ T
t% Z! U7 ~# N" j
6 v G8 f' |0 S0 c% S4 t
; x9 }$ h6 u0 @: Z( o3 D 遇到此现象,使用示波器观察上电复位波形和VCC电压波形之间的延迟关系会很有帮助。当然使用USB 示波器在电脑上操作也很方便。检查RESET管脚周围的电阻和电容等有无虚焊、漏焊等失误。这次故障应该是电容焊错,换了一个电容就正常了,故障排除。$ C7 q2 l" Z& C
9 i7 K! L- n U8 z9 B. T( A |
|