STM32第九节(中级篇):RCC(第一节)——时钟树讲解

目录

前言

STM32第九节(中级篇):RCC——时钟树讲解

时钟树主系统时钟讲解

HSE时钟

HSI时钟

锁相环时钟

系统时钟

SW位控制

HCLK时钟

PCLKI时钟

PCLK2时钟

RTC时钟

MCO时钟输出

6.2.7时钟安全系统(CSS)

小结


前言

        从本章开始,我们就已经开始了中级篇的学习。在这一阶段,我们主要学习时钟RCC,中断定时器,串口通信,DMA,读写EEPROM,读写串行Flash以及FatFs的知识点,整体难度又上升了一部分。所以之前的代码功底,C语言编写能力以及单片机的使用至关重要。如果想学习的同学们可以观看我之前写的初级篇的内容。

        创作不易,点个三连支持一下吧!

STM32第九节(中级篇):RCC——时钟树讲解

        本节课我们讲RCC——复位和时钟控制。复位部分比较简单,我们本节课主要讲时钟部分。如下图就是时钟树的原理图。在讲完课程之后,我们要自己写一个系统使用的配置函数并实现超频工作。官方F103系列的时钟为72M,我们可以配置为128M,为极限频率。

时钟树主系统时钟讲解

HSE时钟

        该时钟为外部的高速时钟,如图所示,他靠的是OSC_IN以及OSC_OUT进行输入以及输出,来源呢是无源晶振(4~16M)我们通常使用8M。关于控制是RCC_CR时钟控制寄存器的位16:HSEON控制。我们可以看到,在下图中有两个起振电容,大小为20PF。与之相匹配的还有HSI在内部做时钟,两者的区别为HSE精度比较高,而LSE受温度影响,会有偏差。

HSI时钟

        高速的内部时钟,大小为8M,当HSE故障时,系统时钟会自动切换到HSI,直到HSE启动成功。而控制它的是RCC_CR 时钟控制寄存器的位0:HSION控制。这里要注意一下,HSE时钟的8M在经过倍频9倍后配置为72M,而如果启动了HSI时钟,则一直为8M,无法正常完成工作。

锁相环时钟

        来源 : (HSI/2、HSE)经过倍频所得。

        控制:CFGR:PLLXTPRE、PLLMUL口注意:PLL时钟源头使用HIS/2的时候,PLLMUL最大只能是16,这个时候PLLCLK最大只能是64M,小于ST官方推荐的最大时钟72M。

        我们观察发现,在HSE时钟进去之后,会有一个二分频和一个不分频的线路,与这根不分频线路相接的就是锁相环时钟源PLLSRC,除了这跟线路,还有一根就是HSI的二分频线路,8M被分频为4M接入PLLSRC。相对应的寄存器为RCC_CFGR寄存器的第十七位PLLXTPRE。

        PLLXTPRE: HSE分频器作为PLL输入(HSE divider for PLL entry)由软件置'1'或清”0'来分频HSE后作为PLL输入时钟。只能在关闭PLL时才能写入此位。0:HSE不分频,1:HSE 2分频。

        PLLSRC: PLL输入时钟源(PLLentryclock source)由软件置"1'或清'0'来选择PLL输入时钟源,只能在关闭PLL时才能写入此位。0:HSI振荡器时钟经2分频后作为PLL输入时钟,1:HSE时钟作为PLL输入时钟。

系统时钟

        我们可以看到,对于系统时钟来说,有三种方式可以配置系统时钟输入:HSI和HSE直接输入以及PLLCLK锁相环时钟配置,一般就是用锁相环时钟配置时钟为72M.,他就由SW位来控制。

    

SW位控制

        SW[1:0]:系统时钟切换(System clock switch)由软件置'1'或清’0'来选择系统时钟源。在从停止或待机模式中返回时或直接或间接作为系统时钟的HSE出现故障时,由硬件强制选择HSI作为系统时钟(如果时钟安全系统已经启动)。

        00:HSI作为系统时钟:

        01:HSE作为系统时钟:

        10:PLL输出作为系统时钟;

        11:不可用。

        而相应的寄存器位SWS位也会配置为1:

        我们一般把SW配置为10,PLL输出。然后我们读取SWS位是否为10,来判断我们是否时钟切换完毕。

HCLK时钟

        HCLK:AHB高速总线时钟,速度最高为72M。为AHB总线的外设提供时钟、为Cortex系统定时器提供时钟(SysTick)、为内核提供时钟(FCLK)。

        来源:系统时钟分频得到,一般设置HCLK=SYSCLK=72M。

        控制:CFGR:HPRE。

PCLKI时钟

        PCLK1:APB1低速总线时钟,最高为36M。为APB1总线的外设提供时钟。2倍频之后则为APB1总线的定时器2-7提供时钟,最大为72M。

        来源:HCLK分频得到,一般配置PCLK1=HCLK/2=36M

        控制:RCC CFGR 时钟配置寄存器的PPRE1位

