STM32F4_RCC系统时钟配置及描述

发布者:csw520最新更新时间:2017-02-05 来源: eefocus关键字:STM32F4  RCC  系统时钟配置 手机看文章 扫描二维码
随时随地手机看文章

Ⅰ、概述

对于系统时钟应该都知道它的作用,就是驱动整个芯片工作的心脏,如果没有了它,就等于人没有了心跳。

对于使用开发板学习的朋友来说,RCC系统时钟这一块知识估计没怎么去配置过,原因在于开发板提供的晶振基本上都是官方标准的时钟频率,使用官方的标准库,这样系统时钟就是默认的配置,也就是默认的频率。但对于自己设计开发板,或者想要改变系统时钟频率(如:降低功耗就需要降频)的朋友来说,配置系统时钟就有必要了。

关于时钟这一块对定时器(TIM、RTC、WDG等)相关的外设也比较重要,因为要求精准,就需要时钟频率精准。

该文将描述关于系统时钟配置及注意的相关事项,更多详情内容,请往下看。

 

本着免费分享的原则,方便大家手机学习知识,定期在微信平台分享技术知识。如果你觉得分享的内容对你有用,又想了解更多相关的文章,请用微信搜索“EmbeddDeveloper” 或者扫描下面二维码、关注,将有更多精彩内容等着你。

 

 

Ⅱ、关于时钟

1.时钟分类

STM32芯片(所有型号)的时钟包含4类:

HSE(High Speed External)高速外部时钟

HSI(High Speed Internal)高速内部时钟

LSE(Low  Speed External)低速外部时钟

LSI(Low  Speed Internal)低速内部时钟

 

2.时钟源

STM32芯片(所有型号)驱动系统时钟的时钟源:

HSI 内部高速时钟

HSE 外部高速时钟

PLLCLK倍频时钟

 

STM32具有以下两个次级时钟源:

32 kHz 低速内部 RC (LSI RC),该 RC 用于驱动独立看门狗,也可选择提供给 RTC 用于停机/待机模式下的自动唤醒。

32.768 kHz 低速外部晶振( LSE 晶振),用于驱动 RTC 时钟 (RTCCLK)。对于每个时钟源来说,在未使用时都可单独打开或者关闭,以降低功耗。

 

3.时钟树(框图)

关于STM32的时钟树针对不同系列芯片可能存在差异。F0、F1和F3系列芯片(主流芯片,频率相对较低)有很多相似的地方,F2和F4(高性能芯片)系列芯片有很多相似的地方。但是,F3芯片和F4芯片的时钟树之间却存在很大差异,具体请看参考手册RCC相关章节。

STM32时钟控制器为应用带来了高度的灵活性,用户在运行内核和外设时可选择使用外部晶振或者使用振荡器,既可采用最高的频率,也可为以太网、 USB OTG FS 以及 HS、 I2S 和 SDIO等需要特定时钟的外设保证合适的频率。

以F417芯片为例:可通过多个预分频器配置 AHB 频率、高速 APB (APB2) 和低速 APB (APB1)。 AHB 域的最大频率为 168 MHz。高速 APB2 域的最大允许频率为 84 MHz。低速 APB1 域的最大允许频率为 42 MHz。实际上输出的最大时钟可以适当提高一点,但为了保证在多种环境下,最好还是不要超过标准的最大值。

 

STM32F4xx 器件具有两个 PLL:

主 PLL (PLL) 由 HSE 或 HSI 振荡器提供时钟信号,并具有两个不同的输出时钟:

第一个输出用于生成高速系统时钟(最高达 168 MHz)

第二个输出用于生成 USB OTG FS 的时钟 (48 MHz)、随机数发生器的时钟

 

专用 PLL (PLLI2S) 用于生成精确时钟,从而在 I2S 接口实现高品质音频性能。

由于在 PLL 使能后主 PLL 配置参数便不可更改,所以建议先对 PLL 进行配置,然后再使能(选择 HSI 或 HSE 振荡器作为 PLL 时钟源,并配置分频系数 M、 N、 P 和 Q)。

