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时钟树涉及的的分频器、倍频器该怎么配置,即如何配置系统时钟、外设时钟?
本文尚未涉及该问题分析。
赞 (0)