跳到主要内容

08 RCC

up的视频讲解

先找时钟从哪里来,再看倍频与分频,最后把时钟树和复位电路连接起来。

1 RCC 管理时钟与复位​

RCC 是复位与时钟控制模块。时钟决定内核和外设的工作节拍,复位则让相关电路回到规定的初始状态。

总线把外设分组,时钟也沿相应路径分配。
总线把外设分组,时钟也沿相应路径分配。

一个外设即使已经连接引脚,没有开启相应时钟也不能正常工作。配置时钟时,需要同时回答三个问题:来源是什么、频率是多少、送到哪里。

2 沿着时钟树找到主时钟​

从左侧时钟源开始,沿选择器、倍频器与分频器向右阅读。
从左侧时钟源开始,沿选择器、倍频器与分频器向右阅读。

外部高速时钟 HSE​

课程开发板使用 8 MHz 外部晶体。时钟进入芯片后,可以经过 PLL 倍频,再被选择为系统时钟 SYSCLK。课程常用的配置是 8 MHz × 9 = 72 MHz。

跟随 HSE → PLL → SYSCLK,先确定系统时钟的来源。
跟随 HSE → PLL → SYSCLK,先确定系统时钟的来源。

系统时钟之后还有分频:AHB 得到 HCLK,APB1、APB2 分别得到相应的外设总线时钟。不同外设有各自的工作频率限制,不能简单地认为所有外设都运行在 72 MHz。

到达具体外设前,继续核对沿途的分频与倍频关系。
到达具体外设前,继续核对沿途的分频与倍频关系。

定时器时钟还要结合 APB 分频设置判断。后面计算定时周期时,应使用实际的定时器输入时钟,而不是直接套用系统时钟。

内部高速时钟 HSI​

HSI 来自芯片内部的 RC 振荡器。它不需要外部晶体,芯片复位后先使用这一路时钟,再由启动配置切换到课程需要的时钟路径。

内部时钟与外部时钟是不同来源,选择和切换由 RCC 管理。
内部时钟与外部时钟是不同来源,选择和切换由 RCC 管理。

3 低速时钟服务于哪些功能​

时钟源来源课程中的关联功能
LSE外部低速晶体实时时钟 RTC 的时钟选择之一
LSI内部低速 RC独立看门狗 IWDG 等功能
RTC 有独立的时钟选择路径,需要结合开发板是否安装低速晶体判断。
RTC 有独立的时钟选择路径,需要结合开发板是否安装低速晶体判断。

独立看门狗使用独立的低速时钟。程序按规定刷新计数;如果长时间没有刷新,看门狗就可以触发复位。这种机制用于发现程序失去正常运行节奏的情况。

4 复位信号如何汇合​

外部复位、看门狗等来源,最终进入相应的复位控制通路。
外部复位、看门狗等来源,最终进入相应的复位控制通路。

复位可能来自外部 NRST 引脚,也可能由内部机制触发。分析复位问题时,既要看板上的按键与 RC 电路,也要看软件是否启用了看门狗等功能。

时钟配置决定“电路以什么节拍运行”,复位配置决定“从什么状态重新开始”。把这两个问题分开,时钟树和复位框图就容易读懂。