第八章 RCC使用HES/HSI

1、RCC主要作用 时钟部分

设置系统时钟SYSCLK、设置AHB分频因子(决定HCLK等于多少)、设置APB2分频因子(决定PLCLK2等于多少)、设置APB1分频因子(决定PLK1等于多少)、设置各个外设的分配因子。控制 AHB、APB2 和 APB1 这三条总线时钟的开启、控制每个外设的时钟的开启。对于 SYSCLK、HCLK、PCLK2、PCLK1 这四个时钟的配置一般是:HCLK = SYSCLK=PLLCLK ,PCLK1=HCLK/2,PCLK1=HCLK/4 。

2、RCC时钟树

库函数时钟系统始终函数:SetSysClock()。

HSE时钟树设置为:

HCLK=SYSCLK=PLLCLK=180M(F429)

PCLK1=HCLK/2=90M(F429)

PLCK1=HCLK/4=45M(F429)

https://cdn.jsdelivr.net/gh/weixuna/MyPic/24/3/image_f4eb27007cd32cb5a5c1b1e612c5066f.png

2.1系统时钟

2.1.1

HSE是高速的外部时钟信号,有无源/有源晶振提供,频率4-26MHZ。

有源晶振,时钟从OSC_IN引脚进入,OSC_OUT引脚悬空。

无源晶振,时钟从OSC_IN,OSC_OUT进入,配合谐振电容。

2.1.2 锁相环PLL

PLL的主要作用是对时钟进行倍频,然后将时钟输出到各个功能部分。

PLL和PLLI2S,他们由HSE或者HSI提供时钟输入信号。

主PLL有两路时钟输出,第一个输出时钟是PLLCLK用于系统时钟,F429最高时180M,第一个时用于USB OTG FS的时钟(48M)、RNG和SDIO时钟(<=48M)专门用于PLLI2S生成精准时钟,给I2S提供时钟。

HSE或者HSI经过PLL时钟输出分频因子M(2~63)分频后,称为VCO的时钟输入,VCO的时钟必须在1 ~2M,选择HSE=25M作为PLL的时钟输入,M设置25,VCO输入时钟必须等于1M。

2.1.3 系统时钟SYSCLK

系统时钟来源可以时HSI、PLLCLK、HSE,具体由时钟配置寄存器RCC_CFGR的SW位配置。SYSCLK=PLLCLK=180M。

如果系统时钟是由HSE经过PLL倍频之后的PLLCLK得到,当HSE出现故障的时候,系统时钟会切换HSI=16M,知道HSE恢复正常。

2.1.4 AHB总线时钟HCLK

系统时钟经过AHB预分频器分频之后得到的时钟是叫AHB总线时钟,就是HCLK,分频因子可以是[1,2,4,16,64,128,256,512],具体由时钟配置寄存器RCC_CFGR的HPRE

位设置。片上大部分外设时钟都是HCLK分频德奥,AHB总线的外设设置时使用外设的时候设置。

2.1.5 APB2总线时钟PCLK2

AHB2总线是由PCLK2由HCLK经过高速APB2预分频器得到,分频因子可以是[1,2,4,16],由时钟配置寄存器RCC_CFGR的PRPE2位设置。PCLK2属于高速的总线时钟,片上高速的外设就挂载到这条总线,比如全部的GPIO、USART1、SPI1等。

2.1.6 APB1 总线时钟PCLK1

APB1总线时钟PCLK1由HCLK经过低速APB预分频器得到,分频因子可以是[1,2,4,16],由RCC_CFGR的PPRE2位设置。PCLK2属于低速的总线时钟,最高为45M(F429),片上低速的外设挂载到这条总线上,比如USART2/4/5,SPI2/3,I2C1/2。