STM32之RCC原理

1、时钟源

 STM32 中,一共有 个时钟源,分别是 HSI  HSE  LSI  LSE  PLL 

 HSI 是高速内部时钟, RC 振荡器,频率为 8MHz 

 HSE 是高速外部时钟,可接石英 陶瓷谐振器,或者接外部时钟源,频率范围是 4MHz – 16MHz 

 LSI 是低速内部时钟, RC 振荡器,频率为 40KHz 

 LSE 是低速外部时钟,接频率为 32.768KHz 的石英晶体;

 PLL 为锁相环倍频输出,严格的来说并不算一个独立的时钟源, PLL 的输入可以接 HSI/2  HSE 或者 HSE/2 PLL倍频可选择为 2 – 16 ,但是其输出频率最大不得超过 72MHz 

其中, 40kHz  LSI 供独立看门狗 IWDG 使用,另外它还可以被选择为实时时钟 RTC 的时钟源。另外,实时时钟 RTC 的时钟源还可以选择LSE ,或者是 HSE  128 分频。

STM32 中有一个全速功能的 USB 模块,其串行接口引擎需要一个频率为 48MHz 的时钟源。该时钟源只能从 PLL 端获取,可以选择为 1.5 分频或者 1 分频,也就是,当需使用到 USB 模块时, PLL 必须使能,并且时钟配置为 48MHz  72MHz 

另外 STM32 还可以选择一个时钟信号输出到 MCO  (PA.8) 上,可以选择为 PLL 输出的 2 分频、 HSI  HSE 或者系统时钟。

系统时钟 SYSCLK ,它是提供 STM32 中绝大部分部件工作的时钟源。系统时钟可以选择为 PLL 输出、 HSI  HSE 。系系统时钟最大频率为72MHz ,它通过 AHB 分频器分频后送给各个模块使用, AHB 分频器可以选择 1  2  4  8  16  64  128  256  512 分频AHB分频器输出的时钟送给 5 大模块使用:

       送给 AHB 总线、内核、内存和 DMA 使用的 HCLK 时钟;

       通过 8 分频后送给 Cortex 的系统定时器时钟STCLK

       直接送给 Cortex 的空闲运行时钟 FCLK 

       送给 APB1 分频器。 APB1 分频器可以选择 1  2  4  8  16 分频,其输出一路供 APB1 外设使用( PCLK1 最大频率 36MHz),另一路送给定时器 (Timer)2  3  4 倍频器使用。该倍频器根据PCLK1的分频值自动选择 1 或者 2 倍频,时钟输出供定时器 2 3  4 使用。

       送给 APB2 分频器。 APB2 分频器可以选择 1  2  4  8  16 分频,其输出一路供 APB2 外设使用( PCLK2 ,最大频率 72MHz),另外一路送给定时器 (Timer)1 倍频使用。该倍频器根据PCLK2的分频值自动选择1  2 倍频,时钟输出供定时器 1 使用。另外 APB2分频器还有一路输出供 ADC 分频器使用,分频后送给 ADC 模块使用。 ADC 分频器可选择为 2  4  6  8 分频

需要注意的是定时器的倍频器,当 APB 的分频为 1 时,它的倍频值为 1 ,否则它的倍频值就为 2 

 

2APB1APB2连接的模块

①连接在 APB1( 低速外设 ) 上的设备有:电源接口、备份接口、 CAN  USB  I2C1  I2C2  UART2  UART3  SPI2 、窗口看门狗、 Timer2  Timer3  Timer4  注意 USB 模块虽然需要一个单独的 48MHz 的时钟信号,但是它应该不是供 USB 模块工作的时钟,而只是提供给串行接口引擎 (SIE) 使用的时钟。 USB 模块的工作时钟应该是由 APB1 提供的。

②连接在 APB2 (高速外设)上的设备有: UART1  SPI1  Timer1  ADC1  ADC2  GPIOx(PA~PE) 、第二功能 IO 口。

 

你可能感兴趣的:(STM32)