一文读懂STM32时钟树(时钟系统)(以STM32F767为例)

本文记录了作者学习STM32/单片机时钟系统的心得。介绍了时钟系统是MCU的脉搏和外设开关,阐述了时钟系统的构成,包括时钟源、系统时钟、分/倍频器和外设。还说明了不同时钟源及其频率,以及系统时钟的驱动选择。最后指出查看芯片时钟框图可获取时钟源、系统时钟驱动和外设挂载信息。

导读

我在刚开始接触STM32/单片机的时候看到它的时钟系统/时钟树,都会感觉懵懵的,这是个啥?它想要告诉我哪方面的数据?特此一文记录一下学习心得。

时钟系统——MCU的脉搏,也可以理解为外设的开关,不打开它外设就没办法运行,每个外设都有其对应的时钟线(APBx、AHBx)。
MCU的资料文档一般都会有芯片的时钟系统框图👇

STM32F767IGT6时钟树
在这里插入图片描述
51单片机CH552G时钟框图
在这里插入图片描述

时钟系统的构成

  1. 时钟源
  2. 系统时钟
  3. 分/倍频器
  4. 外设

注意

这里要先区分一些时钟系统、系统时钟、时钟源的概念
时钟系统指的是这整个包含时钟源、系统时钟的系统
时钟源指的是产生一定频率的时钟
系统时钟指的是由时钟源驱动的一个时钟

F767里面,总共有5个时钟源:

  1. LSI(内部低速时钟源)
  2. LSE(低速外部时钟源)
  3. HSI(高速内部时钟源)
  4. HSE(高速外部时钟源)
  5. PPL (锁相环)

记住:
L:低速时钟 H:高速时钟
I: 内部时钟 E:外部时钟

下面2张图是分别5个时钟源及其对应的频率
在这里插入图片描述
在这里插入图片描述

外部时钟一般由外部晶振产生,会相对比较准确一些。
而系统时钟则是由时钟源驱动产生的,具体由哪个时钟源驱动,则需要看时钟框图了。

STM32F767IGT6👇
在这里插入图片描述

可以看到,(系统时钟)SYSCLK有3路选择,HSI、HSL和PLLCLK均可以作为SYSCLK的时钟源,图中的梯形可以理解为一个选择器,3选1,同理时钟框图中的其他梯形也是同样的意思。

PLL在这篇文章里已经出现过2次了,它又是个啥?
在这里插入图片描述

它是由HSL或者HSI驱动产生的一个时钟,先经过分频器M,再经过倍频器N,再经过分频器P出来,形成PLL时钟源,供给外设或者系统时钟使用的。

PLL计算公式 : x=f / m * n / p
x为PLL频率,f为输入时钟源(HSL、HSI)时钟频率,m、p为分频器,n为倍频器

在这里插入图片描述
由这个图可以看出,SYSCLK出来后经过分频器,分配给AHB、APB或者其他时钟线,那么挂在这些时钟线上面的外设想要使用,就必须先使能相对应的时钟。

总结

所以我们在拿到一款新的芯片时,查看它的时钟框图,可以获取这些信息:

  1. 时钟系统有哪几个时钟源,频率分别为多少
  2. 系统时钟SYSCLK可以由哪几个时钟源驱动
  3. 哪些外设分别挂在哪个时钟线或者时钟源上
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值