STM32-时钟系统

STM32F103x8时钟树

1.SysCLK左侧时钟分析

  • HSE即外部高速晶振可以不分频或二分频经过PLLSRC(PLL entry clock source),该开关用来选择HSE/HSI其中之一,下一步经过PLLMUL(PLL multiplication factor),使PLLSRC倍频n倍得到PLLCLK的时钟频率。接着经过SW,该开关用来选择HSI/HSE/PLLCLK其中之一作为SYSCLK,SYSCLK最终最高频率72Mhz。
  • LSE即外部低速晶振输入后即经过RTCSEL,该开关用来选择HSE的128分频/LSE/LSI其中之一作为实时时钟系统晶振源。
  • HSI即内部高速晶振工作方式与外部高速晶振基本一致,不再赘述。
  • LSI即内部低速晶振在上文有提到,它另外的一个作用是看门狗的时钟。

2.SysCLK右侧时钟分析

  • SysCLK前PLLCLK通过不分频或或1.5倍频得到48Mhz频率作为USBCLK。
  • SysCLK总线经过AHB预分频器得到AHB总线频率,最高频率72Mhz。
  • AHB总线可通过一与门来决定是否将其提供给后面的AHB总线、内核、内存、DMA,因此它是STM32运行速度的决定因素。
  • AHB总线经过8分频后可以作为Cortex System Timer的时钟,即滴答定时器的时钟。
  • AHB总线不分频可以作为FCLK时钟频率,即内核自由运行时钟。它可以在处理器休眠时提供独立的时钟以响应中断、跟踪休眠时间、采样等,它与HCLK同步。
  • AHB总线经过APB1预分频器得到APB1总线频率,最高频率36Mhz。
  • APB1可通过一与门来决定是否将其提供给后面的外设。
  • APB1总线可以不倍频或2倍频将其提供给TIM2,3,4.默认是2倍频状态,因此TIM2,3,4默认时钟频率为2*APB1频率。
  • APB2总线与上述同理,不过是最大频率翻倍和为ADC提供时钟,不再赘述。