目录

一、时钟树

1、时钟源

2、高速外部时钟信号(HSE)

3、低速外部时钟信号(LSE)

4、系统时钟(SYSCLK)

5、时钟输出(MCO)

6、AHB

参考文献


一、时钟树

本文以STM32F103为例,将本人所知的关于STM32的时钟系统的知识点展示出来。

先贴上STM32F1系列的时钟树

1、时钟源

由时钟树可以,对于STM32来说,时钟源一共有四个,分别为  LSI 、LSE 、HSE 、HSI。另外一种说法为五个,加上PLL。个人认为,根据上面这个时钟树也可以看出,PLLCLK是HSE或者HSI经过锁相环倍频后的输出时钟信号,并不能说是STM32的时钟源之一,不过可以认为是STM32系统时钟SYSCLK的时钟源之一。

STM32的时钟可分为高速时钟(HSE、HSI、PLL)和低速时钟(LSI、LSE),也可以分为内部时钟(HSI、LSI、PLL)和外部时钟(HSE、LSE)。

根据上图标号顺序来解释各自功能

1、LSI:低速内部时钟,由STM32内部的RC 振荡器产生,频率为 40kHz。担当一个低功耗时钟源的角色,它可以在停机和待机模式下保持运行,为独立看门狗(IWDG)和自动唤醒单元提供时钟。
2、LSE:低速外部时钟,接频率为 32.768kHz 的石英晶体。为实时时钟或其他定时功能提供一个低功耗且精确的时钟源。
3、HSE:高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为 4MHz~16MHz。
4、HSI:高速内部时钟,由STM32内部的RC 振荡器产生,频率为 8MHz,温漂较大,精度不高。
5、PLL:锁相环倍频输出,时钟输入源可选择为 HSI/2、HSE 或者 HSE/2。倍频可选择为2~16 倍,但是其输出频率最大不得超过 72MHz。当HSI被用于作为PLL时钟的输入时,系统时钟能得到的最大频率是36MHz。
6、MCO:时钟输出。可以用来给外部其他系统提供时钟源。
7、RTCCLK: RTC 时钟源。
8、OTGFSCLK:USB时钟源。
9、I2S:音频总线接口I2S的时钟源。I2S的主时钟可以产生所有从8kHz至96kHz之间的标准采样频率,而误差小于0.5%。
10、SYSCLK:系统时钟。系统时钟可选择为 PLL 输出、HSI 或者 HSE。最大频率为 72MHz,可超频(不建议)。
11、AHB:这里所有外设的时钟最终来源都是 SYSCLK。SYSCLK 通过 AHB 分频器分频后送给各模块使用。

除了上述的时钟源以外,还涉及一个以太网的时钟信号,如标号12、13。以太网MAC的时钟(TX、RX和RMII)是由外部PHY提供。

2、高速外部时钟信号(HSE)

高速外部时钟信号(HSE)由以下两种时钟源产生:

● HSE用户外部时钟
● HSE外部晶体/陶瓷谐振器

外部时钟源(External clock)

这个模式下需要外部来提供时钟信号,最大为50MHz。如下图的上半部分所示,外部时钟信号(50%占空比的方波、正弦波或
三角波)必须连到SOC_IN引脚,同时保证OSC_OUT引脚悬空。

外部晶体 外部晶体/ 陶瓷谐振器(External crystal/ceramic resonator)

这个模式需要外接晶体来为整个系统提供时钟信号,频率范围为 4MHz~16MHz。需要注意的是:为了减少时钟输出的失真和缩短启动稳定时间,晶体/陶瓷谐振器和负载电容器必须尽可能地靠近振荡器引脚。负载电容值必须根据所选择的振荡器来调整。一般在购买晶振的时候会标注需要多大的起振电容。

3、低速外部时钟信号(LSE)

LSE晶体是一个32.768kHz的低速外部晶体或陶瓷谐振器。它为实时时钟或者其他定时功能提供一个低功耗且精确的时钟源。