PCLK2时钟

        PCLK2:APB2高速总线时钟,最高为72M。为APB1总线的外设提供时钟。为APB1总线的定时器1和8提供时钟,最大为72M。

        来源:HCLK分频得到、一般配置PCLK1=HCLK=72M

        控制 : RCC CFGR 时钟配置寄存器的PPRE2位

        当APB2配置为72M的时候,通过ADC预分频器最大为14MHz,而在不超频的前提下,最大放大倍数为4倍。

RTC时钟

        RTC时钟:为芯片内部的RTC外设提供时钟口来源:HSE RTC(HSE分频得到)、LSE(外部32.768KHZ的晶体提供)、LSI(32KHZ)

        控制:RCC备份域控制寄存器RCC BDCR:RTCSEL位控制

        独立看门狗时钟:IWDGCLK,由LSI提供

        除了HSE提供的128分之一,还有LSE时钟提供的32.768KHz,还有一个40KHzz的LSI HIC。我们可以发现,在LSE时钟中,有两个接口,分别为OSC32_IN以及OSC32_OUT,如图所示:

MCO时钟输出

        MCO微控制器时钟输出引脚,由PA8复用所得。

        来源:PLLCLK/2,HSE、HSI、SYSCLK

        控制:CRGR以及MCO

6.2.7时钟安全系统(CSS)

        时钟安全系统可以通过软件被激活。一旦其被激活,时钟监测器将在HSE振荡器启动延迟后被使能,并在HSE时钟关闭后关闭。

        如果HSE时钟发生故障,HSE振荡器被自动关闭,时钟失效事件将被送到高级定时器(TIM1和TIM8)的刹车输入端,并产生时钟安全中断CSSI,允许软件完成营救操作。此CSSI中断连接到CortexTm-M3的NM|中断(不可屏蔽中断)。一旦CSS被激活,并目HSE时钟出现故障,CSS中断就产生,并且NMI也自动产生。NMI将被不断执行,直到CSS中断挂起位被清除。因此,在NMI的处理程序中必须通过设置时钟中断寄存器(RCC CIR)里的CSSC位来清除CSS中断。

        如果HSE振荡器被直接或间接地作为系统时钟,(间接的意思是:它被作为PLL输入时钟,并且PLL时钟被作为系统时钟),时钟故障将导致系统时钟自动切换到HSI振荡器,同时外部HSE振荡器被关闭。在时钟失效时,如果HSE振荡器时钟(被分频或未被分频)是用作系统时钟的PLL的输入时钟,PLL也将被关闭。

小结

        本节课我们讲述了功能框图,下节课我们讲这个系统使用配置代码部分。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/464685.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

单链表操作

单链表操作 1. 链表的概念2. 链表的分类2.1.单向或者双向2.2 带头或者不带头2.3 循环或者非循环2.4 常用的链表 3. 单链表的实现3.1 单链表的打印3.2 单链表的头插3.3 单链表的尾插3.4 单链表的头删3.5 单链表的尾删3.6 单链表的查询3.7 在pos前插入数据3.8 在pos后插入数据3.9…

Linux——进程通信(一) 匿名管道

目录 前言 一、进程间通信 二、匿名管道的概念 三、匿名管道的代码实现 四、管道的四种情况 1.管道无数据,读端需等待 2.管道被写满,写端需等待 3.写端关闭,读端一直读取 4.读端关闭,写端一直写入 五、管道的特性 前言 …

不锈钢多功能电工剥线钳分线绕线剪线剥线钳剥线压线扒皮钳子

品牌:银隆 型号:089B绿色 材质:镍铬钢(不锈钢) 颜色分类:089B灰色,089B红色,089B绿色,089B黑色,089B橙色 功能齐集一身,一钳多用,多功能剥线钳。剥线,剪线&#xff…

Java-CAS 原理与 JUC 原子类

由于 JVM 的 synchronized 重量级锁涉及到操作系统(如 Linux) 内核态下的互斥锁(Mutex)的使用, 其线程阻塞和唤醒都涉及到进程在用户态和到内核态频繁切换, 导致重量级锁开销大、性能低。 而 JVM 的 synchr…

免费阅读篇 | 芒果YOLOv8改进114:上采样Dysample:顶会ICCV2023,轻量级图像增采样器,通过学习采样来学习上采样,计算资源需求小

💡🚀🚀🚀本博客 改进源代码改进 适用于 YOLOv8 按步骤操作运行改进后的代码即可 该专栏完整目录链接: 芒果YOLOv8深度改进教程 🚀🚀🚀 DySample是一个超轻量级和有效的动态上采样器…

DDos攻击如何被高防服务器有效防范?

德迅云安全-领先云安全服务与解决方案提供商 什么是DDos攻击? DDos攻击是一种网络攻击手段,旨在通过使目标系统的服务不可用或中断,导致无法正常使用网络服务。DDos攻击可以采取多种方式实施,包括洪水攻击、压力测试、UDP Flood…

