STM32 时钟控制器
1.RC振荡器
RC振荡器的优点是成本低,启动速度要比晶振快,但是精度没有晶振/陶瓷谐振器高。
阻容器件运行过程中会产生热量,导致温度有变化,这些器件受温度影响比较大,导致最终输出的波形不准。

2.无源晶体振荡器
工作原理是基于压电效应和共振原理交互作用而产生的。需要借助于时钟电路才能产生振荡信号,自身无法振荡起来。
晶振就是一个天然的晶体,所有的物体都有自身的一个谐振频率,通过切割这个晶体的形状,来改变这个晶体的自然谐振的频率,晶体通过自身的谐振来产生时钟的波形。

3.有源晶体振荡器
内部是一个完整的振荡电路,原理与无源晶振类似,有源晶振需要外部电源供电才能起振。

无源晶振要接OSC_IN和OSC_OUT两个引脚,有源晶振只需接一个。
4.基础时钟源
(1)HSI时钟
高速内部时钟信号由内部 16 MHz RC 振荡器生成,可直接用作系统时钟, 或者用作 PLL 输入。
HSI RC 振荡器的优点是成本较低(无需使用外部组件)。此外,其启动速度也要比 HSE 振快,但即使校准后,其精度也不及外部晶振或陶 瓷谐振器。

(2)HSE时钟
高速外部时钟信号可以支持两种时钟源,由有源晶振或者是无源晶 振提供,频率范围4~26MHz。

HSE 时钟信号也可直接用作系统时钟,或者用作 PLL 输入。

(3)LSI时钟
LSI RC 可作为低功耗时钟源在停机和待机模式下保持运行,供独立看门狗(IWDG)和 RTC 使用。时钟频率为 32kHz。

(4)LSE时钟
LSE晶振是32.768kHz低速外部晶振或陶瓷谐振器。可作为实时时钟 (RTC)的时钟源来提供时钟/日历或其他定时功能,具有功耗低且精度高的优点。

5.系统时钟源
(1)PLL时钟
内部PLL基于HSI或HSE 输入的时钟频率进行倍频,从而得到系统时钟 SYSCLK。使用PLLM、PLLP、PLLQ可编程分频因子以及PLLN倍频因子,可调整PLLCLK输出的时钟频率。

(2)SYSCLK时钟
SYSCLK即常说的系统时钟,可以通过System Clock Mux选择器来选择输入的源时钟,有HSI、HSE、PLLCLK三种输入源。

(3)HCLK时钟
将SYSCLK时钟经过AHB Prescaler分频器分频后就得到了HCLK时钟, HCLK时钟为AHB总线提供的时钟信号,最大频率168MHz主要用于高速 外设,可以为DMA、Cortex System Timer、FCLK、APB1、APB2提 供时钟输入。
- Cortex System Timer(SysTick) 是 ARM Cortex-M 内核自带的系统定时器。
- FCLK(Free Running Clock)是 Cortex-M 内核运行时使用的时钟。
- APB1(Advanced Peripheral Bus 1)是低速外设总线。
- APB2(Advanced Peripheral Bus 2)是高速外设总线。

6.外设时钟
(1)APB总线时钟
STM32F407 APB总线时钟可分为APB1和APB2时钟,APB时钟输入源 都是由HCLK时钟提供时钟输入。之后经过APB Prescaler分频后得到 APB外设时钟。
定时器APB Timer单独使用时钟域,是因为要工作在时钟频率比较高的一个状态,所以如果前面进行了分频,它就进行了一个二倍频。

(2)外设控制器时钟
STM32F407外设控制器时钟主要通过AHB总线时钟、APB1总线时钟、 APB2总线时钟来提供时钟输入。每条总线上都可以挂载多个外设控制器。

(3)RTC时钟
RTC时钟输入源可以由LSE、LSI或者HSE经过分频后提供,IWDG(独立看门狗)输入时钟相对简单只有LSI时钟。
RTC Clock Mux选择器可以选择由LSE、LSI时钟直接为RTC提供输入时钟,还是由HSE经过分频后作为RTC的输入时钟。

7.MCO时钟输出
MCO 是微控制器时钟输出引脚,主要作用是可以对外提供时钟,相当于一个有源晶振。在STM32F407中有MCO1(PA8)和MCO2(PC9) 两个引脚。

更多推荐



所有评论(0)