【江协科技STM32】BKP备寄存器RTC实时时钟(学习笔记)

 BKP备寄存器

BKP简介 

  • BKP(Backup Registers)备份寄存器
  • BKP可用于存储用户应用程序数据。当VDD(2.0~3.6V)电源被切断,他们仍然由VBAT(1.8~3.6V)维持供电。当系统在待机模式下被唤醒,或系统复位或电源复位时,他们也不会被复位。但是如果VDD电源断开,VBAT也没有电,那就数据清零。因为BKP本质上时RAM存储器,没有掉电不丢失的能力。
  • TAMPER引脚产生的侵入事件将所有备份寄存器内容清除
  • RTC引脚输出RTC校准时钟、RTC闹钟脉冲或者秒脉冲
  • 存储RTC时钟校准寄存器
  • 用户数据存储容量:     20字节(中容量和小容量)/ 84字节(大容量和互联型) 

具体描述看参考手册第五章 

 BKP基本结构

 

橙色部分后备区域在待机时维持供电,依赖于硬件层面的独立电源设计:

  • 备份电源域:微控制器(如 STM32 等)设有专门的后备电源域,后备区域(如 RTC 预分频器、计数器、闹钟寄存器等模块)接入该电源域。
  • 独立供电来源:当系统进入待机模式,主电源(如 APB1 总线供电)关闭,但后备电源域由独立电源(如备用电池、超级电容或 VBAT 引脚供电)持续供电。这种设计确保 RTC 在待机期间仍能保持计时、计数等功能,避免时间信息丢失或计时中断。

1. 输入功能模块

  • 电池供电(VBAT):通过外部电池或备用电源为模块供电,确保数据寄存器等关键区域在主电源断电时仍维持工作,保护数据不丢失。
  • 侵入检测(TAMPER):接收外部侵入检测信号上升沿或者下降沿(TAMPER),监测是否存在非法物理侵入或特定触发事件,保障系统安全。
  • 时钟输出(RTC):将内部处理的时钟信号输出至 RTC 模块,为实时时钟功能提供支持。

2. 核心寄存器模块

  • 数据寄存器:包含多个 16 位寄存器(如 DR1 [15:0]、DR2 [15:0]…DR42 [15:0]),用于存储用户数据或配置参数。一个寄存器存两个字节,所以DR1~DR10就是20各字节,中小容量。其中,“大容量和互联型” 设备支持更多数据寄存器(如 DR42)。
  • 控制与状态相关寄存器
    • 控制寄存器:用于配置模块工作模式、参数等。
    • 状态寄存器:反馈模块当前工作状态(如中断、错误等)。
    • RTC 时钟校准寄存器:对 RTC 时钟进行精度校准,确保计时准确性。

 RTC实时时钟

RTC简介

  •  RTC(Real Time Clock)实时时钟
  • RTC是一个独立的定时器,可为系统提供时钟和日历的功能
  • RTC和时钟配置系统处于后备区域,系统复位时数据不清零,VDD(2.0~3.6V)断电后可借助VBAT(1.8~3.6V)供电继续走时
  • 32位的可编程计数器,可对应Unix时间戳的秒计数器
  • 20位的可编程预分频器,可适配不同频率的输入时钟

可选择三种RTC时钟源:     

  • HSE时钟除以128(通常为8MHz/128)     
  • LSE振荡器时钟(通常为32.768KHz)   主要选中这路
  •  LSI振荡器时钟(40KHz) 

 解释三种RTC时钟源:RCC时钟树

RTC框图  

图 154 为简化的实时时钟(RTC)框图,主要展示 RTC 模块的核心架构与工作流程,包含以下关键部分:

1. 系统连接与供电机制

  • APB1 总线与接口:通过 APB1 接口实现 RTC 模块与 APB1 总线的通信,用于配置和读取 RTC 寄存器数据,但待机时 APB1 接口不供电。
  • 后备区域供电图中灰色标注的 “后备区域”(如 RTC 预分频器、32 位计数器等)在待机时维持供电,确保 RTC 计时功能持续运行,不受主电源掉电影响。