HTML静态网页成品作业(HTML+CSS)——游戏战地介绍设计制作(4个页面)

🎉不定期分享源码,关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 🏷️本套采用HTMLCSS,未使用Javacsript代码,共有4个页面。 二、作品演示 三、代…

关于PXIE3U18槽背板原理拓扑关系

如今IT行业日新月异,飞速发展,随之带来的是数据吞吐量的急剧升高。大数据,大存储将成为未来数据通信的主流,建立快速、大容量的数据传输通道将成为电子系统的关键。随着集成技术和互连技术的发展,新的串口技术&#xf…

【QT+QGIS跨平台编译】之七十七:【QGIS_Gui跨平台编译】—【错误处理:字符串错误】

文章目录 一、字符串错误二、处理方法三、涉及到的文件一、字符串错误 常量中有换行符错误:(也有const char * 到 LPCWSTR 转换的错误) 二、处理方法 需要把对应的文档用记事本打开,另存为 “带有BOM的UTF-8” 三、涉及到的文件 src\gui\qgsadvanceddigitizingdockwidge…

ClickHouse中的设置的分类

ClickHouse中的各种设置 ClickHouse中的设置有几百个,下面对这些设置做了一个简单的分类。

【Godot 4.2】常见几何图形、网格、刻度线点求取函数及原理总结

概述 本篇为ShapePoints静态函数库的补充和辅助文档。ShapePoints函数库是一个用于生成常见几何图形顶点数据(PackedVector2Array)的静态函数库。生成的数据可用于_draw和Line2D、Polygon2D等进行绘制和显示。因为不断地持续扩展,ShapePoint…

Orbit 使用指南 03 | 与刚体交互 | Isaac Sim | Omniverse

如是我闻: “在之前的指南中,我们讨论了独立脚本( standalone script)的基本工作原理以及如何在模拟器中生成不同的对象(prims)。在指南03中,我们将展示如何创建并与刚体进行交互。为此&#xf…

机器学习周记(第三十周:文献阅读-SageFormer)2024.3.11~2024.3.17

目录 摘要 ABSTRACT 1 论文信息 1.1 论文标题 1.2 论文摘要 1.3 论文背景 2 论文模型 2.1 问题描述 2.2 模型信息 2.2.1 Series-aware Global Tokens(序列感知全局标记) 2.2.2 Graph Structure Learning(图结构学习) …

大数据面试题之SQL题

大数据面试题之SQL题 1.有一个录取学生人数表,记录的是每年录取学生人数和入学学生的学制 以下是表结构: CREATE TABLE admit ( id int(11) NOT NULL AUTO_INCREMENT, year int(255) DEFAULT NULL COMMENT ‘入学年度’, num int(255) DEFAULT NULL COMM…

交流互动系统|基于springboot框架+ Mysql+Java+Tomcat的交流互动系统设计与实现(可运行源码+数据库+设计文档)

推荐阅读100套最新项目 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 2024年56套包含java,ssm,springboot的平台设计与实现项目系统开发资源(可…

【医学图像处理】ECAT和HRRT格式转nii格式【超简单】

之前从ADNI上下载PET数据的时候发现有许多数据的格式不是DICOM的而是ECAT或者是HRRT格式,这对原本就少的PET数据是血上加霜啊。 当然只使用DICOM格式的数据也会得到不少的数据,我一开始也是只使用DICOM格式的样本,后来为了得到更多的数据&a…

2024年值得创作者关注的十大AI动画创新平台

别提找大型工作室制作动画了。如今,AI平台让我们就可以轻松制作动画。从简单的文本生动画功能到复杂的角色动作,这些平台为各种类型的创作者提供了不同的功能。 AI已经有了长足的发展,现在它可以理解复杂的人类动作和艺术意图,将简单的输入转化成丰富而详细的动画。 下面…

RoketMQ主从搭建

vim /etc/hosts# IP与域名映射,端口看自己的#nameserver 192.168.126.132 rocketmq-nameserver1 192.168.126.133 rocketmq-nameserver2# 注意主从节点不在同一个主机上 #broker 192.168.126.132 rocketmq-master1 192.168.126.133 rocketmq-master2#broker 192.168…

HarmonyOS(鸿蒙)不再适合JS语言开发

ArkTS是鸿蒙生态的应用开发语言。它在保持TypeScript(简称TS)基本语法风格的基础上,对TS的动态类型特性施加更严格的约束,引入静态类型。同时,提供了声明式UI、状态管理等相应的能力,让开发者可以以更简洁、…

用Python 3 开发的摄像头拍照程序

在当今数字化的世界中,使用摄像头进行拍照已成为日常生活的重要组成部分。无论是用于个人用途还是专业用途,能够使用电脑摄像头轻松拍照都是一项有用的技能。本文将指导您使用 Python 3 编写一个简单的程序,让您能够使用电脑摄像头拍照并将其…