stm32学习总结:时钟系统

一、 芯片时钟

  1. 时钟简介
    时钟是同步工作系统的同步节拍,时钟的快慢就是我们常说的工作频率,以赫兹(HZ)为单位。时钟系统指导器件的运行,我们分析器件的工作特性时,常常会看器件的时序图,时序图中的时钟周期就是时钟系统来决定的。时钟是嵌入式系统的脉搏,处理器内核在时钟驱动下完成指令执行,状态变换等动作,外设部件在时钟的驱动下完成各种工作,例如:串口数据的发送、AD转换、定时器计数等。因此时钟对于计算机系统是至关重要的,通常时钟系统出现问题也是致命的,比如振荡器不起振、振荡不稳、停振等。 时钟信号推动单片机内各个部分执行相应的指令,时钟就像人的心跳一样。
  2. 时钟来源
    a. 外部直接输入时钟信号,SoC有个引脚用来输入外部时钟信号,用的很少;
    b. 外部晶振+内部时钟发生器产生时钟,大部分低频单片机都是这么工作的;
    c. 外部晶振+内部时钟发生器+内部PLL产生高频时钟+内部分频器分频得到各种频率的时钟。
  3. 时钟系统和功耗
    a. 时钟是指导器件工作的,那时钟的快慢就是决定了器件工作的状态。一般地,时钟频率越高,器件的性能越好。
    b. 时钟系统和低功耗模式:现在的智能设备大多都有低功耗模式,低功耗模式的原理就是关闭某些当前非必须的器件,以降低功耗,关闭器件实际就是禁止器件的时钟信号。
    c. 最佳时钟频率:每款芯片推出时,厂家都会提供一个最佳工作频率,在这个频率下芯片可以长期稳定且高效的工作。当然我们也可以通过代码去修改工作频率,当我们设置的工作频率超过最佳工作频率就叫超频。超频会带来更好的性能,但是芯片的发热也更严重,稳定性也会降低,可以短时间超频,但是不建议长时间超频。

二、 STM32时钟树

如图1所示为STM32F10xxx系列芯片的时钟树,分为三个部分:时钟源、系统时钟和以太网时钟。
在这里插入图片描述
图1 时钟树

1. 时钟源

STM32单片机的时钟源包含了HSE(High Speed External Clock signal)、HIS(High Speed Internal Clock signal)、LSE(Low Speed External Clock signal)、LSI(Low Speed Internal Clock signal)和PLL(Phase-Locked Loop)时钟。
a. HSE
在这里插入图片描述
High Speed External Clock signal,即高速的外部时钟
来源:无源晶振(3-25M)
去向:
① 128分频后作为RTC的时钟源之一;
② 直接作为系统时钟的时钟源;
③ 经过分频与倍频操作作为PLL1的时钟源;
④ 经过分频操作作为PLL2和PLL3的时钟源。
b. HIS
在这里插入图片描述
High Speed Internal Clock signal,高速的内部时钟
来源:芯片内部,大小为8M,当HSE故障时,系统时钟 会自动切换到HSI,直到HSE启动成功;
去向:
① 直接作为flash编程接口时钟;
② 直接作为系统时钟的时钟源;
③ 2分频后作为PLL时钟源。
c. LSE
在这里插入图片描述
LSE: low Speed External Clock signal,低速的外部时钟
来源:芯片内部,LSE晶体是一个32.768kHz的低速外部晶体或陶瓷谐振器。它为实时时钟或者其他定时功能提供一个低功耗且精确的时钟源;
去向:
直接作为RTC的时钟源之一。
d. LSI
在这里插入图片描述
LSI: low Speed Internal Clock signal,低速的内部时钟
来源:内部芯片,LSI RC担当一个低功耗时钟源的角色,它可以在停机和待机模式下保持运行,LSI时钟频率大约40kHz(在30kHz和60kHz之间);
去向:
① 直接作为独立看门狗的时钟源;
② 直接作为RTC的时钟源之一。
e. PLL
在这里插入图片描述
锁相环时钟:PLLCLK
来源:HSE时钟的分/倍频;
去向:
① 直接作为系统时钟的时钟源之一;
② 预分频后作为外设(USB、OTG和FS)的时钟;
③ PLL2CLK与PLL3CLK输出至MCO;
④ PLL3CLK倍频后作为I2S2与I2S3的时钟源。

2. 系统时钟

在这里插入图片描述
SYSCLK:系统时钟,最高为72M(ST官方推荐的)
来源:HSI、HSE、PLLCLK(详见2);
注意:通常的配置是SYSCLK=PLLCLK=72M
去向:
① 预分频后作为HCLK到AHB总线、核心存储和DMA;
② 预分频后再8分频作为CORTEX系统定时器时钟;
③ 预分频后作为cortex内核时钟;
④ 预分频后为APB1总线的外设提供时钟,最大为36M;1或2倍频之后则为APB1总线的定时器2~7提供时钟,最大为72M;
⑤ 预分频后为APB2总线的外设提供时钟。1或2倍频之后为APB2总线的定时器1提供时钟,最大为72M;APB2分频器还有一路输出供ADC分频器使用,分频后送给ADC模块使用。

3. 以太网时钟

以太网MAC的时钟(TX、RX和RMII)是由外部PHY提供,本文不对此进行讨论。

三、 相关寄存器

参考手册:STM32F10xxx参考手册

1. HSE:

时钟控制寄存器(RCC_CR)
在这里插入图片描述
时钟中断寄存器 (RCC_CIR)
在这里插入图片描述

2. HIS:

时钟控制寄存器(RCC_CR)
在这里插入图片描述
时钟中断寄存器 (RCC_CIR)
在这里插入图片描述

3. LSE:

时钟中断寄存器 (RCC_CIR)
在这里插入图片描述
备份域控制寄存器 (RCC_BDCR)
在这里插入图片描述

4. LSI:

时钟中断寄存器 (RCC_CIR)
在这里插入图片描述
控制/状态寄存器 (RCC_CSR)
在这里插入图片描述

5. PLL:

时钟控制寄存器(RCC_CR)
在这里插入图片描述
时钟配置寄存器(RCC_CFGR)
在这里插入图片描述
时钟中断寄存器 (RCC_CIR)
在这里插入图片描述

6. MCO:

时钟配置寄存器(RCC_CFGR)
在这里插入图片描述

四、 总结

芯片的时钟功能是其工作运行的基础,所以在工程开始之前需要分析各外设的时序需求,将时钟调整至合理范围内。本文基于STM32的时钟树对单片机的时钟系统进行了分解,并根据时钟源的不同列出对应的寄存器介绍。
参考链接

  1. STM32的时钟系统(嵌入式学习)-CSDN博客
  2. ARM芯片的时钟系统详解(S5PV210芯片)_怎么知道芯片内部时钟-CSDN博客
  3. 时钟系统和系统功耗的关系-CSDN博客
  4. STM32系统时钟超详解_stm32的时钟-CSDN博客
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值