STM32基础知识之系统时钟RCC(详解)

文章介绍了STM32中的复位和时钟控制器RCC以及各种时钟信号,包括高速外部时钟HSE、低速外部时钟LSE、高速内部时钟HSI和低速内部时钟LSI。还详细讨论了实时时钟RTC、锁相环PLL的工作原理和时钟配置。STM32的时钟树结构被解析,展示了如何通过选择不同的时钟源、倍频和预分频器设置来满足不同外设的时钟需求。最后,对比了外部晶振和内部晶振的优缺点。

一、基础知识


(1)RCC – 复位和时钟控制器


RCC :reset clock control 复位和时钟控制器。 时钟是单片机运行的基础,时钟信号推动单片机内各个部分执行相应的指令。单片机有了时钟,才能够运行执行指令。

 

(2)HSE – 高速外部时钟信号


HSE: High Speed External Clock signal,高速外部时钟信号,HSE 是高速的外部时钟信号,可以由有源晶振或者无源晶振提供,频率从4-16MHZ 不等。当使用有源晶振时,时钟从OSC_IN 引脚进入,OSC_OUT 引脚悬空,当选用无源晶振时,时钟从OSC_IN 和OSC_OUT 进入,并且要配谐振电容。HSE 最常使用的就是8M 的无源晶振

(3)LSE – 低速外部时钟信号


LSE: Low Speed External Clock signal,低速外部时钟信号,即是OSC32_IN和OSC32_OUT接口。外部用于RTC的32.768KHz晶振

(4)HSI – 高速内部时钟信号


HSI: High Speed Internal Clock signal,高速内部时钟信号,出厂校准的8MHz内部RC振荡器。

(5)LSI – 高速内部时钟信号


LSI: Low Speed Internal Clock signal,高速内部时钟信号,带有校准功能的40KHz的内部RC振荡器。

(6)RTC – 实时时钟


RTC: Real Time Clock实时时钟,用于带有年、月、日、小时、分钟、秒钟的计时器。时间显示时候使用

(7)PLL – 锁相环


PLL:锁相环倍频输出,PLL 时钟来源可以有两个,一个来自HSE,另外一个是HSI/2,倍频可选择为2~16倍,但是其输出频率最大不得超过72MHz。HSI 是内部高速的时钟信号,频率为8M,根据温度和环境的情况频率会有漂移,一般不作为PLL 的时钟来源。这里我们选HSE 作为PLL 的时钟来源

(8)PLLCLK – PLL时钟


通过设置PLL 的倍频因子, 可以对PLL 的时钟来源进行倍频, 倍频因子可以是:[2,3,4,5,6,7,8,9,10,11,12,13,14,15,16], 具体设置成多少, 由时钟配置寄存器设置。
例如:设置PLL 的时钟来源为HSE=8M,PLL设置为9 倍频,所以经过PLL 倍频之后的PLL时钟:PLLCLK = 8M *9 = 72M。
72M 是ST 官方推荐的稳定运行时钟,如果你想超频的话,增大倍频因子即可,最高为128M。

(9)SYSCLK – 系统时钟


SYSCLK:系统时钟,系统时钟来源可以是:HSI、PLLCLK、HSE,具体的时钟配置寄存器设置。最高72MHz

(10)AHB – 高级高性能总线


AHB:高级高性能总线,这是一种“系统总线”AHB主要用于高性能模块(如CPU、DMA和DSP等)之间的连接。AHB 系统由主模块、从模块和基础结构(Infrastructure)3部分组成,整个AHB总线上的传输都由主模块发出,由从模块负责回应。

(11)APB


APB:是一种外围总线。APB主要用于低带宽的周边外设之间的连接,例如UART等,它的总线架构不像 AHB支持多个主模块,在APB里面唯一的主模块就是APB 桥。

(12)STM32 的多个时钟源


STM32本身十分复杂,外设非常多,但我们实际使用的时候只会用到有限的几个外设,使用任何外设都需要时钟才能启动,但并不是所有的外设都需要系统时钟那么高的频率,为了兼容不同速度的设备,有些高速,有些低速,如果都用高速时钟,势必造成浪费 。
而且同一个电路,时钟越快功耗越快,同时抗电磁干扰能力也就越弱,所以较为复杂的MCU都是采用多时钟源的方法来解决这些问题。所以便有了STM32的时钟系统和时钟树

(13)外部晶振与内部晶振的区别


外部晶振比较稳定而内部晶振的误差比较大,但如果对频率要求不高,如不涉及到串口通信和精确定时等情况时,则可以使用内部晶振。所以如果对频率要求不高,则一般是优先使用内部晶振。如果要省电,用到了SLEEP,则不能使用内部晶振,因为内部振荡会停止。

 

 

 

二、时钟树详解


首先简单介绍一下整个时钟树

 

在上图中标注了时钟树每一部分的组成,东西很多,看着也很乱,为了方便理解接下来选择其中的一条线进行介绍。

 

在上面这个图中,选取了一条时钟线,开始在(1)的位置 选择了外部高速时钟,一般选择8M,然后通过(2)的线路进入(3),在(3)也就是锁相环中,倍频选择x9,8M * 9 = 72M,经过前面的倍频,频率达到72M,也就是最大频率,之后进入APB预分频器(4)中,根据不同外设要求,根据不同外设需要挂载的总线,选择(5)或者(6),经过整个流程达到更改时钟频率的效果。


小结一下:
系统时钟SYSCLK 的左边,系统时钟有很多种选择,也就是系统时钟可以从不同种类初始频率得到,就是设置系统时钟使用哪个时钟源;
系统时钟SYSCLK 的右边,则是系统时钟通过AHB预分频器,给相对应的外设设置相对应的时钟频率。
从左到右可以简单理解为 ,不同时钟源—>系统时钟来源的设置—>系统时钟—>AHB分频器—>各个外设分频倍频器 —> 外设时钟的设置
 

 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱尔兰的楠小楠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值