关于STM32L100xx, STM32L151xx, STM32L152xx ,STM32L162xx 的时钟

任何处理器,读到Clock时钟部分,总是费劲的。

系统时钟(system clock)SYSCLK可以来自四种时钟源:

  • HSI(high-speed internal)内部振荡器时钟

  • HSE(high-speed external)外部振荡器时钟

  • PLL时钟

  • MSI(multispeed internal)振荡器时钟

  启动复位/从Stop或Standby状态唤醒之后默认将MSI作为时钟源。

 

 设备包含下面的二级时钟源:

  • 37KHz低速RC(LSI RC)时钟,用来驱动独立看门狗和RTC(用以从Stop/Standby模式中唤醒)的一个时钟选项。

  • 32.768kHz低速外部晶体(LSE crystal),作为RTC的一个可选时钟(RTCCLK)。

 

 每个时钟源可以被独立的打开关闭,这便于优化功耗。

 多个预分频器允许配置AHB,高速APB2和低速APB1。AHB/APB2/APB1的最大值为32MHz.这决定于设备电压范围,详情参考PWR一章的Dynamic voltage scalling management一节。

 所有的外围时钟都来自SYSCLK,除了:

  • 48MHzUSB时钟和SDIO时钟,它们的时钟源来自PLL VOC时钟;

  • ADC时钟始终来自HSI时钟。分频1,2或者4用以根据设备运行条件而适应时钟频率。更多详细内容参考PWR一章的Operating Power Supply Range一节。

  • RTC/LCD时钟来自LSE,LSI或者1MHz的HSE_RTC(被编程分频的HSE)。

  • IWDG时钟始终来自LSI时钟

 系统时钟(SYSCLK)频率必须高于或等于RTC/LCD时钟频率。

 AHB时钟(HCLK)被8分频可以被用来作为Cortex System Timer(SysTick)外部时钟。SysTick可以来自这个时钟,也可以来自Cortex clock(HCLK),这可以根据SysTick的控制和状态寄存器配置。

 Timer的时钟频率自动由硬件锁定。有两种情形:

 1.APB预分频器为1,Timer时钟频率与所相连的APB是时钟频率一致;

 2.否则,Timer的时钟频率是所连的APB时钟的2倍。

 FCLK作为Cortex-M3的自由(Free running)时钟。详情参考ARM Cortex M3 Technical Reference Manual。

6.2.5 LSE时钟

 LSE晶体是一个32.768kHz的低速外部晶体或者陶瓷振荡器。它的优势在于为提供时钟/日历RTC外围模块提供时钟源。

 LSE晶体可以通过RCC_CSR寄存器的LSEON位开启或关闭。

 RCC_CSR寄存器上的LSERDY位则表示LSE晶体是否稳定。启动后,LSE晶体输出时钟信号直到该位置1才被释放。如果RCC_CIR寄存器上相应的位使能后,则稳定后将产生相应的中断。

 外部源(LSE旁路)

 该模式下,必须提供一个外部时钟源。频率最高可以达到1MHz。该模式可以通过设置RCC_CSR寄存器的LSEBYP和LSEON位为1而提供。大约50%占空比的外部时钟信号(方波,正弦波或三角波)驱动OSC32_IN引脚,OSC32_OUT引脚则可以作为GPIO。

6.2.13 时钟向外输出功能

 微处理器时钟输出(MCO)功能允许时钟经过分频器(1,2,4,8或者16)输出到外部MCO引脚(PA8)。相应的GPIO配置寄存器必须设置为外围功能模式。可以选择7种时钟信号之一作为MCO时钟输出。

     SYSCLK

     HSI

     MSI

     HSE

     PLL

     LSI

     LSE

 RCC_CFGR寄存器的MCOSEL[2:0]用来选择以上七种信号之一。


你可能感兴趣的:(时钟)