本章参考资料:《 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 配置时钟 ---时钟树的更多相关文章

  1. 第15章 RCC—使用HSE/HSI配置时钟

    第15章     RCC—使用HSE/HSI配置时钟 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku. ...

  2. 第15章 RCC—使用HSE/HSI配置时钟—零死角玩转STM32-F429系列

    第15章     RCC—使用HSE/HSI配置时钟 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku. ...

  3. RCC—使用 HSE/HIS 配置时钟

    RCC :reset clock control  复位和时钟控制器:特别是要着重理解时钟树,理解了时钟树,F429 的一切时钟的来龙去脉都会了如指掌. STM32F4系列有5个时钟源: LSIRC( ...

  4. Linux下时钟框架实践---一款芯片的时钟树配置

    关键词:时钟.PLL.Mux.Divider.Gate.clk_summary等. 时钟和电源是各种设备的基础设施,整个时钟框架可以抽象为几种基本的元器件:负责提供晶振 Linux内核提供了良好的CC ...

  5. NUCLEO-L053R8 RCC时钟树 MCO输出

    RCC时钟配置实验 最近玩了一下Nucleo-L053R8板子,即STM32L053R8T6.浏览了RCC章节后,顺便做了个小实验,现在给大伙分享一下. 实验非常简单,配置一下系统时钟,可以通过肉眼观 ...

  6. STM32—时钟树(结合系统时钟函数理解)

    时钟树的概念: 我们可以把MCU的运行比作人体的运行一样,人最重要的是什么?是心跳! 心脏的周期性收缩将血液泵向身体各处.心脏对于人体好比时钟对于MCU,微控制器(MCU)的运行要靠周期性的时钟脉冲来 ...

  7. STM32 时钟树配置快速入门

    layout: post tags: [STM32] comments: true 文章目录 layout: post tags: [STM32] comments: true 为什么要了解时钟树? ...

  8. STM32入门系列-STM32时钟系统,STM32时钟树

    时钟对于单片机来说是非常重要的,它为单片机工作提供一个稳定的机器周期从而使系统能够正常运行.时钟系统犹如人的心脏,一旦有问题整个系统就崩溃.我们知道STM32属于高级单片机,其内部有很多的外设,但不是 ...

  9. STM32学习笔记:【001】时钟树与RCC

    导言 如果学过单片机的同学应该不会陌生,学习51单片机时最经常听到的就是“最小系统”. 最小系统里面少不了晶振,否则单片机无法工作. 单片机需要晶振(时钟源)来工作,那么对于STM32芯片同样如此. ...

随机推荐

  1. Qt Creator怎样更改默认构建目录

    用过VS的朋友都知道,用VS编译工程时会将生成的可执行文件放在当前工程目录下,使每个工程独立地成为一个整体,管理起来颇为方便:而Qt Creator则不同,编译程序时会创建一个与当前工程目录同级的构建 ...

  2. JavaScript 你不知道的事 -- 关于函数

    接上篇Javascript 你不知道的事,直接条列了: 每个函数创建时默认带有一个prototype属性,其中包含一个constructor属性,和一个指向Object对象的隐藏属性__proto__ ...

  3. 线程本地存储TLS(Thread Local Storage)的原理和实现——分类和原理

    本文为线程本地存储TLS系列之分类和原理. 一.TLS简述和分类 我们知道在一个进程中,所有线程是共享同一个地址空间的.所以,如果一个变量是全局的或者是静态的,那么所有线程访问的是同一份,如果某一个线 ...

  4. double转成string时,不以科学计数法表示

    用gson解析json串的时候,经常会自动把我想用string表示的内容转换成double,并且还是科学计数法,这一点也不科学,写个方法,格式化一下. public static String par ...

  5. MySQL主从架构之Master-Slave-Slave级联

    Master-Slave-Slave级联 配置结果同上一小节是一样的 注意:默认情况下,从库执行relay-log中的SQL语句不会记录到BINLOG. 所以,处于中间层的MySQL配置项需要额外开启 ...

  6. umount: /data: device is busy

    如果一个文件系统处于"busy"状态的时候,不能卸载该文件系统.如下情况将导致文件系统处于"busy"状态:1:文件系统上面有打开的文件2:某个进程的工作目录在 ...

  7. C# Dictionary通过value获取对应的key值[转发]

    1:最直白的循环遍历方法,可以分为遍历key--value键值对以及所有的key两种表现形式 2:用Linq的方式去查询(当然了这里要添加对应的命名空间 using System.Linq) 如下为一 ...

  8. springmvc处理流程

    SpringMVC核心处理流程: 1.DispatcherServlet前端控制器接收发过来的请求,交给HandlerMapping处理器映射器 2.HandlerMapping处理器映射器,根据请求 ...

  9. Spring+Struts+Hibernate 简介(转)

    http://blog.csdn.net/slnqnd/article/details/1772910/ Struts2.0 +Hibernate 3.2 +Spring 2.0 一.         ...

  10. HttpClient + PATCH support

    From - http://compiledexperience.com/blog/posts/patch-support-in-httpclient/ public static class Htt ...