沐印
1224 字
6 分钟
嵌入式 - 时钟树(转)
2024-07-05

https://blog.csdn.net/qq_48361010/article/details/134345056

本文目录#

一、什么是时钟?#

   时钟是单片机的脉搏,是系统工作的同步节拍。单片机上至 CPU,下至总线外设,它们工作时序的配合,都需要一个同步的时钟信号来统一指挥。时钟信号是周期性的脉冲信号。

二、什么是时钟树?#

   STM32 有很多外设器件,每个器件的时钟信号不一样,所以要将一个固定的信号频率进行倍频 / 分频处理,达到每个外设需要的频率。时钟信号的分频就像树的分支一样,这就是时钟树。

三、时钟介绍#

HSI(内部高速时钟): 时钟信号由内部 RC 震荡电路提供,时钟频率为 8MHz,但是这个时钟频率会随着温度产生漂移,很不稳定,所以一般不使用此时钟信号。
LSI(内部低速时钟): 时钟信号由内部 RC 振荡电路提供,时钟频率一般为 40KHz,这个信号一般用于独立看门狗时钟。
HSE(外部高速时钟): 时钟信号由外部晶振提供,时钟频率一般在 4-16MHz,是经常会用到的时钟源。
LSE(外部低速时钟): 时钟信号由外部晶振提供,时钟频率一般为 32.768KHz,这个信号一般用于 RTC 实时时钟。

四、时钟框架图#

image

五、框架图分析#

(1)外部低速时钟 LSE,外接引脚 OSC32_IN 和 OSC32_OUT 就是接外部晶振的引脚,进来的频率是 32.768KHZ 进来后只有一个走向就是为 RTC 提供时钟。

(2) RTCCLK 蓝色框的四选一数据选择器,一共有三个输入,一个来自最上方的 HSE,中间经过了一个 128 的分频器。一个是 LSE 以及最下方的 LSI 时钟。也就是说看门狗智能由内部低速时钟 LSI 提供时钟,RTC 可以由 LSI、LSE、或者是 HSE 经过分频后来提供时钟,具体使用哪一个需要我们在代码里面配置。

(3) PLL 锁相环中的数据选择器有两个输入,一个是内部高速时钟 HSI 经过 2 分频连接。另一个输入是外部高速时钟 HSE 经过 1 分频或 2 分频输出后连接。经过数据选择器后,进行倍频操作供给系统时钟。对于系统时钟一般选择 HSE 时钟经过 PLL 锁相环倍频后的时钟作为系统时钟。倍频系数可选范围:2~16。
   注:一般在 PLL 锁相环中数据选择器中我们选择来自外部高速时钟 HSE 的时钟信号,因为 HSI 时钟信号很不稳定,容易受到环境的影响。

(4)对于系统时钟选择器,一共有四个输入。最上面为 HSI 时钟输入,中间为 PLLCLK 时钟输入,下面两个分别是 HSE 时钟直接输入,以及在 HSE 后加入 CSS 时钟安全检测标志后输入。

六、示例#

外部晶振电路:

image

连接外部高速时钟:

image

假如外部时钟晶振频率为 8MHz,如何设置 72MHz 的系统时钟?
   答:HSE 接入 8MHz 的外部震荡信号,由 PLLXTPER 进行选择进行 1 分频还是 2 分频,假如是 1 分频,则 8MHz 的时钟信号来到了 PLLSRC 控制选择的位置,配置 PLLSRC,选择进入 PLL 锁相环的时钟信号源,假设来自 HSE 的信号选通,则 8MHz 的信号来到锁相环中,配置 PLLMUL,可以选择倍频系数,假设倍频系数选为 9,则 PLL 输出 72MHz 的时钟信号,SYSCLK 前面的梯形的选择逻辑控制着 SYSCLK 时钟信号来自于 3 个接入信号 HSE、HIS、PLLCLK 中的哪一个,通过 SW 和 CSS 控制,选择 PLLCLK 后,系统就可以获得 72MHz 的时钟频率了。这个 CSS 是时钟安全保护系统,主要是在 HSE 出现故障时发生 NMI 中断(不可屏蔽中断,产生这个中断的时候,表示系统发生了致命的错误),具体要看手册 59 页信息介绍。
   为了减少功耗,STM32 上外设的时钟初始状态默认为关闭,如需使用外设,则必须开启外设时钟。譬如我们现在要使用外设 GPIOB,则系统时钟 SYSCLK 要通过预分频器 AHB 分频,再进入 APB2 总线进行再分频(GPIOB 是挂载在 APB2 总线上的外设),时钟信号的输入和外设时钟使能位接在一个与门上,当要使用外设时,需要将这个使能位置 1,配置完成之后,GPIOB 方可正常工作。

嵌入式 - 时钟树(转)
https://f.undf.top/posts/post/code/embedded/找工作/嵌入式---时钟树转/
作者
沐印
发布于
2024-07-05
许可协议
CC BY-NC-SA 4.0