STM32时钟树分析

发布者:脑电风暴最新更新时间:2018-08-16 来源: eefocus关键字:STM32  时钟树 手机看文章 扫描二维码
随时随地手机看文章

对于刚接触STM32的时钟树,对时钟树的理解,可以重点先思考两个问题:

1、时钟从哪里来:时钟源。

2、时钟怎么供给STM32的系统工作:时钟的流向(输入——>处理——>输出)


下面以STM32F4系列的时钟树为例,分析以上两个问题。以下图是STM32F4系列的时钟树。


问题一、时钟从哪里来:时钟源。

STM32的时钟源主要有:内部时钟、外部时钟、锁相环倍频输出时钟。内部时钟、外部时钟又分为告诉时钟、低速时钟。锁相环倍频输出时钟又主PLL时钟、PLLI2S时钟。具体如下图所示。

1、LSI低速内部时钟:由内部RC振荡器产生,频率为32kHz。如图区域①;

2、HSI高速内部时钟:由内部RC振荡器产生,频率为16MHz。如图区域②;

3、LSE低速外部时钟:一般由外部晶振提供,频率为32.768kHz。如图区域③;

4、HSE低速外部时钟:一般由外部晶振提供,频率为4~26MHz。如图区域④;

5、主PLL时钟:由HSE或HSI提供。如图区域⑤;

6、PLLI2S时钟:由HSE或HSI提供。如图区域⑥;


问题二、时钟怎么供给STM32的系统工作:时钟的流向

我们已经知道了各个时钟源的输入,那么有了输入的时钟源,各个时钟源又是分别输出给哪些外设工作。我们分别从时钟源输入处开始,根据走线和结点,寻找到相应的输出。对应编号如下图中所示。

1、LSI低速内部时钟:供给独立看门狗⑴、实时时钟RTC⑵

2、HSI高速内部时钟:供给系统时钟⑸、时钟输出1MCO1⑷、主PLL时钟⑹、PLLI2S时钟⑺

3、LSE低速外部时钟:供给实时时钟RTC⑵、时钟输出1MCO1⑷

4、HSE低速外部时钟:供给系统时钟⑸、实时时钟RTC⑵、主PLL时钟⑹、PLLI2S时钟⑺、时钟输出1MCO1⑷、时钟输出2MCO2⑶

5、主PLL时钟:供给系统时钟⑸、外设时钟⑻、时钟输出1MCO1⑷、时钟输出2MCO2⑶

6、PLLI2S时钟::供给I2S时钟⑼、时钟输出1MCO1⑷、时钟输出2MCO2⑶


HSI、HSE、主PLL时钟都可以供给系统时钟⑸,STM32的很多外设是挂载在AHB、APB总线桥上的,这些外设的时钟又是怎么样的,这就和系统时钟的流向有关了,系统时钟的流向分析如下:

1、供给时钟输出2MCO2⑶

2、供给以太网PTP时钟⑽

3、经AHBPRESC预分频器⑾后:HCLK到AHB总线、内核、存储器和DMA⒁,到Cortex系统定时器⒂,自由运行时钟⒃

4、经AHBPRESC预分频器⑾、APBxPRESC预分频器⑿后:供给APBx外设时钟⒄

5、经AHBPRESC预分频器⑾、APBxPRESC预分频器后⑿,再经倍频条件判断⒀处理后:供给APBx定时器时钟⒅


用多个时钟源、分层控制时钟的好处:

1、一个外设有多个时钟源:可以根据需要选择相应频率的时钟源。

2、分层、分开控制外设时钟:使得各个外设的时钟都是可控的,各个外设有对应的时钟控制开关,实际应用过程根据需要开启相应外设时钟,不需要的外设时钟不开启,可以降低功耗。

有了以上对STM32时钟树的理解后,我们知道了各个时钟源的输入和输出后,可以进一步理解STM32时钟树:

1、从时钟源的输入到输出这两个节点,中间过程,是怎么处理的:即STM32时钟树涉及的的分频器、倍频器该怎么配置,即如何配置系统时钟、外设时钟?

本文尚未涉及该问题分析。


关键字:STM32  时钟树 引用地址:STM32时钟树分析

上一篇:STM32-时钟树
下一篇:单片机系统时间与unix time之间的转换

推荐阅读最新更新时间:2024-03-16 16:11

