IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 全方位stm32时钟解析,含时钟树解析 -> 正文阅读

[嵌入式]全方位stm32时钟解析,含时钟树解析

首先什么是时钟

众所周知,stm32有众多时钟,那么回到最基本的,什么是时钟呢,那么简单来说,时钟就像是单片机的脉搏,是单片机的驱动源,使用任何一个外设都必须打开相应的时钟。每个时钟一到,系统都会处理一步数据,这样才能让工作不出现紊乱。

时钟产生的原理

简单的说,没有晶振就没有时钟周期,就无法执行程序代码,单片机就无法工作。它主要是由石英晶体做成的,它和外电路产生谐振,用来控制CPU的时钟频率,也就是产生高低电平的周期,一般来说,频率越高处理速度越快。


单片机工作时,是一条一条地取指令,然后一步步地执行。单片机访问一次储存器的时间,称为一个机器周期,这是一个时间基准。一个机器周期包括12个时钟周期。如果单片机选择了12MHz的晶振,它的时钟周期就是1/12us,它的机器周期就是12*(1/12)us,也就是1us访问一次存储器。

为什么要设置不同的时钟呢

首先,任何外设都需要时钟,51单片机,stm32等等。51单片机不需要配置时钟,是因为一个时钟使能之后所有相关的功能都可以用了,而这个时钟是默认开启的。stm32是低功耗的,它将所有的始终都默认设置为disable状态,在你需要用哪个时钟的时候,开哪个时钟就可以,也就是说用到什么外设,只要打开对应外设的时钟就可以,其他的没用到的就还是disable,这样能耗就会减少。


用一个简单的比喻来形容,单片机的资源就好比一个水库里的水,不同的时钟就好比很多个门,每个门都能出水,时钟可以是认为门的开关。在51单片机中一个时钟就把所有用到时钟的外设都控制了,而stm32的时钟是有分工的,而且每类时钟的频率不一样,因为没必要所有时钟都是最高频率的,只要够用就行了,就好比一个门分出来的水流的大小,你只要洗个脸,但是出来的是像洪水一般的水流,那就尴尬了,消耗能源也多,所有不同的时钟会有频率差别,或者在配置的时候可以配置时钟分频。

stm32中时钟的分类

在STM32F1中,有五个时钟源,为HSI、HSE、LSI、LSE、PLL

外部时钟

  • 高速外部时钟(HSE):外部时钟源,晶振频率可取范围为4~16MHz,我们一般采用8MHz的晶振。
  • 低速外部时钟(LSE):外部时钟源,主要提供给实时时钟模块,所以一般采用32.768KHz。

内部时钟

  • 高速内部时钟(HSI):由内部RC振荡器产生,频率为8MHz,但不稳定。
  • 低速内部时钟(LSI):由内部RC振荡器产生,也主要提供给实时时钟模块,频率大约为40KHz。

PLL时钟

  • Phase Lock Loop 为锁相环倍频输出,其时钟输入源可选择为HSI/2、HSE或者HSE/2。倍频可选择为2~16倍,但是其输出频率最大不得超过72MHz。

时钟树理解

在这里插入图片描述
在这里插入图片描述
对于stm32f4的板子

1、LSI低速内部时钟:由内部RC振荡器产生,频率为32kHz。如图区域
2、HSI高速内部时钟:由内部RC振荡器产生,频率为16MHz。如图区域
3、LSE低速外部时钟:一般由外部晶振提供,频率为32.768kHz。如图区域
4、HSE低速外部时钟:一般由外部晶振提供,频率为4~26MHz。如图区域
5、主PLL时钟:由HSE或HSI提供。如图区域
6、PLLI2S时钟:由HSE或HSI提供。如图区域

时钟的流向

我们已经知道了各个时钟源的输入,那么有了输入的时钟源,各个时钟源又是分别输出给哪些外设工作。我们分别从时钟源输入处开始,根据走线和结点,寻找到相应的输出。对应编号如下图中所示。

1、LSI低速内部时钟:供给独立看门狗⑴、实时时钟RTC⑵
2、HSI高速内部时钟:供给系统时钟⑸、时钟输出1MCO1⑷、主PLL时钟⑹、PLLI2S时钟⑺
3、LSE低速外部时钟:供给实时时钟RTC⑵、时钟输出1MCO1⑷
4、HSE低速外部时钟:供给系统时钟⑸、实时时钟RTC⑵、主PLL时钟⑹、PLLI2S时钟⑺、时钟输出1MCO1⑷、时钟输出2MCO2⑶
5、主PLL时钟:供给系统时钟⑸、外设时钟⑻、时钟输出1MCO1⑷、时钟输出2MCO2⑶
6、PLLI2S时钟::供给I2S时钟⑼、时钟输出1MCO1⑷、时钟输出2MCO2⑶

HSI、HSE、主PLL时钟都可以供给系统时钟⑸,STM32的很多外设是挂载在AHB、APB总线桥上的,这些外设的时钟又是怎么样的,这就和系统时钟的流向有关了,系统时钟的流向分析如下:
1、供给时钟输出2MCO2⑶
2、供给以太网PTP时钟⑽
3、经AHBPRESC预分频器⑾后:HCLK到AHB总线、内核、存储器和DMA⒁,到Cortex系统定时器⒂,自由运行时钟⒃
4、经AHBPRESC预分频器⑾、APBxPRESC预分频器⑿后:供给APBx外设时钟⒄
5、经AHBPRESC预分频器⑾、APBxPRESC预分频器后⑿,再经倍频条件判断⒀处理后:供给APBx定时器时钟⒅
在这里插入图片描述

在程序中的配置

在这里插入图片描述
在这里插入图片描述
不同寄存器的作用具体说明参考《stm32 Reference manual》

时钟总结

1:STM32共有5个时钟源。
2:系统始终SYSCLK可来源于三个时钟源:

  • HSI振荡器时钟
  • HSE振荡器时钟
  • PLL时钟

3:用户可以通过多个预分频器配置AHB,高速APB(APB2)和低速APB(APB1)域的频率。AHB和APB2的最大频率是72MHz。APB1的最大允许频率是36MHz。
4:当不被使用时,任意一个时钟源都可以被独立地启动或关闭,由此优化系统功耗。




参考:链接1 链接2

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-12-24 18:38:44  更:2021-12-24 18:40:10 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 14:50:33-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码