PLLI2S 使用与 PLL 相同的输入时钟( PLLM[5:0] 和 PLLSRC 位为两个 PLL 所共用)。但是, PLLI2S 具有专门的使能/禁止和分频系数( N 和 R)配置位。在 PLLI2S 使能后,配置参数便不能更改。

 

Ⅲ、代码分析

以STM32F4x5、x7系列芯片为例来分析一下系统时钟的配置。

参考软件工程:

https://yunpan.cn/cRepWDShSK4yc  访问密码 65b1

 

1.倍频参数

结合上面时钟树和源代码可以看得出来,系统时钟PLLCLK的计算主要是配置PLL_M、PLL_N、PLL_P这三个参数,最后168M是通过分频、倍频得出来的。

 

2.验证时钟频率

对于STM32芯片来说,验证系统时钟最终运行多大的速度,最准确的验证方法的用示波器测试它的系统时钟。

这里描述一下怎样用示波器来测试系统时钟。其实很简单,就是在软件代码里面配置时钟输出(这里可以输出多种类型的时钟HSE、HSI、PLLCLK等),根据代码配置不同,相应输出的时钟就不同。请看源代码:

我提供的代码里面就有这一选项,将定义配置为1,就打开了这个功能。时钟输出的参数有两个,时钟源,分频值。注意:这里的最大输出时钟是100M,所以PLLCLK时钟分频之后才能输出,不然你用示波器检测不到波形(我测试过了)。

最后输出的波形如图:

 

Ⅳ、说明

关于STM32的开发,软件兼容性是很好的,不要觉得你的芯片和我总结的实例有差异就不看了,其实是错误的认识,特别是同一个系列的芯片基本上程序都兼容,也就是可以互相使用。

以上总结仅供参考,若有不对之处,敬请谅解。


关键字:STM32F4  RCC  系统时钟配置 引用地址:STM32F4_RCC系统时钟配置及描述

上一篇:STM32F4系统时钟配置及描述
下一篇:stm32f4 - 时钟树分析配置

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