JFlash ARM对stm32程序的读取和烧录
本篇文章主要是记录一下JFlash ARM 的相关使用和操作步骤,读取程序说不上破解,这只是在没有任何加密情况下对Flash的读写罢了! 在我们装了JLINK驱动后再根目录下找到JFlash ARM ,运行。 读取Flash程序: 第一步:Option-- Project Settings-- CPU下选择 Device 在下拉菜单中找到自己的芯片型号后点击确定。 第二步:Targect-- Connect链接JLINK ;Targect-- Read back-- Entrie chip读取整个Flash区域, 接下来就等待读取完成了。 第三部:File-- Save file as 选择要储存的文件类型如:HE
[单片机]
JFlash ARM对<font color='red'>stm32</font>程序的读取和烧录
关于使用STM32 SPI3的一些总结
总结一下spi3的问题,因为spi3的nss口与JTAG有共用引脚,所以配置错误会导致SPI3无法使用。需要注意以下三点就可以了:  1.将PA15配置为普通IO口,GPIO_Mode_Out_PP  2.开启AFIO时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);  3.关闭JTAG功能,使能SWD  GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE) ; 其他的SPI口正常配置,因为板子重启后默认为JTAG模式,虽然在调试时使用了SWD,但PA15依然不是普通的IO口,当把它重新配置时,一定要开启AFIO时钟,
[单片机]
stm32 TFTLCD驱动原理(二)
FSMC简介: (1) 在大容量, 100 脚以上的 STM32F103 芯片都带有 FSMC 接口,硬石开发板 F1采用的主芯片为 STM32F103ZET6, 是带有 FSMC 接口的。 FSMC(灵活的静态存储器控制器),之所以称为灵活,是由于通过对特殊公的寄存器的设置, FSMC 能够根据不同个外部存储器列席,发出相应的数据/地址 /控制信号类型以匹配信号的速度,使得 STM32 系列微控制器不仅能够应用各种不同的外部静态存储器,而且能够在不增加外部器件的情况下同时扩展多种不同 类型的静态存储器, 满足系统设计对存储容量、产品体积以及成本的综合要求。 从上图中可以看到, STM32 的 FSMC 将外部设备分为
[单片机]
<font color='red'>stm32</font> TFTLCD驱动原理(二)
STM32 系统架构
简介:这里所讲的 STM32 系统架构主要针对的 STM32F103 这些非互联型芯片。STM32 主系统主要由四个驱动单元和四个被动单元构成。 四个驱动单元是: 内核DCode总线;系统总线;通用DMA1;通用DMA2; 四被动单元是: AHB到APB的桥:连接所有的APB设备;内部FlASH闪存;内部SRAM;FSMC; 下面我们具体看一下图中几个总线的知识: ①ICode总线:该总线将M3内核指令总线和闪存指令接口相连,指令的预取在该总线上面完成。 ②DCode总线:该总线将M3内核的DCode总线与闪存存储器的数据接口相连接,常量加载和调试访问在该总线上面完成。 ③系统总线:该总线连
[单片机]
<font color='red'>STM32</font> 系统架构
stm32基础知识汇总,看有多少是没有深入学习的
  STM32是一种功能比较强大的32位单片机,广泛应用于各种嵌入式设备中,由于它的普及性及丰富的资源,受到广大嵌入式开发者的喜欢,但要想学好用好STM32也并非易事,毕竟,相比8位、16位产品,STM32要复杂得多。   STM32的时钟   其中,高速时钟(HSE和HSI)提供给芯片主体的主时钟.低速时钟(LSE和LSI)只是提供给芯片中的RTC(实时时钟)及独立看门狗使用,图中可以看出高速时钟也可以提供给RTC。内部时钟是在芯片内部RC振荡器产生的,起振较快,所以时钟在芯片刚上电的时候,默认使用内部高速时钟。而外部时钟信号是由外部的晶振输入的,在精度和稳定性上都有很大优势,所以上电之后我们再通过软件配置,转而采用外部时钟信
[单片机]
STM32时钟学习
在STM32中,有五个时钟源,为HSI、HSE、LSI、LSE、PLL。 ①、HSI是高速内部时钟,RC振荡器,频率为8MHz。 ②、HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~16MHz。 ③、LSI是低速内部时钟,RC振荡器,频率为40kHz。 ④、LSE是低速外部时钟,接频率为32.768kHz的石英晶体。 ⑤、PLL为锁相环倍频输出,其时钟输入源可选择为HSI/2、HSE或者HSE/2。倍频可选择为2~16倍,但是其输出频率最大不得超过72MHz。其中40kHz的LSI供独立看门狗IWDG使用,另外它还可以被选择为实时时钟RTC的时钟源。另外,实时时钟RTC的时钟源还可以选择LSE,或者
[单片机]
C指针+ STM32 理解
环境:IAR + Cortex-M3的处理器 关注:指针在寄存器层次上的存储、调用等。。。 推荐:让你不再害怕指针 存储: 示例代码如下: int yyy=16; int *ptr1 = int **ptr2 = &ptr1; int (*ptr3) ; int *(*ptr4) ; int main() { ................ //使用这几个变量 ................. return 0; } IAR--View--Statics显示的全局区(静态区)情况: 以ptr2来说,定义:int **ptr2 = &ptr1; 从上图可知,指针变量ptr2的类型,
[单片机]
C指针+ <font color='red'>STM32</font> 理解
STM32操作 I/O 口的步骤
先来总结一下 STM32 操作 I/O 口的步骤(以精英板为例): ① 使能 I/O 口时钟,调用函数为RCC_APB2PeriphClockCmd(); ② 初始化 I/O 参数,调用GPIO_Init(); ③ 操作 I/O 口 看了STM32操作 I/O 口的步骤,是不是一头雾水,因为我们以前学习51单片机的时候,根本没有这么麻烦,I/O 想输入就直接读,想输出就直接赋值,串口、AD转化、外部中断等等也都是想用就用,不需要单独配置时钟。 51单片机的这种做法确实很方便,不需要有乱七八糟的设置就能让芯片跑起来,但是随之带来的就是所谓的功耗问题。换句话来说就是一些资源根本用不上,但是芯片却还给它分配资源,即增加了芯片的负担,
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved