stm32f10时钟树详解

stm32f10参考手册 时钟树

stm32f10时钟树看着复杂,但其实只要稍加分层,依据分层逐步分析,很快就能搞懂。本文把时钟树分为三个部分逐层讲解,这三部分为时钟源、时钟分频/倍频、时钟输出。

时钟源提供时钟信号,时钟信号再经过分频或者倍频到合适的频率,就能输出到对应IO口或者其它模块。

电路符号

这一节介绍逻辑门和数据选择器,如果你可以读懂时钟树的电路符号就可以跳过本节。

数据选择器

数据选择器

上图所示的就是数据选择器,右边A和B成为数据输入端,左边的Z成为数据输出端,通过控制S0的信号,就可以控制Z输出A的信号或者是B的信号。例如,若S0为0,则Z输出的就是来自A的信号。

时钟树中,像下面这样的就是数据选择器:

时钟树里的数据选择器

逻辑门

逻辑门

限于篇幅原因,各个逻辑门的作用不再展开,可以参考下面这个链接:逻辑门-抖音百科

时钟树只用到了与门:

与门

上图表示,外设时钟使能这个引脚必须为1,另一个引脚的信号才有效(外设时钟使能如果为0,那么无论另一个引脚输入是什么,输出都为0)。

时钟源

如图,红框标红的即为时钟源,读图时注意右下角的图例:

时钟源

1️⃣和3️⃣都是stm32f10的内部时钟,结合右下角图例可以清楚地知道,1️⃣为高速内部时钟,频率为8MHz;3️⃣为低速内部时钟,频率为40kHz。这一部分比较简单,不需要过多解释。

2️⃣是外部时钟信号,顾名思义,需要外部提供时钟源电路,这里的OSC_OUT、OSC_IN、OSC_OUT32、OSC_IN32就是引脚标号:

外部时钟源

查询数据手册(这里是stm32f103x8数据手册),可以看到PC14、PC15、PD0、PD1就是用来提供时钟源的四个引脚:

stm32f103x8数据手册 引脚定义

查看最小系统版的原理图,也能看到这四个IO口确实连接了时钟电路:

stm32最小系统版 绿色框就是时钟电路

时钟电路 可以看到确实连接了stm32的引脚

从图中可知,OSC_OUT、OSC_IN引脚的HSE(高速外部时钟)为总线提供时钟,连接的时钟频率在4-16Mhz即可(一般为8MHz);而OSC32_OUT、OSC32_IN引脚的LSE(低速外部时钟)主要用于RTC(实时时钟),要求时钟频率为32.768kHz。

外部时钟

时钟分频/倍频

如图所示,红色框标注起来的都是分频或倍频器:

时钟树

其中/n(n=1,2,3......)表示n分频。例如这里的“/2”,就表示将前面的时钟频率除以2,如果前面频率为8MHz,经过2分频就是4MHz:

X n 表示n倍频,n也叫做倍频因子。例如这个倍频器,它的倍频因子的范围是2~16,具体是多少要看寄存器的配置:

时钟输出

时钟树

红框框起来的就是输出了,输出的地方很多,这里就不一一讲解了,在实际应用中会慢慢熟悉的,哪里有疑惑,上网搜搜就好了。

这里简单提一下下面这个输出:

MCO 是 microcontroller clock output 的缩写,是微控制器时钟输出引脚,这个引脚连接外设,就可以为外设提供时钟源。

一些补充:本文时钟源分类和参考手册上的不一样?

读者查看参考手册时,可能会看到下图的内容:

stm32f10参考手册 6.2 时钟

读者可能会感到疑惑:本文的时钟源分类怎么和参考手册上的不一样?

这样分类其实是为了讲解方便,便于理解,不用太过纠结,学会如何读图、根据图来配置时钟树就好。

另外,PLL时钟可能有点令人难以理解,这里贴上它的解释:锁相环(PLL)基本原理 | Analog Devices

锁相环(PLL)基本原理

可以简单理解为:PLL时钟=时钟信号+锁相环。其中锁相环的作用就是净化时钟信号,然后输出高质量的高频信号。

  • 52
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值