以下是关于STM32的时钟的小结:
STM32有三种不同的时钟源,分别是HSI振荡器时钟,HSE振荡器时钟,PLL时钟
两个二级时钟源:LSI时钟源,LSE时钟源
时钟树图,如下:
HSE时钟
HSE的两种产生方式:
- HSE外部晶体/陶瓷谐振器
- HSE用户外部时钟
HSE旁路
这个模式必须提供外部时钟。
外部时钟信号必须连接SOC_IN引脚,同时保证OSC_OUT引脚悬空。
HSE晶体
在时钟控制寄存器RCC_CR中的HSERDY位用来指示高速外部振荡器是否稳定。
HSE晶体可以通过设置时钟控制寄存器里RCC_CR中的HSEON位被启动和关闭。
HSI时钟
HSI时钟信号由内部8MHz的RC振荡器产生,可以直接作为系统时钟也可以进行2分频后作为PLL输入。
当HSI被用于作为PLL时钟的输入时,系统时钟能得到的最大频率是36MHz。
校准
通过时钟控制寄存器里的HSITRIM[4:0]位来调整HSI频率
PLL
内部PLL可以用来倍频HSI RC的输出时钟或HSE晶体输出时钟
主PLL以下述时钟源之一为输入,产生倍频的输出:
● HSI时钟除以2
● HSE或通过一个可配置分频器的PLL2时钟
PLL的设置:选择HSI振荡器2分频或HSE振荡器为PLL的输入时钟,和选择倍频因子,必须在其被激活前完成,同时在输入时钟稳定后才能使能。
如果PLL中断在时钟中断寄存器里被允许,当PLL准备就绪时,可产生中断申请。
LSE时钟
它为实时时钟或者其他定时功能提供一个低功耗且精确的时钟源。LSE的时钟频率为32.768kHz
LSE晶体在RCC_BDCR里的LSERDY指示LSE晶体振荡是否稳定。
LSE旁路
在这个模式里必须提供一个32.768kHz频率的外部时钟源。你可以通过设置在RCC_BDCR里的LSEBYP和LSEON位来选择这个模式。
外部时钟信号必须连到OSC32_IN引脚,同时保证OSC32_OUT引脚悬空。
LSI时钟
LSI RC是一个低功耗时钟源,LSI的时钟频率大约40kHz,可以在停机或待机情况下保存运行为独立看门狗和自动唤醒单元提供时钟。
如果独立开门狗启动,LSI振荡器将被强制打开。LSI振荡器稳定后,时钟供给给IWDG。
LSI RC可以通过RCC_CSR里的LSION位来启动或关闭。
在RCC_CSR里的LSIRDY位指示低速内部振荡器是否稳定。