一、综述:
1、时钟源
在 STM32 中,一共有 5 个时钟源,分别是 HSI 、 HSE 、 LSI 、 LSE 、 PLL 。
①HSI 是高速内部时钟, RC 振荡器,频率为 8MHz ;
②HSE 是高速外部时钟,可接石英 / 陶瓷谐振器,或者接外部时钟源,频率范围是 4MHz – 16MHz ;
③LSI 是低速内部时钟, RC 振荡器,频率为 40KHz ;
④LSE 是低速外部时钟,接频率为 32.768KHz 的石英晶体;
⑤PLL 为锁相环倍频输出,严格的来说并不算一个独立的时钟源, PLL 的输入可以接 HSI/2 、 HSE 或者 HSE/2 。PLL倍频可选择为 2 – 16 倍,但是其输出频率最大不得超过 72MHz 。
其中,
40kHz
的
LSI
供独立看门狗
IWDG
使用,另外它还可以被选择为实时时钟
RTC
的时钟源。另外,实时时钟
RTC
的时钟源还可以选择
LSE
,或者是
HSE
的
128
分频。
STM32
中有一个全速功能的
USB
模块,其串行接口引擎需要一个频率为
48MHz
的时钟源。该时钟源只能从
PLL
端获取,可以选择为
1.5
分频或者
1
分频,也就是,当需使用到
USB
模块时,
PLL
必须使能,并且时钟配置为
48MHz
或
72MHz
。
另外
STM32
还可以选择一个时钟信号输出到
MCO
脚
(PA.8)
上,可以选择为
PLL
输出的
2
分频、
HSI
、
HSE
或者系统时钟。
系统时钟
SYSCLK
,它是提供
STM32
中绝大部分部件工作的时钟源。系统时钟可以选择为
PLL
输出、
HSI
、
HSE
。系系统时钟最大频率为
72MHz
,它通过
AHB
分频器分频后送给各个模块使用,
AHB
分频器可以选择
1
、
2
、
4
、
8
、
16
、
64
、
128
、
256
、
512
分频,AHB分频器输出的时钟送给
5
大模块使用:
①送给
AHB
总线、内核、内存和
DMA
使用的
HCLK
时钟;
②通过
8
分频后送给
Cortex
的系统定时器时钟STCLK;
③直接送给
Cortex
的空闲运行时钟
FCLK
;
④送给
APB1
分频器。
APB1
分频器可以选择
1
、
2
、
4
、
8
、
16
分频,其输出一路供
APB1
外设使用(
PCLK1
,最大频率
36MHz
),另一路送给定时器
(Timer)2
、
3
、
4
倍频器使用。该倍频器根据PCLK1的分频值自动选择
1
或者
2
倍频,时钟输出供定时器
2
、
3
、
4
使用。
⑤送给
APB2
分频器。
APB2
分频器可以选择
1
、
2
、
4
、
8
、
16
分频,其输出一路供
APB2
外设使用(
PCLK2
,最大频率
72MHz
),另外一路送给定时器
(Timer)1
倍频使用。该倍频器根据PCLK2的分频值自动选择1
或
2
倍频,时钟输出供定时器
1
使用。另外
APB2
分频器还有一路输出供
ADC
分频器使用,分频后送给
ADC
模块使用。
ADC
分频器可选择为
2
、
4
、
6
、
8
分频。
需要注意的是定时器的倍频器,当
APB
的分频为
1
时,它的倍频值为
1
,否则它的倍频值就为
2
。
|