目录
一、整体框图
思维导图:
二、主系统时钟
1、HSE:外部高速时钟
- 无源或有源晶振提供,通常为 8 M
- 通过RCC_CR寄存器的位16:HSEON控制,1开启。
位17:HSERDY,HSE准备好时为1
与之对应的有HSI(内部高速,温度影响精度不高),LSE(外部低速),LSI内部低速
2、HSI:内部高速时钟
- 芯片内提供,为 8 M,HSE故障时自动切换到HSI,直到HSE启动成功
- 温度影响精度不高
- 通过RCC_CR寄存器的位0:HSION控制,1开启。
位1:HSIRDY,HSE准备好时为1
3、PLL:锁相环时钟(倍频器)
- 选择进入锁相环的时钟源,RCC_CFGR位16:PLLSRC控制,1/0(HSE/HSI)
- 如果HSE为时钟源,RCC_CFGR位17:PLLXTEER控制,1/0(2分频/不分频)
(HSI固定2分频)
- 先择倍频系数,RCC_CFGR位21~18:PLLUML控制,0000~1110分别为2~16倍频
4、SYSCLK:系统时钟
- 选择系统使用的时钟,RCC_CFGR位1~0:SW控制,00/01/10(HIS/HSE/PLL)
位3~2:SWS系统时钟准备完毕后呈现相应的值
5、HCLK:AHP系统总线预分频
- 为AHP系统总线外设,Cortex系统定时器(SysTick),内核(FCLK)提供时钟
- 选择分频系数,RCC_CFGR位7~4:HPRE控制,一般为0XXX不分频
6、PCLK1/PLCK2:APB1低速总线时钟/APB2高速总线时钟
- 除非要用到定时器2~7,否则APB1最高只能36M
选择分频系数,RCC_CFGR位10~8:PPRE1控制,0XX,100~111(不分频,2/4/8/16)
- APB2最高能到72M
选择分频系数,RCC_CFGR位13~11:PPRE2控制,0XX,100~111(不分频,2/4/8/16)
7、ADCCLK:ADC预分频
- 最高14M
- 选择分频系数,RCC_CFGR位15~14:ADCPRE控制,00~11(2/4/6/8)
三、时钟树其他时钟
1、RTCCLK:RTC时钟
- 为芯片内部RTC外设提供时钟
- 选择时钟源,RCC_BDCR位9~8:RTCSEL控制,00~11(无/LSE/LSI/HSE 128分频)
2、IWDGCLK:独立看门狗时钟
- 由LSI提供
四、MCO时钟输出
由PA8复用而来
- MCO时钟输出搭配示波器可用于检测以上配置的正确
- 选择输出时钟源,RCC_CR的位26~24:MCO控制,0XX,000~111(无/SYSCLK/HSI/HSE/PLL 二分频)
五、时钟安全系统
时钟安全系统可以被软件激活,当HSE时钟发生故障将会导致:
- 产生CSSI中断,允许软件完成营救操作(数据保存,配置自动使用的HSI时钟等)
- 产生NMI内核异常中断,它会被不断执行,所以INM程序里需要有能力通过RCC_CIR里的位23:CSSC来清除CSS中断
- HSE关闭,如果HSE经过PLL倍频作为系统时钟,那么PLL也会被关闭