STM32时钟源,结合时钟树进行了解
STM32的时钟来源
时钟源定义
无论是单片机或者微处理器,其核心的实现主要在于大量的时序逻辑电路,而驱动时序逻辑电路的动力就是时钟源。简单来说,没有时钟源,时序逻辑电路的功能就无法实现。而STM32的时钟源就是我们常说的晶振(晶体振荡器)。
时钟树解读
STM32存在内部时钟和外部时钟,内部时钟是芯片内部的RC振荡器起振,起振较快,所以时钟在芯片上电的时候,默认使用内部高速时钟。而外部时钟由外部晶振输入,相对来说更加地准确和稳定,所以上电之后可以转而使用外部时钟信号。
如图一的时钟树所示,STM32的外部时钟源有四种,HSE(high speed external clock signal,高速外部时钟信号)、HSI(high speed inside signal)、LSE、LSI。而常说的第五种PLL时钟源其实是由HSE或HSI倍频后得到的。
高速时钟信号提供给系统的主时钟,低速时钟信号主要提供给RTC时钟以及独立看门狗(IWDG)。从图一也可以看出高速时钟信号也可以提供给RTC时钟。
- HSE的信号频率为4-16MHz,但常用的是8MHz,由外部时钟源或晶振产生。
- HSI的信号频率为8MHz,由内部8MHz的RC振荡器产生。RC振荡器能够在不需要任何外部器件的条件下提供系统时钟,但即使在校准之后,其精准度仍然较差。
- LSE的信号频率为32.768kHz,由外部的晶振/陶瓷产生,为实时时钟或者其他定时功能提供一个低功耗且精确的时钟源。
- LSI其信号频率为40kHz,其作为一个低速时钟源,能够在停机或待机状态下保持运行,为独立看门狗和自动唤醒单元提供时钟。
系统时钟由HSI、HSE、PLL时钟驱动,当不被使用时,任何一个时钟源都可以被独立地启动或关闭,从而优化系统功耗。其是大部分器件的时钟来源,主要由AHB预分频器分配到各个外设使用。