STM32学习笔记---时钟树
目录
一、时钟树:M3---STM32F103
1、主要时钟来源
2、时钟系统线路分析
HSE时钟
HSI时钟
LSE时钟
LSI时钟
PPLCLK ---锁相环时钟
SYSCLK ---系统时钟
HCLK时钟
PCLK1时钟
PCLK2时钟
3、时钟树简图
4、构成部分作用分析
二、时钟树:M4---STM32F407
1、主要时钟来源
2、时钟简图
3、时钟系统线路分析
HSE时钟
HSI时钟
LSE时钟
LSI时钟
SYSCLK ---系统时钟
PPLCLK ---锁相环时钟
HCLK时钟
PCLK1时钟
PCLK2时钟
4、构成部分作用分析
为什么要有时钟?
STM32时钟系统主要的目的就是给相对独立的外设模块提供时钟,主要也是为了降低整个芯片的功耗,所有外设时钟默认都是关闭状态(disable)当我们使用某个外设就要开启这个外设的时钟(enable),不同外设需要的时钟频率不同,没必要所有外设都用高速时钟造成浪费,而且有些外设也接受不了这么高的频率,这也是为什么STM32有四个时钟源的原因,就是兼容不同速度的外设,STM32的四个时钟源分别为:HSE、 LSE、HSI、LSI。其中,一般情况下我们使用HSE时钟来作为我们的系统时钟,它可以用来驱动APB,DMA,Cortex等系统;而低速时钟一般用于驱动RTC
一、时钟树:M3---STM32F103
1、主要时钟来源
2、时钟系统线路分析
HSE时钟
来源:无源晶振(4-16M),通常使用8M。
作用:可不分频或2分频(频率/2)作为PLL锁相环的输入,还可直接不分频作为系统时钟,128分频作为外设RTC时钟的输入
HSI时钟
来源:芯片内部,大小为8M,当HSE故障时,系统时钟会自动切换到HSI,直到HSE启动成功。
作用:可直接作为系统时钟或在2分频后作为PLL输入。HSI RC振荡器能够在不需要任何外部器件的条件下提供系统时钟。它的启动时间比HSE晶体振荡器短。然而,即使在校准之后它的时钟频率精度仍较差
LSE时钟
来源:芯片内部,LSE晶体是一个32.768kHz的低速外部晶体或陶瓷谐振器。它为实时时钟或者其他定时功能提供一个低功耗且精确的时钟源。
作用:直接作为RTC是时钟来源
LSI时钟
来源:内部芯片,LSI RC担当一个低功耗时钟源的角色,它可以在停机和待机模式下保持运行,LSI时钟频率大约40kHz(在30kHz和60kHz之间)。
作用:为独立看门狗和自动唤醒单元(RTC)提供时钟
PPLCLK ---锁相环时钟
来源:选择HSI振荡器除2或HSE振荡器为PLL的输入时钟,和选择倍频因子,必须在其被激活前完成。一旦PLL被激活,这些参数就不能被改动。
作用:内部PLL可以用来倍频HSI RC的输出时钟或HSE晶体输出时钟(倍频数2~16倍),而经过倍频变成PLLCLK可以作为系统时钟源
SYSCLK ---系统时钟
系统时钟:SYSCLK,最高为72M(ST官方推荐的)
来源:HSI、HSE、PLLCLK
HCLK时钟
HCLK:AHB高速总线时钟,速度最高为72M。
作用:为AHB总线的外设提供时钟、为Cortex系统定时器提供时钟(SysTick)、为内核提供时钟(FCLK)。
来源:系统时钟分频得到,一般设置HCLK=SYSCLK=72
PCLK1时钟
PCLK1:APB1低速总线时钟,最高为36M。
作用:为APB1总线的外设提供时钟。1或2倍频之后则为APB1总线的定时器2~7提供时钟来源:HCLK分频得到,一般配置PCLK1=HCLK/2=36M
PCLK2时钟
PCLK2:APB2高速总线时钟,最高为72M。
作用:为APB2总线的外设提供时钟。为APB2总线的定时器1和8提供时钟APB2分频器还有一路输出供ADC分频器使用,分频后送给ADC模块使用。
来源:HCLK分频得到,一般配置PCLK2=HCLK=72M
3、时钟树简图
简图①
简图②
大树:
小树:
4、构成部分作用分析
二、时钟树:M4---STM32F407
1、主要时钟来源
2、时钟简图
大树:
小树:
3、时钟系统线路分析
HSE时钟
来源:无源晶振(4-26M),通常使用25M。
作用:M分频(频率/M)作为PLL锁相环的输入,还可直接不分频作为系统时钟
HSI时钟
来源:芯片内部,大小为16M,当HSE故障时,系统时钟会自动切换到HSI,直到HSE启动成功。
作用:可直接作为系统时钟或在M分频后作为PLL输入。HSI RC振荡器能够在不需要任何外部器件的条件下提供系统时钟。它的启动时间比HSE晶体振荡器短。然而,即使在校准之后它的时钟频率精度仍较差
LSE时钟
来源:芯片内部,LSE晶体是一个32.768kHz的低速外部晶体或陶瓷谐振器。它为实时时钟或者其他定时功能提供一个低功耗且精确的时钟源。
作用:直接作为RTC是时钟来源
LSI时钟
来源:内部芯片,LSI RC担当一个低功耗时钟源的角色,它可以在停机和待机模式下保持运行,LSI时钟频率大约32kHz。
作用:为独立看门狗和自动唤醒单元(RTC)提供时钟
SYSCLK ---系统时钟
系统时钟:SYSCLK,最高为168M(ST官方推荐的)
来源:HSI、HSE、PLLCLK。
PPLCLK ---锁相环时钟
来源:选择HIS振荡器除2或HSE振荡器为PLL的输入时钟,和选择倍频因子,必须在其被激活前完成。一旦PLL被激活,这些参数就不能被改动。
作用:内部PLL可以用来倍频HSI RC的输出时钟或HSE晶体输出时钟,而经过倍频变成PLLCLK可以作为系统时钟源
HSE输入输出的计算:
PPL(HSE):25Mhz /M分频 * N倍频 / P分频
25Mhz / 25 * 336 / 2 = 168Mhz
HSI输入输出的计算:
PPL(HSI):25Mhz /M分频 * N倍频 / P分频
PLL_M = 16
PLL_N = 336
PLL_P = 2
16Mhz / 16 * 336 / 2 = 168Mhz
因为基于精度和稳定性要求、同步需求、灵活性和可扩展性以及可靠性考虑等方面的原因,所以HSI一般不用,只有在HSE发生故障的时候,系统时钟会自动切换到HSI,直到HSE启动成功。
HCLK时钟
HCLK:AHB高速总线时钟,速度最高为168M。
作用:为AHB总线的外设提供时钟、为Cortex系统定时器提供时钟(SysTick)、为内核提供时钟(FCLK)。
来源:系统时钟分频得到,一般设置HCLK=SYSCLK=168M
PCLK1时钟
PCLK1:APB1低速总线时钟,最高为42M。
作用:为APB1总线的外设提供时钟。1或2倍频之后则为APB1总线的定时器2~7、12~14提供时钟
来源:HCLK分频得到,一般配置PCLK1=HCLK/4=42M
PCLK2时钟
PCLK2:APB2高速总线时钟,最高为84M。
作用:为APB2总线的外设提供时钟。为APB2总线的定时器1或8、定时器9~11提供时钟来源:HCLK分频得到,一般配置PCLK2=HCLK/2=84M
4、构成部分作用分析
同上STM32F03