STM32时钟系统

在这里插入图片描述

在STM32 时钟系统中,有5 个重要的时钟源,分别是LSI、LSE、HSI、HSE、PLL。按照时钟频率分可分为高速时钟源和低速时钟源,在这5 个中HSI,HSE 以及PLL 属于高速时钟,LSI 和LSE 属于低速时钟。按照时钟来源可分为外部时钟源和内部时钟源,外部时钟源就是在STM32 晶振管脚处接入外部晶振的方式获取时钟源,其中HSE 和LSE 是外部时钟源,其他的是内部时钟源。

按照上图中数字顺序来介绍。

(1)图标1 HSI 是内部高速时钟,RC 振荡器,频率为8MHz。可作为系统时钟或PLL 锁相环的输入。

(2)图标2 HSE 是外部高速时钟,芯片的23 和24 引脚即为外部高速晶振管脚。可通过外接一个频率范围是4-16MHz 的时钟或者晶振,普中开发板上接的是一个8MHz 的外部晶振。HSE 可以作为系统时钟和PLL 锁相环输入,还可以经过128 分频后输入给RTC。

(3)图标3 LSI 是内部低速时钟,RC 振荡器,频率大约为40K,可供独立看门狗和RTC 使用,并且独立看门狗只能使用LSI 时钟。

(4)图标4 LSE 是外部低速时钟,普中开发板上STM32 芯片的PC14 和PC15即为外部低速时钟管脚。通常在此管脚上外接一个32.768KHz 的晶振,供RTC使用。

(5)图标5 PLL 是锁相环,用于倍频输出,因为开发板外部高速晶振也只有8M,而我们这块芯片的最大时钟频率是72M,因此可通过PLL 锁相环来倍频。从图标5 中可以看到,PLL 时钟输入源可选择为HSI/2、HSE 或者HSE/2,时钟源经过2-16倍频后输入给PLLCLK,如果系统时钟选择由PLLCLK 提供,则PLLCLK 最大值不要超过72M。

STM32的5 个时钟源,如何给其他外设和系统提供时钟的呢?

(A)MCO 是STM32 的一个时钟输出IO(PA8),它可以选择一个时钟信号输出,可以选择为PLL 输出的2 分频、HSI、HSE 或者系统时钟。这个时钟可以用来给外部其他系统提供时钟源。
(B)RTC 时钟。从图中线的流向可知,RTC 时钟来源可以是内部低速的LSI时钟,外部低速LSE 时钟(32.768K),还可以通过HSE 128 分频后得到。(C)USB 时钟。STM32 中有一个全速功能的USB 模块,其串行接口引擎需要一个频率为48MHz 的时钟源,该时钟源只能从PLL 输出端获取,可以选择为1.5 分频或者1 分频,也就是当需要使用USB 模块时,PLL 必须使能,并且PLLCLK 时钟频率配置为48MHz 或72MHz。
(D)SYSCLK 系统时钟。它是STM32 中绝大部分部件工作的时钟源。它的时钟来源可以由HSI、HSE、PLLCLK 提供,相信大家选择STM32F1 这种高级芯片,都希望有一个比较大的时钟频率,因此选择PLLCLK 作为系统时钟。PLLCLK 又是从HSE 或HSI 经过PLL 倍频得到。
(E)其他所有外设。从时钟图上可以看出,其他所有外设的时钟最终来源都是SYSCLK。SYSCLK 通过AHB 分频器分频后送给各模块使用。这些模块包括:
		①、AHB 总线、内核、内存和DMA 使用的HCLK 时钟。
		②、通过8 分频后送给Cortex 系统定时器时钟,即SysTick。
		③、直接送给Cortex 的空闲运行时钟FCLK。
		④、送给APB1 分频器。APB1 分频器输出一路供APB1 外设使用(PCLK1,
		最大频率36MHz),另一路送给定时器(Timer)1、2 倍频使用。
		⑤、送给APB2 分频器。APB2 分频器分频输出一路供APB2 外设使用
		(PCLK2,最大频率72MHz),另一路送给定时器(Timer)1 倍频器使用。
		⑥、送给ADC 分频器。ADC 分频器经过2、4、6、8 分频后送给ADC1/2/3 使
		用,ADC 最大频率为14M。
		⑦、二分频后送给SDIO 使用。
APB1 和APB2 的区别,APB1 上面连接的是低速外设,包括电源接口、备份接口、CAN、USB、I2C1、I2C2、UART2、UART3 等, APB2上面连接的是高速外设包括UART1、SPI1、Timer1、ADC1、ADC2、GPIO 等。大多数有关时钟输出部分都有一个使能控制,比如AHB 总线、APB1 外设、APB2 外设、内核时钟等。当需要使用某个时钟的时候一定要开启它的使能,否则将不工作。

SystemInit 函数执行完,时钟大小设置如下:
SYSCLK(系统时钟) =72MHz
AHB 总线时钟(HCLK=SYSCLK) =72MHz
APB1 总线时钟(PCLK1=SYSCLK/2) =36MHz
APB2 总线时钟(PCLK2=SYSCLK/1) =72MHz
PLL 主时钟=72MHz

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值