【stm32学习笔记】stm32时钟树讲解

参考教程

先前学单片机的时候对时钟不是很懂,只是知道要用,看到了这个教程,讲的很好。

【STM32】超清晰STM32时钟树动画讲解_哔哩哔哩_bilibili

以下为该视频的笔记:

一、时钟信号的必要性

1. 微观层面

背景

如图,若A=1,B=1,则理论上寄存器中的值为0

若受外部影响,变成B=0,则理想状态下寄存器中的值为0 ,寄存器中的值不变

光速传播的电信号,我们可以忽略不计其传播延时,整个B线在瞬间就变为了低电平,但逻辑门内部的运算涉及了MOS管的充放电过程 ,因而在与门上在运算 的这段时间中,亦或门两输入端就是一低一高 两种不同的电平,这就造成了异或门在这段时间中的输出变为了高电平

寄存器中的数据也就变为了1

直到与门完成运算输出了低电平,最终寄存器又恢复了其应有的状态0。

解决方法

只要在寄存器前放置一个边缘触发器

边缘触发器有一个输入端,一个输出端,另外还有一个控制端

其特性是,出现一个由低电平变为高电平的上升延时,输出端会变为输入端的电平,其他时候任由输入端如何变化,便沿触发器的输出端也岿然不动。

因而有了这边缘触发器之后,我们为其控制端接入一个一定频率的方波信号,方波的一个周期内,门电路之间运算产生的任何副作用都不会影响到寄存器的值,而等一切都稳定后,方波的上升沿到达最终的运算结果才会进入到寄存器,完美的为计算器规避了门电路运行中的混乱状态,而这个好似脉搏的方波信号,就是我们所说的时钟信号。

2. 外设层面

以上这些外设都需要精确的计时,告知这些外设时间的流失去

二、时钟树

在STM32芯片内部有一个叫AHB的总线结构 ,其全称翻译成中文就是先进高性能总线 ,它就像ST M32芯片的主干道,STM32芯片中的处理器、内存、DNA以及各种外设都连接到这一总线上,通过这一总线进行数据通信,而HCLK就是AHP总线中的时钟线。

HCLK的频率是72兆赫兹的话,这些东西的时钟频率便也是72兆赫兹,赫兹是一个频率单位,一赫兹就是一秒一次,两赫兹就是一秒两次,兆就是百万的意思,72兆赫兹便是每秒7,200万次运算。

另外在处理器内核中有一个称为system tick系统滴答的定时器,用于为我们的程序提供一个时间基准。与刚刚的直连不同,而且clk与system tick的连接中多了一个分频器,分频器的作用就是可以为频率做除法。

接下来我们再来了解一下外设的时钟,在STM32芯片中,像gpo串口i2 C的外设并没有直接连接在AHB总线上,而是分门别类的分别连接到了两个APB总线上,APB先进外设总线,顾名思义这两个APP就是专门用来连接外设的,还有一个可以设置的域分频器进行分频,分频后的时钟信号我们称之为PCLK提供给了除定时器外的其他外设,而定时器比较特殊,它在前面多了一个倍频器,用来将频率再提升上去。

依次类推:这样时钟树就出来了。

更多的关于时钟树的讲解看视频。