电子产业一站式赋能平台

PCB联盟网

搜索
查看: 383|回复: 0
收起左侧

晶振原理解析

[复制链接]

569

主题

569

帖子

4259

积分

四级会员

Rank: 4

积分
4259
发表于 2020-6-1 22:01:00 | 显示全部楼层 |阅读模式
关注、星标公众,不错过精彩内容' }( f* H5 F  @7 Z  _. D

m22zpubujtq64010478318.png

m22zpubujtq64010478318.png
& C5 _& o& D0 Y8 G, @/ X! \( M4 Q& e2 T
3 A9 P- `' t/ r* Z0 g' o
前几天我写了一篇《MCU的心脏-晶振》,部分同学表示,读后还是对有源晶振和无源晶振的区别并没有深入理解,觉得只是科普了晶振的类别和参数,下文将进一步讲解晶振的原理,以及晶振和STM32的关系。- \: I' |5 j0 g: _/ s1 j. ~* h

% X( i# i8 ?' r01压电效应
: M) a$ t5 B" u& C9 r- J& S' L4 \' l5 w% X7 O7 S. W6 O
压电效应:某些电介质在沿一定方向上受到外力的作用而变形时,其内部会产生极化现象,同时在它的两个相对表面上出现正负相反的电荷。" Z* |( ^9 U) l# p5 @' W( l0 Q4 V
正压电效应:当外力去掉后,电介质又会恢复到不带电的状态。$ r% y' }4 E- P9 g% x. F4 G5 a! K
逆压电效应:当作用力的方向改变时,电荷的极性也随之改变。相反,当在电介质的极化方向上施加电场,这些电介质也会发生变形,电场去掉后,电介质的变形随之消失。) X% L2 u, l/ q6 g: Z1 `  |( p
当在晶体表面上施加机械压力时,与机械压力成比例的电压出现在晶体上。该电压会导致晶体失真,失真的量将与施加的电压成比例,并且还与施加在晶体上的交流电压成正比,从而导致晶体以其固有频率振动。这种压电效应会产生机械振动或振荡,可用来代替以前的振荡器中的标准LC振荡电路。
/ [" O4 l. ^0 L9 I9 i下图展示了:石英晶体的等效电路是一个串联的RLC电路。
; `8 y$ m$ j7 D4 L6 L3 |5 _' j: `4 S3 a! ]5 m6 K6 @. J

ibqj1blwplk64010478418.png

ibqj1blwplk64010478418.png

) g* `6 c& r& F$ X* @5 x▲ 石英晶体等效模型, \2 j) X7 _7 a% d$ M$ A/ R

; n( Y$ k5 a* c: i0 [" ~该电路代表晶体的机械振动,与电容Cp并联,电容Cp代表与晶体的电连接。石英晶体振荡器倾向于朝着其“串联谐振”方向运行。晶体的等效阻抗具有串联谐振,其中Cs在晶体工作频率下与电感Ls谐振。该频率称为晶体串联频率?s。如上图所示,除了Ls和Cs与并联电容器Cp谐振外,还有一个第二频率点是由于并联谐振而建立的第二频率点。9 x) {% ~" I+ D) b+ w0 f) Z4 S

; B; G/ ]. C; c5 i% V02晶体振荡器的应用- S* r+ P4 o2 m; [" Q$ D

9 F. d! C; x0 U1 c  _% P# v晶体振荡器不仅仅是给MCU提供时钟,它在各个领域有各种应用,下面简单介绍一些晶体振荡器的应用:
* H( Z0 t9 H# ^1 y科尔皮兹晶体振荡器
2 N/ b; m9 R5 V
) [7 j$ p- ]/ [( CColpitts振荡器用于产生非常高频率的正弦输出信号。该振荡器可以用作不同类型的传感器,例如温度传感器。使用Colpitts电路中的某些设备,我们可以实现更高的温度稳定性和高频。1 ]- B) f1 {" f5 @3 p

nbofgidkaur64010478518.png

nbofgidkaur64010478518.png
% @: N! A* L; n  e8 k
▲ 科尔皮兹晶体振荡器& c0 e3 I& Q# m5 V. `: z3 w
' F( c9 ~, o8 T/ ~* C1 A
阿姆斯壮晶体振荡器
- a( g$ c% W, Z- j5 c9 q该电路一直流行到1940年代。这些在再生无线电接收机中被广泛使用。在该输入中,来自天线的射频信号通过一个额外的绕组磁性耦合到振荡电路中,并且减少了反馈,以在反馈环路中进行增益控制。最后,它产生了一个窄带射频滤波器和放大器。在该晶体振荡器中,LC谐振电路被反馈环路取代。% L6 q% O* x& Y9 @# w# }. p- N% n

werqu1acnwe64010478618.png

werqu1acnwe64010478618.png
, }; [' x2 |  p- A. S
▲ 阿姆斯壮晶体振荡器
( O" W' y# _9 w" r& O" O
  x: e+ Y9 w# ~% K# V0 l皮尔斯晶体振荡器
, T" |8 V$ m! {8 w9 J& n/ y2 g在这个简单的电路中,晶体确定振荡频率,并以其串联谐振频率工作,?s在输出和输入之间提供低阻抗路径。谐振时有一个180 度的相移,使反馈为正。输出正弦波的幅度限制为漏极端子的最大电压范围。
; l: b, U. U) h" \* f2 o' g! M

laysgfrtuip64010478718.png

laysgfrtuip64010478718.png

2 F& q$ m, b3 X. H# \( F+ t* U▲ 皮尔斯晶体振荡器
4 l8 b, T5 F# z7 A7 k5 p. d8 Y1 H6 ?+ i+ v& e5 P( B
03无源晶振和有源晶振的区别- Z( X& H* ~4 Z9 R, f" q& A  n

" O* e; |0 E0 U5 @. Z6 S, s& ^) D  y1 ^# `6 U
无源晶振和有源晶振的区别体现:3 ~1 R' ?6 ]2 _& F$ m4 V
有源晶振:不依靠外部电路,通过自身产生震荡。
' E$ J3 z6 D; q0 H& K# n/ `! a+ P无源晶振:就是一个晶体振荡器,无法通过自身产生震荡。
6 J/ j9 C/ y& N4 l3 s有源晶振的缺陷:与无源晶振相比,有源晶振信号电平几乎是不变的,价格方面也会更高。4 T0 _4 r* l8 O3 h) G9 G, _% @5 c

6 O" T6 j. h: {$ Y, F上面描述的还是不清晰,那么我们先看下有源晶振的结构图:% ]) ?3 H4 i6 w9 k7 p  U

9 H* y+ ^# i# _1 Y$ J7 v- l

rnpxakjgkzr64010478818.jpg

rnpxakjgkzr64010478818.jpg

5 R' H' G7 L3 _) c' i, |▲ 有源晶振结构图
) Q' Z$ G4 ?; y  k- K3 O( H( R. c; g' a# v. a+ C. C& J
上图中XT就是晶体振荡器,其他的器件就是上文说的外部电路,这样只要给有源晶振供电,就可以产生时钟波形。
- N. r; \% o, c" K5 }4 B而无源晶振,就是只有XT这个晶体振荡器。以STM32为例,STM32集成了上图除XT外的电路,所以我们可以接无源晶振。主要因为晶振不好集成,外挂晶振比较方便。+ O8 {$ J- H( T) x" r( M  s. V
我们可以直接看有源晶振的解剖图,可以看到晶体振荡器和外部电路。
# ^* D! k8 A- f$ i$ a* M6 C+ o+ e: c

oajxur32s0j64010478918.png

oajxur32s0j64010478918.png

2 s& q' l" k/ m; x; G3 J% u8 B
; X! }0 I: u' h6 j0 `* k

