RCC—使用 HSE/HSI 配置时钟 ---时钟树
本章参考资料:《 STM32F4xx 中文参考手册》 RCC 章节。
学习本章时,配合《 STM32F4xx 中文参考手册》 RCC 章节一起阅读,效果会更佳,特
别是涉及到寄存器说明的部分。
RCC : reset clock control 复位和时钟控制器。本章我们主要讲解时钟部分,特别是要
着重理解时钟树,理解了时钟树, F429 的一切时钟的来龙去脉都会了如指掌。
HSE时钟
HSE:High Speed External Clock signal,即高速的外部时钟。
来源:有源晶振(1-50M)、无源晶振(4-26M)
控制:RCC_CR 时钟控制寄存器的位16:HSEON控制
HSI时钟
HSI:High Speed Internal Clock signal,即高速的内部时钟。
来源:芯片内部,大小为16M,当HSE故障时,系统时钟会自动
切换到HSI,直到HSE启动成功。
控制: RCC_CR 时钟控制寄存器的位0:HSION控制
问题:有源晶振和无源晶振的区别?
为什么要通过PLL到180M而不直接接180M的晶振?
无源晶振有2个引脚,需要借助于外部的时钟电路(接到主IC内部的震荡电路)才能产生振荡信号,自身无法振荡。
有源晶振有4个引脚,是一个完整的振荡器,其中除了石英晶体外,还有晶体管和阻容元件.只需要电源,就可输出比较好的波形。
晶振频率越高,受温度的影响越大,这是制造工艺决定的....所以一般是外部接8-12M的晶振,然后内部锁相环升频,就会得到高频的时钟信号。
锁相环时钟
锁相环时钟:PLLCLK
来源:HSI、 HSE。由PLLSRC位配置。
HSE或者HSI先经过一个分频因子M进行分频,然后再经过一个
倍频因子N,然后再经过一个分频因子P,最后成为锁相环时钟
PLLCLK = (HSE/M) * N / P = 25/25 * 360 / 2 = 180M
控制: RCC_PLLCFGR :RCC PLL 配置寄存器
PLL48CK:USB_FS、 RANG、 SDIO提供时钟
系统时钟
缩写:SYSCLK,最高为180M,F407最高为168M。
来源:HSI、 HSE,PLLCLK。
控制: RCC_CFGR 时钟配置寄存器的SW位
HCLK时钟
HCLK:AHB高速总线时钟,最高为180M。为AHB总线的外设
提供时钟、为Cortex系统定时器提供时钟(SysTick)、为内核
提供时钟(FCLK)。
AHB为advanced high-performance bus。
来源:系统时钟分频得到。
控制: RCC_CFGR 时钟配置寄存器的HPRE位
PCLK1时钟
PCLK1:APB低速总线时钟,最高为45M。 为APB1总线的外设
提供时钟。 2倍频之后则为APB1总线的定时器提供时钟,最大
为90M。
来源:HCLK分频得到。
控制: RCC_CFGR 时钟配置寄存器的PPRE1位
PCLK2时钟
PCLK2:APB高速总线时钟,最高为90M。为APB2总线的外设
提供时钟。 2倍频之后则为APB2总线的定时器提供时钟,最大
为180M。
来源:HCLK分频得到。
控制: RCC_CFGR 时钟配置寄存器的PPRE2位
RTC时钟
RTC:为芯片内部的RTC提供时钟。
来源:HSE_RTC(HSE分频得到)、 LSE(外部32.768KHZ的晶
体提供)、 LSI(32KHZ)。
控制: RCC备份域控制寄存器RCC_BDCR:RTCSEL位控制
独立看门狗时钟:IWDGCLK,由LSI提供
I2S时钟:由外部的引脚I2S_CKIN或者PLLI2SCLK提供。
以太网PHY时钟:429没有集成PHY,只能外接PHY芯片,
比如LAN8720,那PHY时钟就由外部的PHY芯片提供,大小
为50M。
USB PHY时钟:429的USB没有集成PHY,要想实现USB高
速传输,只能外接PHY芯片,比如USB33000。那USB PHY时
钟就由外部的PHY芯片提供。
完整时钟树参考手册。
不得不说,ST给我们做好固件库之后,开发速率直线提升,比起2440好上手,这种时钟配置不需要我们关心,但2440什么都要自己来,相辅相成。
F103 系列中,使用 HSI 最大只能把系统设置为 64M,并不能跟使用 HSE 一样把系统
时钟设置为 72M,究其原因是 HSI 在进入 PLL 倍频的时候必须 2 分频,导致 PLL 倍频因子
调到最大也只能到 64M,而 HSE 进入 PLL 倍频的时候则不用 2 分频。
在 F429 中,无论是使用 HSI 还是 HSE 都可以把系统时钟设置为 180M,因为 HSE 或
者 HSI 在进入 PLL 倍频的时候都会被分频为 1M 之后再倍频。
还有一种情况是,有些用户不想用 HSE,想用 HSI,但是又不知道怎么用 HSI 来设置
系统时钟,因为调用库函数都是使用 HSE, 下面我们给出个使用 HSI 配置系统时钟例子,
起个抛砖引玉的作用。 BH有个参考历程,如果需要可以参考修改。
RCC—使用 HSE/HSI 配置时钟 ---时钟树的更多相关文章
- 第15章 RCC—使用HSE/HSI配置时钟
第15章 RCC—使用HSE/HSI配置时钟 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku. ...
- 第15章 RCC—使用HSE/HSI配置时钟—零死角玩转STM32-F429系列
第15章 RCC—使用HSE/HSI配置时钟 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku. ...
- RCC—使用 HSE/HIS 配置时钟
RCC :reset clock control 复位和时钟控制器:特别是要着重理解时钟树,理解了时钟树,F429 的一切时钟的来龙去脉都会了如指掌. STM32F4系列有5个时钟源: LSIRC( ...
- Linux下时钟框架实践---一款芯片的时钟树配置
关键词:时钟.PLL.Mux.Divider.Gate.clk_summary等. 时钟和电源是各种设备的基础设施,整个时钟框架可以抽象为几种基本的元器件:负责提供晶振 Linux内核提供了良好的CC ...
- NUCLEO-L053R8 RCC时钟树 MCO输出
RCC时钟配置实验 最近玩了一下Nucleo-L053R8板子,即STM32L053R8T6.浏览了RCC章节后,顺便做了个小实验,现在给大伙分享一下. 实验非常简单,配置一下系统时钟,可以通过肉眼观 ...
- STM32—时钟树(结合系统时钟函数理解)
时钟树的概念: 我们可以把MCU的运行比作人体的运行一样,人最重要的是什么?是心跳! 心脏的周期性收缩将血液泵向身体各处.心脏对于人体好比时钟对于MCU,微控制器(MCU)的运行要靠周期性的时钟脉冲来 ...
- STM32 时钟树配置快速入门
layout: post tags: [STM32] comments: true 文章目录 layout: post tags: [STM32] comments: true 为什么要了解时钟树? ...
- STM32入门系列-STM32时钟系统,STM32时钟树
时钟对于单片机来说是非常重要的,它为单片机工作提供一个稳定的机器周期从而使系统能够正常运行.时钟系统犹如人的心脏,一旦有问题整个系统就崩溃.我们知道STM32属于高级单片机,其内部有很多的外设,但不是 ...
- STM32学习笔记:【001】时钟树与RCC
导言 如果学过单片机的同学应该不会陌生,学习51单片机时最经常听到的就是“最小系统”. 最小系统里面少不了晶振,否则单片机无法工作. 单片机需要晶振(时钟源)来工作,那么对于STM32芯片同样如此. ...
随机推荐
- android AIDL 入门讲解非常好的文章(网页代码着色给力)
转自: http://tech.cnnetsec.com/585.html
- [Grunt] External Config
Let's combine uglifying, watching, and config stuff into one Grunt file to make it more of a standar ...
- span中内容随着数字长度的添加而增大
场景:导航条中数据,当数据量不大时.仅仅会显示几页,数字仅仅有1,2.3,4..,数字写在span标签中, 则span不须要多宽.设置固定宽度就能够,但当数据量很大的.比如:日志管理--有增 删 改就 ...
- ant design pro (十三)advanced 错误处理
一.概述 原文地址:https://pro.ant.design/docs/error-cn 二.详细 2.1.页面级报错 2.1.1.应用场景 路由直接引导到报错页面,比如你输入的网址没有匹配到任何 ...
- sae python中Mysql中文乱码的解决
一開始我用的是: db=MySQLdb.connect(db=sae.const.MYSQL_DB,user=sae.const.MYSQL_USER,passwd=sae.const.MYSQL_P ...
- Spring中bean的生命周期!
Spring 中bean 的生命周期短暂吗? 在spring中,从BeanFactory或ApplicationContext取得的实例为Singleton,也就是预设为每一个Bean的别名只能维持一 ...
- 【小程序】微信小程序之地图功能
转载请注明出处:http://blog.csdn.net/crazy1235/article/details/55004841 基本使用 地图组件使用起来也很简单. .wxml <map id= ...
- Python-类属性与对象属性之间的关系
只要对象的属性未被指定赋值过, 不论类的属性怎么改变, 对象的属性都会跟随改变, 若对象属性被赋值过, 则不跟随类的属性而改变
- spring3.1之前的HandlerMapping ,HandlerAdapter以及spring3.1写法
<!--Spring3.1之前的注解 HandlerMapping --><!-- <bean class="org.springframework.web.serv ...
- 使用maven创建一个例子
创建一个目录:D:\testmaven 在命令行中切换到D:\testmaven目录后输入: mvn archetype:generate 下载骨架,它会往本地工厂存信息 也可以直接使用带有参数的命令 ...