STM32F10X-时钟树详细介绍

RCC是reset clock control的简称(即复位和时钟控制器),本文将详细介绍时钟树的构成,通过理解时钟树我们可以更加的了解STM32的所有时钟来源和他们之间的关系。

如下图,是STM32的时钟树,非常重要,我们将对每个时钟进行讲解,读者理解后时钟树看起来将会变得很简单。

建议保存下图,边阅读本文边对照时钟树,可以达到事半功倍的效果。

1.HSE高速外部时钟

HSE是高速外部时钟新号,可以由有源晶振和无源晶振提供,频率范围4-16MHZ。使用有源晶振,时钟从OSC_IN引脚进入,OSC_out引脚悬空;当使用无源晶振是,时钟信号由OSC_IN和OSC_OUT进入,且需要谐振电容。

当确定PLL时钟来源为HSE时,可以选择HES不分频或者2分频作为PLL时钟源。

2.PLL时钟源

PLL时钟源有两个,一个是HSE,另外一个是HSI/2。HSI是高速内部时钟信号,频率为8M,该信号源会随着温度和环境会有所漂移,一般不作为PLL的时钟来源。

3.PLL时钟PLLCLK

通过设置PLL倍频因子,可以对PLLSRC进行倍频。72M是ST官方推荐的稳定运行时钟,最高为128M。

4.系统时钟SYSCLK

系统时钟来源可以是HSI、PLLCLK、HSE。

5.AHB总线时钟HCLK

SYSCLK经过AHB预分频之后得到时钟叫APB总线时钟,即HCLK。片上的绝大部分外设的时钟都是经过HCLK分频得到。

6.APB1总线时钟HCLK1

APB1总线时钟PCLK1由HCLK经过低速APB预分频器得到的。HCLK1属于低速总线时钟,最高为36M,低速片上外设就挂载到这条总线上,比如USART2/3/4/5、SPI2/3,、I2C1/2。

7.APB2总线时钟HCLK2

APB2总线时钟HCLK2由HCLK经过高速APB2预分频器得到的。HCLK2属于高速的总线时钟,片上高速外设就挂载到这条总线上,比如全部的GPIO、USART1、SPI1。

8.其他时钟

  • USB时钟

USB时钟是由PLLCLK经过USB预分频器得到,USB最高时钟是48M。USB对时钟要求比较高,所以PLLCLK只能是HSE倍频得到,不能使用HSI倍频。

  • Cortex时钟

Cortex系统时钟是由HCLK 8分频得到的,Cortex系统时钟用来驱动内核的系统定时器SYSTick,SysTick一般用于操作系统的时钟节拍,也可以做普通的定时。

  • ADC时钟

ADC时钟由PCLK2经过ADC预分频器得到,ADC最高时钟是14M。

  • RTC时钟、独立看门狗时钟

RTC时钟由HSE/128分频得到,也可以由低速外部时钟LSE提供,频率为23.768KHZ,也可以由低速外部时钟HSI提供。

独立看门狗的时钟只能由LSI提供,频率为30-60KHZ,一般取40KHZ。

  • MCO时钟输出

MCO是microcontroller clockoutput的缩写,是微控制器时钟输出引脚,主要作用是对外提供时钟,相当于一个有源晶振。MCO的时钟来源可以是PLLCLK/2,HSI,HSE,SYSCLK。

可以通过监控MCO引脚的时钟输出来验证我们的系统时钟是否配置正确。

9.HSI使用

当HSE作为PLL时钟来源时候,如果HSE发生故障,不仅HSE不能使用,PLL也会关闭,这个时候系统会自动切换HSI作为系统时钟,此时SYSCLK=HSI=8M,这个时候如果没有开启CSS和CSS中断时候,系统只能在低速率运行,跟瘫痪没什么区别。

如果HSE故障时候,CSS中断里采取补救措施,使用HSI,把系统时钟设置为更高,最高是64M,频率够用了,但是与原来频率(比如72M)不一致,外设时钟也跟着改变,那么外设工作也会被打乱,这时候我们设置HSI时钟时候也跟着改变各个分频因子,使得外设时钟跟故障之前一样,但是毕竟不能一直使用HSI,所以HSE故障时应该采取报警措施。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值