STM32 RCC时钟树

学习目标:

STM32的RCC时钟树


学习内容:

主要学习: HSE时钟、HSI时钟、锁相环时钟(PLLCLK)(由HSI或者HSE提供)、系统时钟(SYSCLK)(来源HSI,HSE,PLLCLK)、HCLK时钟、PCLK1时钟、PCLK2时钟、RTC时钟、MCO时钟

STM32时钟树
STM32的外部晶振从OSC_IN和OSC_OUT进入再由HSE产生HSE时钟,由于外部时钟HSE产生需要时间,在启动成功之前由HSI时钟代替启动。产生的时钟除以2(注意:HSI不能代替HSE时钟,主要是原因是HSI时钟没有HSE时钟稳定)之后进入图中2锁相环进行倍频。在锁相环产生稳定PLLC时钟之后,产生AHB总线的时钟(HCLK时钟),提供给图中B的系统时钟,同时可以产生APB1或者APB2总线的时钟(APB1为低速总线时钟,APB2为高速总线时钟)。
除了以上三条时钟总线,还有RTC时钟,看门狗时钟,I2S时钟,以太网PHY时钟,USB PHY时钟,MCO时钟。

以下为时钟总结(以STM32F407为例):

HSE:High Speed External Clock signal,即高速的外部时钟。
来源:有源晶振(1-50M)、无源晶振(4-26M)
控制:RCC_CR 时钟控制寄存器的位16:HSEON控制

HSI:Low Speed Internal Clock signal,即高速的内部时钟。
来源:芯片内部,大小为16M,当HSE故障时,系统时钟会自动切换到HSI,直到HSE启动成功。
控制: RCC_CR 时钟控制寄存器的位0:HSION控制

锁相环时钟:PLLCLK
来源:HSI、HSE。由PLLSRC位配置。
HSE或者HSI先经过一个分频因子M进行分频,然后再经过一个倍频因子N,然后再经过一个分频因子P,最后成为锁相环时钟PLLCLK = (HSE/M) * N / P = 25/25 * 336 / 2 = 168M
控制: RCC_PLLCFGR :RCC PLL 配置寄存器

系统时钟
缩写:SYSCLK,最高为168M。
来源:HSI、HSE,PLLCLK。
控制: RCC_CFGR 时钟配置寄存器的SW位

HCLK时钟
HCLK:AHB高速总线时钟,最高为168M。为AHB总线的外设提供时钟、为Cortex系统定时器提供时钟(SysTick)、为内核提供时钟(FCLK)。
AHB为advanced high-performance bus。
来源:系统时钟分频得到。
控制: RCC_CFGR 时钟配置寄存器的HPRE位

PCLK1时钟
PCLK1:APB1低速总线时钟,最高为42M,为APB1总线的外设提供时钟。
来源:HCLK分频得到,通常配置为4分频。
控制: RCC_CFGR 时钟配置寄存器的PPRE1位

PCLK2时钟
PCLK1:APB高速总线时钟,最高为84M,为APB2总线的外设提供时钟。
来源:HCLK分频得到,通常配置为2分频。
控制: RCC_CFGR 时钟配置寄存器的PPRE2位

RTC时钟
RTC:为芯片内部的RTC提供时钟。
来源:HSE_RTC(HSE分频得到)、LSE(外部32.768KHZ的晶体提供)、LSI(32KHZ)。
控制: RCC备份域控制寄存器RCC_BDCR:RTCSEL位控制

MCO时钟输出
MCO:把控制器的时钟通过外部的引脚输出,可以外外部的设备提供时钟。MCO1为PA8,MCO2为PC9。
控制: RCC_CFGR 时钟配置寄存器的MCOX的PREx位

独立看门狗时钟:IWDGCLK,由LSI提供

I2S时钟:由外部的引脚I2S_CKIN或者PLLI2SCLK提供。

以太网PHY时钟:407没有集成PHY,只能外接PHY芯片,比如LAN8720,那PHY时钟就由外部的PHY芯片提供,大小为50M。

USB PHY时钟:407的USB没有集成PHY,要想实现USB高速传输,只能外接PHY芯片,比如USB33000。那USB PHY时钟就由外部的PHY芯片提供。


学习时间:

学习的时间2020.11.19

如有错误欢迎可以大佬指出

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值