概述
A device that generate perodic signals for timing.
时钟是单片机运行的基础,时钟信号推动单片机内各个部分执行相应的指令。 时钟系统就是 CPU 的脉搏,决定 cpu 速率,像人的心跳一样 只有有了心跳,人才能做其他的事情,而单片机有了时钟,才能够运行执行指令,才能够做其他的处理 (点灯,串口,ADC),时钟的重要性不言而喻。
描述时钟有两个符号:
T 时钟周期 ,表示时钟信号一个高电平和一个低电平总共所需要的时长(单位 s)
f 时钟频率,表示单位时间内可以产生多少个 时钟周期信号(振动次数)
T\times f=1
时钟的作用
利用时序逻辑电路,增加时钟信号来实现电路的同步工作,可以降低电路中的差错信号(毛刺)
一个解决方案:
可以约定在下降沿信号改变,在上升沿取得输出电平,则若占空比为 60%,则 $0.4T>\Delta t(差错时间)$
为什么 STM32 要有多个时钟源呢?
STM32 本身十分复杂,外设非常多 但我们实际使用的时候只会用到有限的几个外设,使用任何外设都需要时钟才能启动,但并不是所有的外设都需要系统时钟那么高的频率,为了兼容不同速度的设备,有些高速,有些低速,如果都用高速时钟,势必造成浪费 并且,同一个电路,时钟越快功耗越快,同时抗电磁干扰能力也就越弱,所以较为复杂的 MCU 都是采用多时钟源的方法来解决这些问题。所以便有了 STM32 的时钟系统和时钟树。
总括:
- STM32 时钟系统主要的目的就是给相对独立的外设模块提供时钟,也是为了降低整个芯片的耗能。
- 系统时钟,是处理器运行时间基准 (每一条机器指令一个时钟周期)
- 时钟是单片机运行的基础,时钟信号推动单片机内各个部分执行相应的指令。
- 一个单片机内提供多个不同的系统时钟,可以适应更多的应用场合。
- 不同的功能模块会有不同的时钟上限,因此提供不同的时钟,也能在一个单片机内放置更多的功能模块。
- 对不同模块的时钟增加开启和关闭功能,可以降低单片机的功耗
- STM32 为了低功耗,他将所有的外设时钟都设置为 disable(不使能) ,用到什么外设,只要打开对应外设的时钟就可以, 其他的没用到的可以还是 disable(不使能),这样耗能就会减少。 这就是为什么不管你配置什么功能都需要先打开对应的时钟的原因
时钟信号的产生 ZH CN
-
振荡器
速度太慢
-
晶振
- 有源
- 无源
STM32F4xx 时钟树(时钟系统)
- LSI :Low Speed Internal 内部低速时钟
- LSE:Low Speed External 外部低速时钟
- HSI :High Speed Internal 内部高速时钟
- HSE:High Speed External 外部高速时钟
本开发板上,
HSE_VALUE = 8M
PLLCLK = \frac{HSEVALUE\times N}{M \times P}
主频最高可达 168MHz
AHB BUS clock = \frac{PLLCLK}{AHBprescaler} AHBprescaler AHB 总线的预分频
APBx = \frac{AHBclock}{APBx prescaler} APBx prescaler APBx 总线的预分频
- APB1 : 低速外设总线,最高达 42M(预分频为 4)
- APB2 : 高速外设总线,最高达 84M(预分配为 2)
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于