通HSE一样,具备两种时钟输入模式,具体请参考HSE。

4、系统时钟(SYSCLK)

系统时钟(SYSCLK)的时钟源有三个

● 高速外部时钟信号(HSE)
● 高速内部时钟信号(HSI)
● 锁相环倍频输出(PLL)

系统时钟(SYSCLK)是供 STM32 中绝大部分部件工作的时钟源。通过多个预分频器配置AHB、高速APB(APB2)和低速APB(APB1)域的频率。AHB和APB2域的最大频率是72MHz。APB1域的最大允许频率是36MHz。

也可以将SYSCLK作为MCO(时钟输出)的时钟源。

注:以下部件的时钟源不来自系统时钟

● Flash存储器编程接口时钟始终是HSI时钟。
● 全速USB OTG的48MHz时钟是从PLL得到。为了正常地操作USB全速OTG,应该配置PLL输出72MHz或48MHz。
● I2S2和I2S3的时钟还可以从PLL3 VCO时钟(2xPLL3CLK)得到。
● 以太网MAC的时钟(TX、RX和RMII)是由外部PHY提供。当使用以太网模块时,AHB时钟频率必须至少为25MHz。

5、时钟输出(MCO)

MCO 是 STM32 的一个时钟输出 IO,它可以选择一个时钟信号输出,如下图所示,可以选择为 HSI、HSE、PLL 输出或者系统时钟。这个时钟可以用来给外部其他系统提供时钟源。

6、AHB

除了上述的几个部件之外,其余所有的外设时钟源均为AHB时钟提供。

RCC通过AHB时钟(HCLK)8分频后作为Cortex系统定时器(SysTick)的外部时钟。通过对SysTick控制与状态寄存器的设置,可选择上述时钟或Cortex(HCLK)时钟作为SysTick时钟。ADC时钟由高速APB2时钟经2、4、6或8分频后获得等等。

具体各路时钟信号输出为

①、AHB 总线、内核、内存和 DMA 使用的 HCLK 时钟。
②、通过 8 分频后送给 Cortex 的系统定时器时钟,也就是 systick 了。
③、直接送给 Cortex 的空闲运行时钟 FCLK。
④、送给 APB1 分频器。APB1 分频器输出一路供 APB1 外设使用(PCLK1,最大频率 36MHz),另一路送给定时器(Timer)2、3、4 倍频器使用。
⑤、送给 APB2 分频器。APB2 分频器分频输出一路供 APB2 外设使用(PCLK2,最大频率 72MHz),另一路送给定时器(Timer)1 倍频器使用。

以上便是STM32F1的时钟树,不同的器件的时钟系统基本上大差不差,可能别的器件功能更加强大,会有更多的外设,其时钟源具体请参阅相关的参考文档。

参考文献

1、RM0008 - STM32F10x参考手册