h5q5vtpirye64010479018.png

h5q5vtpirye64010479018.png
0 `' `2 X9 u4 T: n3 I
8 f! z6 p' H) m& E
▲ 有源晶振解剖图
" g& t  T* f: ^% [/ w" J+ \' {  t& D0 V6 F- [( F1 o# D# c
下面看一下无源晶振的解剖图,只看到了晶振振荡器。4 R' k" K% E- D& }% }! s

2wjykiiuveo64010479118.jpg

2wjykiiuveo64010479118.jpg
7 c8 [: J5 O8 r( G# F8 P+ B

t5lp1pgugq064010479218.jpg

t5lp1pgugq064010479218.jpg
( K- T6 u3 u" ^* V! L% i' R# v

ti3sm0qgrcy64010479318.jpg

ti3sm0qgrcy64010479318.jpg

7 T; H  _( j/ l) X+ E▲ 无源晶振解剖图,左右滑动查看更多* v  ?+ z+ R! ^5 q
  J) }6 A  ?( z
04STM32外接晶振
2 B- E2 _! A, Y5 ?+ b) b9 ~0 I2 g( H* ~/ X; _
以STM32F207为例,一般情况下外部高速时钟(HSE)我们接25M的无源晶振。在用户手册中ST提供了两种方式:" u& y# F7 y" [% Z; }  {
6 Y) Z, u4 Q. [' m

11g3cfupeno64010479418.png

11g3cfupeno64010479418.png
# K6 v' a& f# \+ S
▲ HSE时钟源
% U/ d# U( _1 i" P2 f+ G  s4 G+ d  m5 R
5 C# w7 Q4 H, q6 Q6 u  u1 k8 b' B7 Q外部高速时钟(HSE)可以通过两个时钟源产生:3 h0 G" a! b/ W- }3 O& n; \7 D( U: L3 I
1、外部晶体/陶瓷谐振器; L3 d4 d- @$ V% F/ N( t
2、外部用户时钟) v$ N/ [  V) I0 I* [+ E# y5 W
在外部时钟模式中,直接向OSC_IN引脚输入25MHZ的时钟信号,OSC_OUT处于高阻态。也就是说,我们可以外接有源晶振,但是上文说到,一般有源晶振价格都会高一点,很少有外接有源晶振的案例。( o. ^7 s6 F3 x9 ]# z8 S$ k, @
上面我们说到,STM32内部集成了晶体振荡器的外部电路,如果外接无源晶振,STM32理论上可以通过禁止部分电路,达到关闭外部高速时钟(HSE)的目的。2 H2 i" n; V& S- M" k
事实上,在STM32F207的RCC时钟控制寄存器(RCCclock control register)的16位HSEON,用来打开或关闭HSE振荡器。3 ~, ?) u4 _: ~7 P0 }

bcx1xb2ewga64010479518.png

bcx1xb2ewga64010479518.png

+ `4 p7 X: Q+ s' r由软件置1和清零。
& T2 h6 s2 O. D  M, Q$ D由硬件清零,用于在进入停机或待机模式时停止HSE 振荡器。如果HSE 振荡器直接或间接用于作为系统时钟,则此位不可复位。
) \9 U( d% i/ T" V0 k6 @5 D

eni4dbqramj64010479618.png

eni4dbqramj64010479618.png

- d" W3 _( c) ?. J& D7 H如上图,在system_stm32f2xx.c文件中,345行就是开启HSE的,我们添加343行的死循环,再去测量晶振,发现没有波形。
4 S- h3 M! b$ |. s  K/ ]还有另一种方法,我们使用Jlink的J-FlashARM工具,擦除全片数据,再次上电,发现没有波形。6 F& G- B6 d' O7 a! O

trdvg24aapb64010479718.png

trdvg24aapb64010479718.png
) L* i0 I- v% ~1 W2 N0 f" i: F6 v
这也就解答了一些萌新同学的问题,硬件没有问题,测量晶振发现没有起振,以为是硬件的问题。其实下载一个正常运行(使能了RCCclock control register的HSEON位)的demo,再去测量晶振波形就行了。
2 ]% Q! d5 p& Y2 I- E7 L: l+ {
& V+ I# w- G7 _' D9 e

fducf5cbwzj64010479818.gif

fducf5cbwzj64010479818.gif
' y' C' ]8 k, G! e5 l4 y
; ^2 r+ M4 r/ I

o3osgflstc364010479919.gif

o3osgflstc364010479919.gif

7 S1 l' a2 h$ v$ W' T& u5 j; n设计一款兼容ST207和GD207的开发板3 f& W- h0 i& q# b) G
MCU的心脏-晶振
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


联系客服 关注微信 下载APP 返回顶部 返回列表