STM32时钟树分析

对于刚接触STM32的时钟树,对时钟树的理解,可以重点先 思考两个问题:
1、时钟从哪里来:时钟源。
2、时钟怎么供给STM32的系统工作:时钟的流向(输入——>处理——>输出)

下面以 STM32F4系列的时钟树为例,分析以上两个问题。以下图是STM32F4系列的时钟树。


问题一、时钟从哪里来:时钟源。
STM32的时钟源主要有: 内部时钟、外部时钟、锁相环倍频输出时钟。内部时钟、外部时钟又分为告诉时钟、低速时钟。锁相环倍频输出时钟又主PLL时钟、PLLI2S时钟。具体如下图所示。
1、LSI低速内部时钟:由内部RC振荡器产生,频率为32kHz。如图区域
2、HSI高速内部时钟:由内部RC振荡器产生,频率为16MHz。如图 区域
3、LSE低速外部时钟:一般由外部晶振提供,频率为32.768kHz。如图 区域
4、HSE低速外部时钟:一般由外部晶振提供,频率为4~26MHz。如图 区域
5、主PLL时钟:由HSE或HSI提供。如图 区域
6、PLLI2S时钟:由HSE或HSI提供。如图 区域


问题二、时钟怎么供给STM32的系统工作:时钟的流向
我们已经知道了各个时钟源的输入,那么有了输入的时钟源,各个时钟源又是分别输出给哪些外设工作。我们分别从时钟源输入处开始,根据走线和结点,寻找到相应的输出。对应编号如下图中所示。
1、LSI低速内部时钟:供给独立看门狗 、实时时钟RTC
2、HSI高速内部时钟:供给系统时钟 、时钟输出1MCO1 、主PLL时钟 、PLLI2S时钟
3、LSE低速外部时钟:供给实时时钟RTC 、时钟输出1MCO1
4、HSE低速外部时钟:供给系统时钟 、实时时钟RTC 、主PLL时钟 、PLLI2S时钟 、时钟输出1MCO1 、时钟输出2MCO2
5、主PLL时钟:供给系统时钟 、外设时钟 、时钟输出1MCO1 、时钟输出2MCO2
6、PLLI2S时钟::供给I2S时钟 、时钟输出1MCO1 、时钟输出2MCO2

HSI、HSE、主PLL时钟都可以供给系统时钟 ,STM32的很多外设是挂载在AHB、APB总线桥上的,这些外设的时钟又是怎么样的,这就和系统时钟的流向有关了, 系统时钟的流向分析如下:
1、供给时钟输出2MCO2
2、供给以太网PTP时钟
3、经AHBPRESC预分频器 后:HCLK到AHB总线、内核、存储器和DMA ,到Cortex系统定时器 ,自由运行时钟
4、经AHBPRESC预分频器 、APBxPRESC预分频器 后:供给APBx外设时钟
5、经AHBPRESC预分频器 、APBxPRESC预分频器后 ,再经倍频条件判断 处理后:供给APBx定时器时钟

用多个时钟源、分层控制时钟的好处:
1、一个外设有多个时钟源:可以根据需要选择相应频率的时钟源。
2、分层、分开控制外设时钟:使得各个外设的时钟都是可控的,各个外设有对应的时钟控制开关,实际应用过程根据需要开启相应外设时钟,不需要的外设时钟不开启,可以降低功耗。

有了以上对STM32时钟树的理解后,我们知道了各个时钟源的输入和输出后,可以进一步理解STM32时钟树:
1、从时钟源的输入到输出这两个节点,中间过程,是怎么处理的:即STM32时钟树涉及的的分频器、倍频器该怎么配置,即如何配置系统时钟、外设时钟?
本文尚未涉及该问题分析。


猜你喜欢

转载自blog.csdn.net/bulebin/article/details/73433677