【STM32】时钟系统RCC相关推荐

  1. STM32——时钟系统RCC详细介绍

    STM32的时钟系统学习,主要集中在时钟树的分析应用,时钟树里面有很多的时钟,它具体怎么配置,或者说我们的固件库函数是怎么配置的,这就是我们需要掌握的地方,最后我们达到的目的就是编写自己的库函数,实现 ...

  2. STM32 时钟系统

    STM32时钟系统的基本概念 概念及意义 (1)概念:时钟系统是由振荡器(信号源).定时唤醒器.分频器等组成的电路.常用的信号源有晶体振荡器和RC振荡器. (2)意义:时钟对数字电路而言非常重要,没有 ...

  3. STM32——时钟系统

    STM32--时钟系统 宗旨:技术的学习是有限的,分享的精神是无限的. 一.时钟树 普通的MCU,一般只要配置好GPIO 的寄存器,就可以使用了.STM32为了实现低功耗,设计了非常复杂的时钟系统,必 ...

  4. 2021.4.14 第四次 STM32时钟系统

    STM32时钟系统 一. STM32时钟系统介绍 二. 时钟系统框图 三. 时钟配置相关函数 1.1 时钟系统介绍: 时钟是单片机运行的基础,时钟信号推动单片机内各个部分执行相应的指令.STM32本身 ...

  5. esp32 rtc 时钟设置不对_STM32入门系列-STM32时钟系统,STM32时钟树

    时钟对于单片机来说是非常重要的,它为单片机工作提供一个稳定的机器周期从而使系统能够正常运行.时钟系统犹如人的心脏,一旦有问题整个系统就崩溃.我们知道STM32属于高级单片机,其内部有很多的外设,但不是 ...

  6. STM32时钟系统的概念及意义

    STM32时钟系统的基本概念 概念及意义 概念 时钟系统是由振荡器(信号源).定时唤醒器.分频器等组成的电路.常用的信号源有晶体振荡器和RC振荡器 意义 时钟是嵌入式系统的脉搏,处理器内核在时钟驱动下 ...

  7. STM32时钟系统(1)-时钟框图解释

    STM32时钟系统(2)-时钟系统常用寄存器和库函数 STM32时钟系统 官方文档说明: Three different clock sources can be used to drive the ...

  8. STM32的时钟系统RCC详细整理

    一.综述: 1.时钟源 在STM32中,一共有5个时钟源,分别是HSI.HSE.LSI.LSE.PLL. ①HSI是高速内部时钟,RC振荡器,频率为8MHz: ②HSE是高速外部时钟,可接石英/陶瓷谐 ...

  9. STM32的时钟系统RCC详细整理(转)

    一.综述: 1.时钟源 在 STM32 中,一共有 5 个时钟源,分别是 HSI . HSE . LSI . LSE . PLL . ①HSI 是高速内部时钟, RC 振荡器,频率为 8MHz : ② ...

最新文章

  1. Linux那些事儿 之 戏说USB(2)漫漫辛酸路
  2. 人群场景分析--Slicing Convolutional Neural Network for Crowd Video Understanding
  3. 强化学习笔记:Q-learning :temporal difference 方法
  4. Java Streams,第 2 部分: 使用流执行聚合
  5. java 人脸识别 demo_Java 离线人脸识别 基于ArcFace 2.0 Demo
  6. java分页插件PageHelper的内置list数据操作失败
  7. fsck 修复文件系统_微软推出Win10 20H2 Build 19042.608测试版 修复多种已知错误
  8. c语言函数调用用法大全,C语言函数
  9. 可以免费下载任何文档(网页转换助手)
  10. 基于ESP8266芯片的实时温湿度传感器
  11. linux 新唐 STM32,新唐M0系列stm32单片机哪个便宜?
  12. 怎么禁用计算机usb驱动,u盘驱动程序被禁用怎么办
  13. Firefox火狐浏览器ca证书(cacert)安装
  14. Q版京剧脸谱来喽——刀马旦
  15. Security:osquery 介绍
  16. Go 语言是互联网时代的 C 语言?
  17. Oracle本地管理的表空间
  18. 机电控制基础之相位滞后校正
  19. 计算机界的misc - 名人 Dijkstra
  20. SAP软件Script脚本重复操作功能了解下(懒人必备)

热门文章

  1. 【自建exe】使用Electronjs为自己写windows软件
  2. 凡人修c传(四)翻牌子(POJ - 3279 - Fliptile每日一水)
  3. 猪猪女孩有多蠢,猫爪杯就有多火
  4. JAVA pdf中插入自定义图片
  5. 复杂稀缺类分析:稀缺与不重要能否划等号?
  6. map初步(由ABBC---A2BC)
  7. 如何通过Oracle官网下载jdk历史版本
  8. 高性能web平台【Lua语言快速入门】
  9. 如何打开.epub格式的电子书?
  10. 怎么看网站是否被黑防止网站被黑