STM32的BKP与RTC简介

news2024/11/19 19:43:03

芯片的供电引脚

引脚表橙色的是芯片的供电引脚,其中VSS/VDD是芯片内部数字部分的供电,VSSA/VDDA是芯片内部模拟部分的供电,这4组以VDD开头的供电都是系统的主电源,正常使用时,全部都要接3.3V的电源上,VBAT是备用电池的引脚,如果要使用STM32的BKP和RTC,这个引脚就必须接备用电池,用来维持BKP和RTC主电源掉电后的供电,VBAT只有一根电源正,接的时候GND要与VDD共地。如果没有外部电池,参考手册建议VBAT引脚接到VDD并接一个100nf的滤波电容。

BKP简介

1、BKP(Backup Registers)备份寄存器

2、BKP可用于存储用户应用程序数据。当VDD(2.0~3.6V)电源被切断,他们仍然由VBAT(1.8~3.6V)维持供电。当系统在待机模式下被唤醒,或系统复位或电源复位时,他们也不会被复位。当VDD和VBAT都没电时,BKP就会清空数据,因为BKP本质是RAM存储器,没有掉电不丢失的特性。

3、TAMPER引脚产生的侵入事件将所有备份寄存器内容清除(TAMPER引脚产生上升沿/下降沿就清空数据),注意PC13、TAMPER引脚、RTC输出在一个引脚上,只能分时复用

4、RTC引脚输出RTC校准时钟、RTC闹钟脉冲或者秒脉冲

5、存储RTC时钟校准寄存器(可配合上面输出RTC校准时钟的功能对RTC时钟进行校准)

6、用户数据存储容量:20字节(中容量和小容量)/ 84字节(大容量和互联型)

BKP的基本结构

上图中的橙色部分位于后备区域,BKP和RTC都位于后备区域。后备区域供电的特性:当VDD主电源掉电时,切换至VBAT供电,当VDD上电时,供电由主电源VDD提供,这样可以节省VBAT备用电池的电量。

RTC简介

1、RTC(Real Time Clock)实时时钟

2、RTC是一个独立的定时器,可为系统提供时钟和日历的功能

3、RTC和时钟配置系统处于后备区域,系统复位时数据不清零,VDD(2.0~3.6V)断电后可借助VBAT(1.8~3.6V)供电继续走时

4、32位的可编程计数器,可对应Unix时间戳的秒计数器

5、20位的可编程预分频器,可适配不同频率的输入时钟

6、可选择三种RTC时钟源:

    HSE时钟除以128(通常为8MHz/128)

    LSE振荡器时钟(通常为32.768KHz)

    LSI振荡器时钟(40KHz)

RTC的时钟大多是32.768kHz的原因

32.768kHz==32768Hz

32768=2^15,经过一个15位分频器的自然溢出,就可以得到1Hz的频率。

自然溢出:设计一个15位的计数器,该计数器没有计数目标,直接从0记到最大值32767,记满后自然溢出,这个信号就是1Hz的。没有计数目标,也不需要比较,可以简化电路设计。

RTC的框图

1、框图分为4个部分,上面是APB1总线读写部分(RTC是APB1总线上的设备),左边是核心的分频,计数计时部分,右边是中断输出使能和NVIC部分,下边是与PWR有关的部分(RTC的闹钟可以唤醒设备,退出待机状态),图中灰色部分在主电源VDD掉电后,可由VBAT维持供电,继续工作。

2、RTCCLK是RTC的时钟源选择,共有3中选择。

RTC_PRL寄存器的值是n就是n+1倍分频,比如n=6就是7分频。(n就是计数目标)

RTC_DIV计数器是一个自减计数器,来一个脉冲计数器减1,计数值减至0后再来一个脉冲溢出时由PRL重装载设定值。比如:DIV可以保持初始值为0,首次来一个脉冲,计数值溢出重载为32767,之后来一个脉冲减1,一直减至0,再来一个脉冲计数值重载,反复循环,详细看下图。两个秒脉冲的间隔就是32768个RTCCLK单位时间间隔。

