EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
为了提高系统性能,同时降低功耗,mcu通常提供四种时钟:6 E9 q- ~4 ]7 I* m. ]/ t
高速外部时钟(HSE):由外接高频晶振产生。
/ Y8 m0 H U! m7 t低速外部时钟(LSE):由外接低频晶振产生,一般为32.768kHz,用于驱动实时时钟 (RTCCLK)。: ?* x# U. q. `2 Z( B: x
高速内部时钟(HSI):由内部高频RC电路产生。* a3 C( r* `" @8 P1 c% C8 ~
低速内部时钟(LSI):由内部低频RC电路产生,一般为32kHz,用于驱动独立看门狗。
. ^/ ]5 A& ~4 o/ B1 y. H
. v5 m" G( D6 K* i- V 图1. 晶振为MCU提供精准外部时钟- u: D! P# _! O8 h8 d
/ ~1 u8 Q8 ]* T$ G" D- q$ K这样配置的好处是,如果采用单一时钟,频率高的话可能会导致性能过剩和功耗过高,频率高则导致性能不足,满足不了要求。多个时钟的话可以平衡功耗和性能之间的平衡。8 f4 B& C9 T: g, E1 u
& E6 G2 h+ U3 v3 t1 c9 u4 H
特此说明一下,系统复位后,默认初始化的是高速内部时钟(HSI)来提供sysclock,一般为16MHz。为了提示系统性能,我们需要使能外部时钟晶振,如24MHz、32MHz等。4 S3 v5 C5 x& y
4 f# Z, \& D v9 Z# F" D
如果使用外部HSE的话,一般有两种模式:
) n* E0 J) F% v6 M- a" G0 R$ o9 i
7 O* h/ b% F4 Q(1)外部晶体/陶瓷谐振器(HSE晶体)模式6 A4 d g! P `- U7 l4 j
0 g5 O! O8 p) [8 d2 U9 e' a
这种模式用得比较常见,HSE晶体可以为系统提供较为精确的时钟源。在时钟控制寄存器RCC_CR中的HSERDY位用来指示高速外部振荡器是否稳定。在启动时,直到这一位被硬件置’1’,时钟才被释放出来。HSE晶体可以通过设置时钟控制寄存器里RCC_CR中的HSEON位被启动和关闭。, u4 }; w; Z" d& F6 ?# D% I( G
, ?3 `7 {# k3 P# E( Z" k
图2. STM32F4系列MCU时钟模式( A4 q: f+ H! h4 P
* m) h5 Q, o+ J( N% @# U! e该时钟源是由外部无源晶体与MCU内部时钟驱动电路共同配合形成,有一定的启动时间,精度也较高,但是一定要正确使用。$ M- X2 h# @- {! v! k
* X) z# G; c ~& C) A O5 c
(2)外部时钟源(HSE)旁路模式# R8 v( w) Y2 `
% ]+ f& g3 X( ]& V* u9 m所谓HSE旁路模式,是指使用外部晶振时,无需芯片内部时钟驱动组件来辅助,直接从外界导入时钟信号,好像芯片内部的RC振荡器功能被旁路了。
7 y0 m& z( b/ _8 N; u+ q! n" O- i3 h, L
该模式下必须提供外部时钟,外部时钟信号必须连到SOC_IN引脚,此时OSC_OUT引脚对外呈高阻态。不过,使用这个旁路模式的情形不像使用外部晶体模式那么多。
3 L7 B* \2 N$ R$ |6 t, x2 C8 a) p0 a
( q6 @" h0 e% a& l3 u( L: n8 L(3)晶振选择举例
' d4 e0 K( V3 P# d$ {3 X
$ b2 O! U- m1 x, ~以STM32F4系列MCU为例,旁路模式除了配置HSEON还得配置HSEBYP位。这里需要注意的是一定要选择无源晶振,即石英晶体谐振器(XTAL)作为时钟源。3 @. Z$ y* V' o& S8 n* S
- v c5 U+ G4 e5 r/ R* _
首先,为了减少时钟输出的失真和缩短启动稳定时间,晶体/陶瓷谐振器和负载电容必须尽可能地靠近振荡器引脚,负载电容值必须根据所选择的晶体来具体调整等细节问题。至于选择陶瓷晶体和石英晶体,这取决于应用电路对频率精度和温度稳定性的要求。一般而言,石英晶体比陶瓷晶体的精度要高的多,频率温度稳定性也要好很多。1 h/ }/ _6 ?6 \8 M
i0 ?, M) p( c q3 q m' g其次,如果选择了有源晶振(XO、TCXO等),用户就无法选择工作模式!由于有源晶振本身就是个完整的振荡器件,其时钟输出不依赖于外部器件振荡电路,只需要供给适当的电源就能输出时钟,无须额外的振荡驱动匹配电路。这时,我们只能将其配置为HSE旁路模式,而不是HSE晶体模式。
) D5 F+ ]( i' |/ S$ o# b5 P7 w# G$ ?5 i
另外,有源晶振价格比无源贵很多,选错了不但浪费钱财,还限制了MCU工作模式和用户发挥空间,需要大家引起注意。
$ b2 k: b& L+ g4 l3 u3 I" ]7 n |