标题: STM32时钟树的简单分析 [打印本页]

作者: 王堂杰    时间: 2019-2-28 11:47
标题: STM32时钟树的简单分析
3.时间树简介(!!!)

在stm32中有五个时间器,分别为:

3-1.HSI(high speed inter) 高速内部时钟

采用RC振荡器,频率为8mhz

3-2.HSE(high speed extern) 高速外部时钟

可以接石英或者陶瓷谐振器,或者接上外界的时钟源,频率为4mhz到16mhz

3-3.LSI(low speed inter) 低速内部时钟

采用RC振荡器,频率为40khz,可作为看门狗系统的时钟源和RTC(real time clock实时时钟)的时钟源

3-4.LSE(low speed extern)低速外部时钟

接32.768khz的石英晶体,主要作为RTC的时钟源

3-5.PLL:锁环器

实现倍频的功能(从频率*2到*16),通过控制相关寄存器实现,但是输出的频率不能大于72MHZ

4.时间树的一些基础原件

4-1:MCO

MCO是STM32的一种时间输出IO口(PA8),可以选择一个时钟信号输出(PLL的二分频,HSI HSE SYSCLK)

4-2:RTC

RTC作为实时时钟,可以提供一个准确的实时时间

4-3:USBCLK

在使用usb时,一定要让PLL作为时钟源,并且使能为48mhz或者72mhz

4-4:SYSCLK(系统时钟)

1.ABPI分频器:上面连接着一些低速外设(CAN,USB,,UART2.......)

2.ABP2分频器:上面连接着一些高速外设(UART1,Timer1,所有的普通io口(PA到PE)第二功能IO口)

5.简单介绍一下配置:(基于库函数)

1.初始化时间系统

system_stm32f10x.c中的SystemInit()函数中;

2.其他的配置在stm32f10x_rcc.c中
       STM32为了实现低功耗,而设计的功能完善构成复杂的时钟系统,称之时钟树。使外设功能的时钟可自配置。因为STM32外设众多,而不同的项目用到的外设参差不齐,所以可控的时钟可以实现降低产品功耗。

          所有的外设在使用之前都必须设置时钟信号,才可以正常工作。以STM32F103C8T6时钟树为例,如下图所示:

图7和图8道理一样的,看官觉得那个容易理解就看那个图


图8


STM32的四个时钟源

   外部时钟

<1>高速外部时钟(HSE):外部时钟源,晶振频率可取范围为4~16MHz,我们一般采用8MHz的晶振。
<2>低速外部时钟(LSE):外部时钟源,主要提供给实时时钟模块,所以一般采用32.768KHz。
   内部时钟

<3>高速内部时钟(HSI):由内部RC振荡器产生,频率为8MHz,但不稳定。
<4>低速内部时钟(LSI):由内部RC振荡器产生,也主要提供给实时时钟模块,频率大约为40KHz。   
以最常用的高速外部时钟(HSE)为例

<1>左边红色框框1 两个外部引脚接8M晶振的两端。
<2>8M时钟遇到第一个分频器PLLXTPRE,也就是HSE后面的第一个节点,我们不分频。
<3>时钟来到PLL Source Mux,可选输入的时钟信号有外部高速时钟(HSE)和内部高速时钟(HSI),选择HSE。
<4>接着信号走到锁相环PLL,具有倍频作用,我们选择倍频因子(PLL Mul),可取值2,3,...14,15,16,我们选择9倍频。现在时钟信号为8*9=72M。
<5>来到系统时钟源输入选择,可选时钟有HSE(8M)、HSI(8M)和经过倍频的PLL CLK(72M),选择PLL CLK作为系统时钟,此时系统时钟为72M。
<6>系统时钟(SYSCLK)来到AHB预分频器,可选分频系数:1,2,4,8,16,32,64,128,256。选择不分频,直接来到挂载低速外设的(APB1)PCLK1和挂载高速外设的(APB2)PCLK2。
<7>PCLK1低速外设时钟的最大频率为36M,所以最低进行2分频。PCLK2高速外设时钟的最大频率是72M,可选择不分频。

完整的Word格式文档51黑下载地址(内含大图):
STM32笔记.doc (297.5 KB, 下载次数: 21)







欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1