3、当RTC_CNT和RTC_ALR的值相等时,这时就会产生RTC_Alarm信号,一路通向中断,可以在中断中执行一些操作,另一路通向待机部分,可以让单片机退出待机模式(WK_UP也可以使设备退出待机模式)。右边3个中断分别是秒中断,溢出中断和闹钟中断。F结尾的是中断标志位,IE结尾的是中断使能。

RTC的基本结构

RTC操作注意事项

1、执行以下操作将使能对BKP和RTC的访问:

设置RCC_APB1ENR的PWREN和BKPEN,使能PWR和BKP时钟

设置PWR_CR的DBP,使能对BKP和RTC的访问

2、若在读取RTC寄存器时,RTC的APB1接口曾经处于禁止状态,则软件首先必须等待RTC_CRL寄存器中的RSF位(寄存器同步标志)被硬件置1。(为保证RTC掉电继续工作,RTC的寄存器由RTCCLK驱动。故用APB1总线访问RTC寄存器时,有时钟不同步的问题(一个36M,一个大约32k),只有在RTCCLK来一个上升沿RTC寄存器的值才能同步到APB1总线上,等待RSF标志位置1后,实质上就是等待RTC寄存器的值同步到APB1总线上,再由APB1总线获取RTC的值)

3、必须设置RTC_CRL寄存器中的CNF位,使RTC进入配置模式后,才能写入RTC_PRL、RTC_CNT、RTC_ALR寄存器(使用库函数时,自动加上了该操作)

4、对RTC任何寄存器的写操作,都必须在前一次写操作结束后进行。可以通过查询RTC_CR寄存器中的RTOFF状态位,判断RTC寄存器是否处于更新中。仅当RTOFF状态位是1时,才可以写入RTC寄存器。(实质上还是由于时钟不同步的原因)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

实现跨VLAN通信、以及RIP路由协议的配置

一、如下图片: 1. 按照拓扑图所示,将8台计算机分别配置到相应的VLAN中。(20分) 2. 配置实现同一VLAN中的计算机可以通信。(22分) 3. 配置实现PC1,PC2,PC3,PC4可以互相通信,PC5,PC6,PC7,PC8可以互…

JavaSE基础50题:19. 递归求斐波那契数列的第N项。