2. RTC 核心功能模块

  • RTC 预分频器
    • 包含重装载寄存器RTC_PRL和分频寄存器RTC_DIV,对输入时钟RTCCLK进行分频,生成计数器所需的时钟信号TR_CLK,通过重装载机制更新分频参数。
  • 32 位可编程计数器
    • RTC_CNT为核心计数器,对TR_CLK计数,实现时间累加;RTC_ALR为闹钟寄存器,存储闹钟设定值,与RTC_CNT比较,匹配时产生RTC_Alarm信号,触发闹钟事件。
  • 控制与中断模块(RTC_CR)
    • 处理中断标志(SECF秒中断标志、OWF溢出标志、ALRF闹钟标志)和中断使能(SECIEOWIEALRIE),汇总中断信号后接入 NVIC 中断控制器,实现中断响应。

3. 唤醒功能

  • RTC_Alarm信号除触发中断外,还可通过WKP_STDBY触发退出待机模式;此外,外部WKUP pin(唤醒引脚)也参与待机唤醒,确保系统在闹钟事件或外部触发时恢复运行。

 RTC基本结构 

 硬件电路

简单电路参考来源STM32数据手册5.16供电方案: 

推荐连接的参考来源是STM32参考手册:

外部低速晶振参考来源STM32数据手册5.36使用一个晶体/陶瓷谐振器产生的低速外部时钟:

 

RTC操作注意事项 

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

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

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

  • 若在读取RTC寄存器时,RTC的APB1接口曾经处于禁止状态,则软件首先必须等待RTC_CRL寄存器中的RSF位(寄存器同步标志)被硬件置1
  • 必须设置RTC_CRL寄存器中的CNF位,使RTC进入配置模式后,才能写入RTC_PRL、RTC_CNT、RTC_ALR寄存器
  • 对RTC任何寄存器的写操作,都必须在前一次写操作结束后进行。可以通过查询RTC_CR寄存器中的RTOFF状态位,判断RTC寄存器是否处于更新中。仅当RTOFF状态位是1时,才可以写入RTC寄存器 

 第二点细节:为什么要等待RTC_CRL寄存器中的RSF位

 

 为什么要当RTOFF状态位是1,才可以写入RTC寄存器 

 

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

leetcode 之(移除元素)

给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素。元素的顺序可能发生改变。然后返回 nums 中与 val 不同的元素的数量。 假设 nums 中不等于 val 的元素数量为 k,要通过此题,您需要执行以下操作: 更改…

Spring MVC 请求与响应

目录 一、Spring MVC 请求 1.1 请求映射核心注解:RequestMapping 1.1.1 作用范围 1.1.2 属性详解 1.2 请求参数绑定机制 1.2.1 绑定规则 1.2.2 特殊场景处理 二、Spring MVC 响应 2.1 视图返回机制 2.1.1 String类型返回 2.1.2 ModelAndView对象 2.2 JS…

spring-security原理与应用系列:核心过滤器

目录 运行机制 WebSecurity SecurityFilterChain SecurityFilterChains FilterChainProxy VirtualFilterChain 内部结构 类图 FilterChainProxy FilterChain VirtualFilterChain 小结 紧接上一篇文章,这一篇我们来看看FilterChainProxy类的运行机制及内…

Android之卡片式滑动

文章目录 前言一、效果图二、实现步骤1.主界面xml2.自定义的viewpage3.卡片接口类4.阴影和缩放变化类5.卡片adapter6.卡片adapter的xml7.style8.CardItem9.activity实现10.指示器drawable 总结 前言 对于这个需求,之前的项目也有做过,但是过于赶项目就没…

字典树与01trie

字典树简介 当我们通过字典查一个字或单词的时候,我们会通过前缀或关键字的来快速定位一个字的位置,进行快速查找。 字典树就是类似字典中索引表的一种数据结构,能够帮助我们快速定位一个字符串的位置。 字典树是一种存储字符串的数据结构…

基于SpringBoot的电影售票系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏:…

R语言机器学习算法实战系列(二十二)特征选择之递归特征消除(REF)算法

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍原理步骤教程数据下载加载R包导入数据数据预处理数据分割Recursive Feature Elimination运行RFE过程选择重要特征基于重要特征构建随机森林模型混淆矩阵评估模型AUC曲线刻画模型在训…

日事清甘特图制作工具:一键生成,精准管理项目周期

在工作中,我们很多岗位都经常需要对项目进度进行追踪, 例如人事经理需要要追踪招聘进度或员工培训计划,项目经理负责监督项目的各个阶段以保证按计划执行,软件研发经理则需确保功能迭代的及时交付,而市场经理负责监控…

