STM32--时钟树

一、什么是时钟?

时钟是单片机的脉搏,是系统工作的同步节拍。单片机上至CPU,下至总线外设,它们工作时序的配合,都需要一个同步的时钟信号来统一指挥。时钟信号是周期性的脉冲信号。

二、什么是时钟树?

STM32有很多外设器件,每个器件的时钟信号不一样,所以要将一个固定的信号频率进行倍频/分频处理,达到每个外设需要的频率。时钟信号的分频就像树的分支一样,这就是时钟树。

三、时钟介绍

HSI(内部高速时钟): 时钟信号由内部RC震荡电路提供,时钟频率为8MHz,但是这个时钟频率会随着温度产生漂移,很不稳定,所以一般不使用此时钟信号。
LSI(内部低速时钟): 时钟信号由内部RC振荡电路提供,时钟频率一般为40KHz,这个信号一般用于独立看门狗时钟。
HSE(外部高速时钟): 时钟信号由外部晶振提供,时钟频率一般在4-16MHz,是经常会用到的时钟源。
LSE(外部低速时钟): 时钟信号由外部晶振提供,时钟频率一般为32.768KHz,这个信号一般用于RTC实时时钟。

四、时钟框架图

五、框架图分析

(1)外部低速时钟LSE,外接引脚OSC32_IN和OSC32_OUT就是接外部晶振的引脚,进来的频率是32.768KHZ进来后只有一个走向就是为RTC提供时钟。

(2) RTCCLK蓝色框的四选一数据选择器,一共有三个输入,一个来自最上方的HSE,中间经过了一个128的分频器。一个是LSE以及最下方的LSI时钟。也就是说看门狗智能由内部低速时钟LSI提供时钟,RTC可以由LSI、LSE、或者是HSE经过分频后来提供时钟,具体使用哪一个需要我们在代码里面配置。

(3) PLL锁相环中的数据选择器有两个输入,一个是内部高速时钟HSI经过2分频连接。另一个输入是外部高速时钟HSE经过1分频或2分频输出后连接。经过数据选择器后,进行倍频操作供给系统时钟。对于系统时钟一般选择HSE时钟经过PLL锁相环倍频后的时钟作为系统时钟。倍频系数可选范围:2~16。

注:一般在PLL锁相环中数据选择器中我们选择来自外部高速时钟HSE的时钟信号,因为HSI时钟信号很不稳定,容易受到环境的影响。

(4)对于系统时钟选择器,一共有四个输入。最上面为HSI时钟输入,中间为PLLCLK时钟输入,下面两个分别是HSE时钟直接输入,以及在HSE后加入CSS时钟安全检测标志后输入。

六、示例

外部晶振电路:

连接外部高速时钟:

假如外部时钟晶振频率为8MHz,如何设置72MHz的系统时钟?

答:HSE接入8MHz的外部震荡信号,由PLLXTPER进行选择进行1分频还是2分频,假如是1分频,则8MHz的时钟信号来到了PLLSRC控制选择的位置,配置PLLSRC,选择进入PLL锁相环的时钟信号源,假设来自HSE的信号选通,则8MHz的信号来到锁相环中,配置PLLMUL,可以选择倍频系数,假设倍频系数选为9,则PLL输出72MHz的时钟信号,SYSCLK前面的梯形的选择逻辑控制着SYSCLK时钟信号来自于3个接入信号HSE、HIS、PLLCLK中的哪一个,通过SW和CSS控制,选择PLLCLK后,系统就可以获得72MHz的时钟频率了。这个CSS是时钟安全保护系统,主要是在HSE出现故障时发生NMI中断(不可屏蔽中断,产生这个中断的时候,表示系统发生了致命的错误),具体要看手册59页信息介绍。

为了减少功耗,STM32上外设的时钟初始状态默认为关闭,如需使用外设,则必须开启外设时钟。譬如我们现在要使用外设GPIOB,则系统时钟SYSCLK要通过预分频器AHB分频,再进入APB2总线进行再分频(GPIOB是挂载在APB2总线上的外设),时钟信号的输入和外设时钟使能位接在一个与门上,当要使用外设时,需要将这个使能位置1,配置完成之后,GPIOB方可正常工作。

相关推荐
leo__5202 小时前
STM32的RTC模块及其应用场景
stm32·嵌入式硬件·实时音视频
GoodG_study5 小时前
Matlab函数转C语言供Keil使用
stm32·matlab·c
hateregiste15 小时前
国产数据库FlashDB移植到国产MCU GD32F103RC上的几点经验总结
单片机·嵌入式硬件
QQ52862112417 小时前
STM32F2/F4系列单片机解密和芯片应用介绍
stm32·单片机·嵌入式硬件·程序·pcb抄板
2006yu18 小时前
从零开始学习单片机17
单片机·嵌入式硬件·学习
kaikaile199521 小时前
GY-BMP280压强传感器完整工程stm32控制
stm32·单片机·嵌入式硬件
GodKK老神灭1 天前
STM32 定时器(互补输出+刹车)
stm32·单片机·嵌入式硬件
lingzhilab1 天前
零知开源——基于STM32F407VET6实现ULN2003AN驱动28BYJ-48步进电机控制系统
stm32·单片机·嵌入式硬件
JasmineX-11 天前
直流电机驱动与TB6612
c语言·stm32·单片机·嵌入式硬件
hahaha60162 天前
模拟电路中什么时候适合使用电流传递信号,什么时候合适使用电压传递信号
stm32·单片机·嵌入式硬件