轻松搞懂STM32F4SysTick定时器
定时器在单片机中是一个非常重要东西,其中在Cortex系列的芯片中,内核给我们提供了一个定时器,就是滴答定时器SysTick。其功能就是计时。 SysTick定时器的作用 1:用于延时 2:用于产生中断 3:用于单片机系统(这里不做解释) SysTick内部结构 根据这个图,总结下各个的作用 HCLK:系统时钟,不会的话可以看我之前的视频 /8 : 一个8分频的分频器,也可以不分 VAL:倒计时寄存器:只用了低0-23位,高位保留(VAL就是Value意思) LOAD:自动重装载寄存器(load就是本地的意思,本地的寄存器)(英语水平不够,我也不知道他咋就翻译成了自动
[单片机]
轻松搞懂<font color='red'>STM32F4</font>SysTick定时器
STM32F4时钟系统
1:STM32有5个时钟源:HSI,HSE,LSI,LSE,PLL HSI是高速内部时钟,RC振荡器、频率为16MHZ,精度不高。可以直接作为系统时钟或者用作PLL时钟输入 HSE是高速外部时钟,可接石英/陶瓷谐振器,或接外部时钟源,频率范围为4M~26M. LSI是低速内部时钟,RC振荡器,频率为32KHZ,提供低功耗时钟。主要供独立看门狗和自动唤醒单元使用。 LSE是低速外部时钟,接频率为32.768KHZ的石英石钟。RTC PLL为锁相环倍频输出。STM32F4有两个PLL。 主PLL,(PLL)由HSE或者HSI提供时钟信号,并具有两个不同的输出时钟 第一个输出PLLP用于生成高速的系统时钟(最
[单片机]
<font color='red'>STM32F4</font><font color='red'>时钟</font><font color='red'>系统</font>
STM32F4学习笔记5——SysTick定时器
SysTick 定时器被捆绑在 NVIC 中,用于产生 SYSTICK 异常(异常号:15)。在以前,大多操作系统需要一个硬件定时器来产生操作系统需要的滴答中断,作为整个系统的时基。例如,为多个任务许以不同数目的时间片,确保没有一个任务能霸占系统;或者把每个定时器周期的某个时间范围赐予特定的任务等,还有操作系统提供的各种定时功能,都与这个滴答定时器有关。因此,需要一个定时器来产生周期性的中断,而且最好还让用户程序不能随意访问它的寄存器,以维持操作系统“心跳”的节律。 Cortex—M4处理器内部包含了一个简单的定时器,该定时器时钟源可以是内部时钟,或者外部时钟的,不过STCLK的具体来源由芯片设计者决定。SysTick定时器能产生
[单片机]
ACM32F403对比STM32F405的差异说明
一、整体功能对比 分别选择两款芯片(LQFP100)最大配置资源的型号(STM32F405VG、ACM32F403VE)进行比对,两者比对如下: 举例如下: 二、管脚差异说明 举例如下: 举例如下:LQFP64
[单片机]
MPU6500驱动调试笔记(STM32F407+SPI)
一、问题背景 本来最开始实验室使用MPU6050芯片,采集陀螺仪原始数据做生理信号采集,但算法发现用IIC接口采样率(200hz)达不到要求。故寻找同类型支持SPI协议的芯片去替代,发现了这块MPU6500,还便宜,就用起来。在读写寄存器费了些周折(每读一次数据寄存器需要短暂延时,不能spi连续读。写寄存器有100ms延时要求),算是记录下吧 二、注意事项 NOTE: 1、由datasheet P16页SPI时序图得:CPOL=1,CPHA=1;(多谢网友指正页码) 2、采样频率200hz,陀螺仪量程正负250dps,加速度量程正负2g,16bit输出; 三、源代码 /* *********************
[单片机]
MPU6500驱动调试笔记(<font color='red'>STM32F4</font>07+SPI)
RCC 使用HSE/HSI配置系统时钟
开发平台 野火F429开发板 标准库 配置系统时钟首先要学会看时钟树,f429主频为180MHZ 时钟树 查看手册 时钟树如下图 现在我需要用到的时钟总线主要是:AHB、APB1、APB2 其他的以后用到的时候再看吧 1.HSE外部高速时钟信号 HSE由晶振提供,晶振又分有源晶振和无源晶振,无源晶振需要提供时钟电路才可产生振荡。 由图中可以看到 OSC_OUT和OSC_IN,采用无源晶振时,时钟从OSC_OUT和OSC_IN进入; 采用有源晶振从OSC_IN进入,OSC_OUT悬空。这里使用无源晶振25MHZ 2.PLL锁相环 HSE经过PLL 输入分频因子M(查手册得 2~63),成为时钟输入VCO时钟(1-2M
[单片机]
<font color='red'>RCC</font> 使用HSE/HSI<font color='red'>配置</font><font color='red'>系统</font><font color='red'>时钟</font>
stm32f 查看系统时钟配置
之前因为系统时钟配置问题吃了很多亏,之前通过查看寄存器配置的形式进行时钟的计算,查看时钟配置是否正确,但是具体每个时钟具体是多少还是需要进行计算的,后来发现在库函数中有一个函数可以直接获取系统时钟, * @brief Returns the frequencies of different on chip clocks. * @param RCC_Clocks: pointer to a RCC_ClocksTypeDef structure which will hold * the clocks frequencies. * @note The result of this function could
[单片机]
stm32f 查看<font color='red'>系统</font><font color='red'>时钟</font><font color='red'>配置</font>
如何用频率计算法设计RCC式开关电源?
如何设计一款开关电源?哪款变换器适合设计中小功率的开关电源?本文就介绍一种利用频率计算法设计RCC式开关电源的方法。 RCC电路原理简单,由开关变压器和主开关管谐振产生振荡,副开关管可以调节占空比,以此调节输出电压。但是RCC电源的占空比、工作频率随使用环境和内部参数的变化而改变,使得开关管控制极的电流驱动波形难以确定,给器件参数选定,尤其是变压器的设计带来困难。传统设计主要有诺模图法和磁芯面积乘积AP计算校验法。这两种方法在定频率计算中较实用,但若未知频率,将不能用以上两种方式设计。传统的方法是给RCC电源预设一频率,然后设计变压器。但因变压器参数直接影响到电源的工作频率,所设计的变压器工作频率经常与预设频率相差太大而不能正常
[电源管理]
如何用频率计算法设计<font color='red'>RCC</font>式开关电源?
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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