vue 加载动态效果,自行封装组件

背景&#xff1a; 在项目开发中&#xff0c;会请求接口&#xff0c;就会遇到加载中、加载成功、加载失败、和加载成功但暂无数据等情况。就自行封装了一个加载组件。采用vue3elementsetup组合式写法。 实现效果&#xff1a; 封装组件&#xff1a; //封装组件 <template>…

SQLark SQL编辑器秘籍,编写高效SQL查询

SQLark 是一款功能强大的数据库开发和管理工具&#xff0c;用于快速查询、创建和管理不同类型的数据库系统&#xff0c;支持达梦、Oracle 和 MySQL 数据库。SQLark内置的 SQL 编辑器&#xff0c;基于语法解析&#xff0c;集成智能提示、实时语法检查及语法高亮等功能&#xff0…

Flutter项目之table页面实现

目录&#xff1a; 1、首页页面index.dart&#xff08;首页table页面&#xff09; 1、首页页面 效果图&#xff1a; index.dart&#xff08;首页table页面&#xff09; import package:flutter/material.dart; import package:flutter_haoke/pages/home/info/index.dart; impo…

【学习笔记】卷积网络简介及原理探析

作者选择了由 Ian Goodfellow、Yoshua Bengio 和 Aaron Courville 三位大佬撰写的《Deep Learning》(人工智能领域的经典教程&#xff0c;深度学习领域研究生必读教材),开始深度学习领域学习&#xff0c;深入全面的理解深度学习的理论知识。 之前的文章参考下面的链接&#xf…

【北京迅为】iTOP-RK3568开发板鸿蒙OpenHarmony系统南向驱动开发实操-HDF驱动配置UART

瑞芯微RK3568芯片是一款定位中高端的通用型SOC&#xff0c;采用22nm制程工艺&#xff0c;搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码&#xff0c;支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU&#xff0c;可用于轻量级人工…

【蓝桥杯每日一题】3.25

&#x1f3dd;️专栏&#xff1a; 【蓝桥杯备篇】 &#x1f305;主页&#xff1a; f狐o狸x “OJ超时不是终点&#xff0c;是算法在提醒你该优化时间复杂度了&#xff01;” 目录 3.25 差分数组 一、一维差分 题目链接&#xff1a; 题目描述&#xff1a; 解题思路&#xff1a;…

穿透Session 0隔离

1、前言 在 Windows XP 和 Windows Server 2003 之前&#xff0c;用户和服务会共享同一个会话&#xff0c;而这个会话是由第一个登录到控制台的用户来启动的&#xff0c;该会话就称为Session 0。 而从Windows Vista 开始&#xff0c;Windows 采取了会话隔离的措施&#xff0c;…

大模型思维链COT:Chain-of-Thought Prompting Elicits Reasoningin Large Language Models

一、TL&#xff1b;DR 探索了COT&#xff08;chain-of-thought prompting&#xff09;通过一系列的中间推理步骤来显著的提升了LLM的复杂推理能力在三个大型语言模型上的实验表明&#xff0c;思维链提示能够提升模型在一系列算术、常识和符号推理任务上的表现解释了一下为什么…

颠覆传统:SaaS 品牌如何通过 SEO 策略引爆市场!

SaaS 商业模式提供了令人难以置信的可扩展性和盈利能力——但前提是与正确的营销增长策略相结合。 SaaS 品牌知道&#xff0c;托管基于云的应用程序的成本会随着用户量的增加而降低&#xff0c;因此必须专注于订阅者的快速增长&#xff0c;以保持竞争力并降低成本。 许多 CMO…

大模型训练 | 智能体知识库 资源收集之心理咨询问答数据集

最近我一直在研究AI大模型相关的内容&#xff0c;想着从现在开始慢慢收集各种各样的资源&#xff0c;万一以后需要训练大模型的时候可以用到&#xff0c;或者自己以后也许会需要。今天我想介绍一组“心理咨询问答数据集”产品&#xff0c;包含9414条心理咨询问答数据&#xff0…

vivado 创建生成时钟

创建生成时钟 生成时钟源自另一个现有时钟 &#xff08;主时钟&#xff09;。通常用来描述由逻辑块在主时钟上执行的波形变换。由于生成时钟的定义 取决于主时钟特性&#xff0c;因此必须首先定义主时钟。要明确定义生成时钟&#xff0c;必须使用 create_generated_clock 命…