概述 用递归求斐波那契数列的第N项。 斐波那契数列: 1 1 2 3 5 8 …… f(n) f(n-1) f(n-2) 代码 public class P19 {public static int fibnacio(int n) {if (n 1 || n 2) {return 1;}int tmp fibnacio(n-1) fibnacio(n-2);return tmp;}public static void…

大数据技术4:Lambda和Kappa架构区别

前言:在大数据处理领域,两种突出的数据架构已成为处理大量数据的流行选择:Lambda 架构和 Kappa 架构。这些架构为实时处理和批处理提供了强大的技术解决方案,使组织能够从其数据中获得有价值的见解。随着互联网时代来临&#xff0…

No suitable driver found for jdbc:mysql://localhost:3306(2023/12/7更新)

有两种情况: 压根没安装下载了但没设为库或方法不对 大多数为第一种情况: 一. 下载jdbc 打开网址选择一个版本进行下载 https://nowjava.com/jar/version/mysql/mysql-connector-java.html 二.安装jdbc 在项目里建一个lib文件夹 在把之前下载的jar文…

2017下半年软工(桥接模式)

题目——桥接模式(抽象调用实现部分) package org.example.桥接模式;/*** 桥接模式的核心思想是将抽象部分与它的实现部分分离,使它们可以独立变化,就是说你在实现部分:WinImp、LinuxImp基础上还能加上RedHatImp&#…

Java零基础——Elasticsearch篇

1.Elasticsearch简介 Elasticsearch是一个基于Lucene的一个开源的分布式、RESTful 风格的搜索和数据分析引擎。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。Elasticsearch用于云计算中&#xf…

入门指南:使用Prometheus监控Linux服务器

Prometheus介绍 Prometheus是一款开源的监控系统,主要用于收集、存储和查询时间序列数据,以便于对系统进行监控和分析。以下是Prometheus的架构图介绍: Prometheus的架构由四个主要组件组成: Prometheus Server(Prom…

【EI会议征稿中】2024年第四届人工智能、自动化与高性能计算国际会议(AIAHPC 2024)

2024年第四届人工智能、自动化与高性能计算国际会议(AIAHPC 2024) 2024 4th International Conference on Artificial Intelligence, Automation and High Performance Computing 2024第四届人工智能、自动化与高性能计算国际会议(AIAHPC 2024)将于20…

Java实现Socket聊天室

一、网络编程是什么? 在网络通信协议下,不同计算机上运行的程序,进行数据传输。 应用场景:即时通讯、网游对战、金融证券、国际贸易、邮件、等等。 不管是什么场景,都是计算机与计算机之间通过网络进行数据传输。 …

用23种设计模式打造一个cocos creator的游戏框架----(三)外观模式模式

1、模式标准 模式名称:外观模式 模式分类:结构型 模式意图:为一组复杂的子系统提供了一个统一的简单接口。这个统一接口位于所有子系统之上,使用户可以更方便地使用整个系统。 结构图: 适用于: 当你想为…

如何将超过 32000 个字符放入富文本控件中?

在上一篇文章中,我们了解了如何将一整个文件的内容加载的富文本控件中。 我们给出的例子代码运作得还挺符合预期的,但会碰到这样一个问题。 有一天,你尝试使用它来显示法律部门提供的许可协议在产品的安装程序中。 这是一篇巨大的文本文件&a…

软件测试入门:静态测试

什么是静态测试 顾名思义,这里的静态是指程序的状态,即在不执行代码的情况下检查软件应用程序中的缺陷。进行静态测试是为了仅早在开发的早期阶段发现程序缺陷,因为这样可以更快速地识别缺陷并低成本解决缺陷,它还有助于查找动态测…

CubeMx HAL STM32H750 1ms

关于STM32的定时器都通用 timer(单位US)(分频值*重装值) / 定时器所在总线的时钟频率(单位MHZ) 1000us 1 ms

Vue3拖拽功能【VueDraggablePlus】

一、介绍 由于 Sortablejs 的 vue3 组件一直没有更新,已经跟 vue3 严重脱节,所以诞生了这个项目,这个组件是基于 Sortablejs 的,所以如果你想了解更多关于 Sortablejs 的信息,可以查看Sortablejs 官网。VueDraggableP…

netty源码:(9)ChannelId

ChannelId代表了一个Channel的全局标识符。它提供了asShortText和asLongText两个方法来返回对应的字符串

毅速3D打印随形透气钢:透气与形状完美结合

随着科技的飞速发展,3D打印技术已经逐渐渗透到我们生活的各个角落。从简单的塑料玩具到复杂的汽车零部件,再到高精度的医疗器械,3D打印以其独特的优势正在改变着世界的生产方式。今天,我们一起了解一下毅速3D打印随形透气钢技术&a…

Java se之类和对象

目录 类的定义格式如何去自定义this的引用如何初始化对象构造方法的定义和使用 类的定义格式 class ClassName{ //属性(成员变量) //行为(成员方法) } 1>变量与方法 1.成员变量:普通成员变量 静态成员变量 2.成员方法:普通成员方法 静态成员方法 其中的静态变量与方法,在后…

AtCoder ABC周赛2023 11/4 (Sat) D题题解

目录 原题截图: 题目大意: 主要思路: 注意事项(很多人再这个地方掉坑): 代码: 原题截图: 题目大意: 给你两个数组(A和B)长度都为n,然你求出一…

外汇天眼:什么时段做外汇交易最好,有所谓的“最佳时间点”吗?

在外汇交易的时候,很多手动交易的投资者不知道到底什么时间段操作交易最适合自己。 我们在进行选择最佳交易时间的时候,一定要明白各时间段的全球各个市场的交易状况,这样你才能分配好自己的时间。 当然在通过技术分析与基本分析选择好币种后…

快速入门FastAPI中的Field参数

快速入门FastAPI中的Field参数 在构建RESTful API时,定义资源模型是至关重要的。FastAPI是一个用于构建API的现代Python web框架,它使用Pydantic库来处理数据验证和模型。在这个过程中,Field 参数起着关键的作用。 本教程将向您介绍如何在F…