|
在 STM32 中,一共有 5 个时钟源,分别是 HSI 、 HSE 、 LSI 、 LSE 、 PLL 。
, L$ n' n7 }- m/ B+ x# J7 ^5 T F/ u( T, c( C4 f
①HSI 是高速内部时钟, RC 振荡器,频率为 8MHz ;9 l/ g9 K; @6 p4 }3 |- u
7 b# k9 F5 ^' c
②HSE 是高速外部时钟,可接石英 / 陶瓷谐振器,或者接外部时钟源,频率范围是 4MHz – 16MHz ;) }. h! G$ \, b7 ~0 [! z4 {0 q
* R5 f6 \' c, I! A2 K
③LSI 是低速内部时钟, RC 振荡器,频率为 40KHz ;' Q8 P+ V0 w* E; }) D2 L
3 V) b7 X* j H! |
④LSE 是低速外部时钟,接频率为 32.768KHz 的石英晶体;% _6 u2 Y, J: U4 H
8 w" n) ?, O8 ?. N+ S; H
⑤PLL 为锁相环倍频输出,严格的来说并不算一个独立的时钟源, PLL 的输入可以接 HSI/2 、 HSE 或者 HSE/2 。PLL倍频可选择为 2 – 16 倍,但是其输出频率最大不得超过 72MHz 。7 r3 I7 O( r k9 S
* H& S% |" o* Z% z3 }! {
其中, 40kHz 的 LSI 供独立看门狗 IWDG 使用,另外它还可以被选择为实时时钟 RTC 的时钟源。另外,实时时钟 RTC 的时钟源还可以选择 LSE ,或者是 HSE 的 128 分频。
/ o0 O# z/ x: w7 `% S8 A& e/ K& e& H# ~, \5 P
STM32 中有一个全速功能的 USB 模块,其串行接口引擎需要一个频率为 48MHz 的时钟源。该时钟源只能从 PLL 端获取,可以选择为 1.5 分频或者 1 分频,也就是,当需使用到 USB 模块时, PLL 必须使能,并且时钟配置为 48MHz 或 72MHz 。
/ g1 A, }# j; E( v7 w
2 P) c; z+ M; K+ Q5 d另外 STM32 还可以选择一个时钟信号输出到 MCO 脚 (PA.8) 上,可以选择为 PLL 输出的 2 分频、 HSI 、 HSE 或者系统时钟。
) {4 a* W2 [+ w6 }/ J2 c& h$ F8 k) h, b+ C
系统时钟 SYSCLK ,它是提供 STM32 中绝大部分部件工作的时钟源。系统时钟可以选择为 PLL 输出、 HSI 、 HSE 。系系统时钟最大频率为 72MHz ,它通过 AHB 分频器分频后送给各个模块使用, AHB 分频器可以选择 1 、 2 、 4 、 8 、 16 、 64 、 128 、 256 、 512 分频,AHB分频器输出的时钟送给 5 大模块使用:
0 g6 E, ~* |- C* s+ \( N8 u, [
! e3 h. B A/ Y ①送给 AHB 总线、内核、内存和 DMA 使用的 HCLK 时钟;
9 k( M: [8 o' y T9 M0 e1 T8 J+ W& j0 {: r! a
②通过 8 分频后送给 Cortex 的系统定时器时钟STCLK;
2 V, D q. K$ E, @8 d! V7 d U* n6 W) H. ~5 k" t' r9 d B
③直接送给 Cortex 的空闲运行时钟 FCLK ;
7 c" d$ T) Z7 x! r5 r4 }8 F3 e9 c% U# s' k: n4 m, ~% r
④送给 APB1 分频器。 APB1 分频器可以选择 1 、 2 、 4 、 8 、 16 分频,其输出一路供 APB1 外设使用( PCLK1 ,最大频率 36MHz ),另一路送给定时器 (Timer)2 、 3 、 4 倍频器使用。该倍频器根据PCLK1的分频值自动选择 1 或者 2 倍频,时钟输出供定时器 2 、 3 、 4 使用。7 F7 W0 C0 q+ }$ B! d$ q
) g+ P! _. q& z8 ]; ] ⑤送给 APB2 分频器。 APB2 分频器可以选择 1 、 2 、 4 、 8 、 16 分频,其输出一路供 APB2 外设使用( PCLK2 ,最大频率 72MHz ),另外一路送给定时器 (Timer)1 倍频使用。该倍频器根据PCLK2的分频值自动选择1 或 2 倍频,时钟输出供定时器 1 使用。另外 APB2 分频器还有一路输出供 ADC 分频器使用,分频后送给 ADC 模块使用。 ADC 分频器可选择为 2 、 4 、 6 、 8 分频。) R, y& x1 o$ D) D8 E. N
3 B0 v. c* q d7 r$ J: s需要注意的是定时器的倍频器,当 APB 的分频为 1 时,它的倍频值为 1 ,否则它的倍频值就为 2 。 |
|