当前位置: 首页 > article >正文

【江协科技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寄存器 

 

相关文章:

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

BKP备寄存器 BKP简介 BKP(Backup Registers)备份寄存器BKP可用于存储用户应用程序数据。当VDD(2.0~3.6V)电源被切断,他们仍然由VBAT(1.8~3.6V)维持供电。当系统在待机模式下被唤醒&#xff0…...

卷积神经网络 - 参数学习

本文我们通过两个简化的例子,展示如何从前向传播、损失计算,到反向传播推导梯度,再到参数更新,完整地描述卷积层的参数学习过程。 一、例子一 我们构造一个非常简单的卷积神经网络,其结构仅包含一个卷积层和一个输出…...

亮数据爬取API爬取亚马逊电商平台实战教程

前言 在当今数据驱动的商业环境中,企业需要快速、精准地获取互联网上的公开数据以支持市场分析、竞品调研和用户行为研究。然而,传统的手动网页爬取方式面临着诸多挑战:IP封锁、验证码干扰、网站结构频繁变更,以及高昂的运维成本…...

[CLS] Token 在 ViT(Vision Transformer)中的作用与实现

[CLS] Token 在 ViT(Vision Transformer)中的作用与实现 1. 什么是 [CLS] Token? [CLS](classification token)是Transformer模型中一个可学习的嵌入向量,最初在 BERT(Bidirectional Encoder …...

基于网启PXE服务器的批量定制系统平台

项目概述 1.需求 公司新购了一批服务器和台式机,需要为台式机和服务器安装系统,一部分需要安装国产OpenEuler,一部分要求安装CentOS 7.9,同时也要满足定制化需求,即按要求分区安装相应软件。 2.使用开源软件 &…...

Reactor/Epoll为什么可以高性能?

在 Reactor 模式中使用 epoll_wait 实现低 CPU 占用率的核心原理是 ​事件驱动的阻塞等待机制,而非忙等待。以下通过分步骤解析其工作原理和性能优势: void network_thread() {int epoll_fd epoll_create1(0);epoll_event events[MAX_EVENTS];// 添加U…...

-JavaEE 应用Servlet 路由技术JDBCMybatis 数据库生命周期

#JavaEE-HTTP-Servlet& 路由 & 周期 参考: https://blog.csdn.net/qq_52173163/article/details/121110753 1 、解释 Servlet 是运行在 Web 服务器或应用服务器上的程序 , 它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数…...

在本地Windows机器加载大模型并生成内容

本篇演示在本地机器下载和加载大模型并获取AI产生的内容。简单起见,使用的大模型是Qwen2.5-0.5B-Instruct,整个模型的所有文件不到1G。 Qwen2.5-0.5B-Instruct 是阿里巴巴云 QWen 团队基于 Transformer 架构开发的轻量级指令调优语言模型,专…...

热门面试题第14天|Leetcode 513找树左下角的值 112 113 路径总和 105 106 从中序与后序遍历序列构造二叉树 (及其扩展形式)以一敌二

找树左下角的值 本题递归偏难,反而迭代简单属于模板题, 两种方法掌握一下 题目链接/文章讲解/视频讲解:https://programmercarl.com/0513.%E6%89%BE%E6%A0%91%E5%B7%A6%E4%B8%8B%E8%A7%92%E7%9A%84%E5%80%BC.html 我们来分析一下题目&#…...

shopify跨境电商行业前景与规模

Shopify跨境电商行业前景与规模分析 一、行业背景 Shopify 是一个全球知名的电子商务平台,它为小型企业到大型企业提供了创建和管理在线商店的工具。近年来,随着全球化进程的加快以及互联网技术的发展,跨境电商已经成为国际贸易的重要组成部…...

【计算机网络】-计算机网络期末复习题复习资料

一、计算机网络体系结构(800字) 1. OSI参考模型 七层结构:物理层→数据链路层→网络层→传输层→会话层→表示层→应用层 各层核心功能: 物理层:比特流传输(如RJ45、光纤接口) 数据链路层&…...

游戏中的碰撞检测算法

参考博客Sort, sweep, and prune: Collision detection algorithms...

批归一化(Batch Normalization)与层归一化(Layer Normalization)的区别与联系

文章目录 一、Batch normalization 理论与应用1. 理论解释2. 数值例子 二、Layer normalization 理论与应用1. 理论解释2. 数值例子 三、Layer Normalization 和 Batch Normalization 的区别四、《Transformers without Normalization》笔记 一、Batch normalization 理论与应用…...

12届蓝桥杯—货物摆放

货物摆放 题目描述 小蓝有一个超大的仓库,可以摆放很多货物。 现在,小蓝有 nn 箱货物要摆放在仓库,每箱货物都是规则的正方体。小蓝规定了长、宽、高三个互相垂直的方向,每箱货物的边都必须严格平行于长、宽、高。 小蓝希望所…...

c++进阶--哈希表的实现

大家好,今天我们来学习ubordered_set和unordered_map的底层哈希表。 目录 哈希表实现 1. 哈希概念 1.1 直接定址法 1.2 哈希冲突 1.3 负载因⼦ 1.4 将关键字转为整数 1.5 哈希函数 下面我们介绍几种哈希函数:1.5.1 除法散列法/除留余数法 1.…...

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

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

【数据库发展史】

数据库的发展历史可以追溯到20世纪50年代,随着计算机技术的进步和数据管理需求的演变,数据库系统经历了多个阶段的变革。以下是数据库技术的主要发展阶段: 1. 前数据库时代(1950年代前) 手工管理:数据通过…...

HTTP 核心知识点整理

1. HTTP 基础 ​定义:HTTP(HyperText Transfer Protocol)是应用层协议,基于 ​请求-响应模型,用于客户端(浏览器)与服务器之间的通信。​特点: ​无状态:每次请求独立&a…...

从AEC-Q100看车规芯片的可靠性设计要点

引言 随着汽车电子化、智能化的飞速发展,汽车电子控制系统对芯片的可靠性提出了极为严苛的要求。AEC-Q100是汽车电子委员会(Automotive Electronics Council)制定的车规级芯片可靠性标准,旨在确保芯片能够在复杂多变的汽车环境中…...

陕西安全员A证考试的报名流程是什么?

陕西安全员 A 证考试报名流程如下: 进入报名系统:登录陕西省建筑工程施工企业安全管理人员及特种作业人员考试报名系统。首次使用需点击 “特种作业人员注册”,进入个人注册界面。注册账号:输入身份证号、登录密码,并…...

特殊行车记录仪DAT视频丢失的恢复方法

行车记录仪是一种常见的车载记录仪,和常见的“小巧玲珑”的行车记录仪不同,一些特种车辆使用的记录仪的外观可以用“笨重”来形容。下边我们来看看特种车载行车记录仪删除文件后的恢复方法。 故障存储: 120GB存储设备/文件系统:exFAT /簇大小:128KB 故…...

PAT乙级1007

常规解法 #include <iostream> using namespace std;// 判断一个数是否为素数的函数 bool isprime(int a) {// 遍历 2 到 sqrt(a) 之间的数&#xff0c;判断 a 是否能被它们整除for (int i 2; i * i < a; i) {if (a % i 0) // 如果能整除&#xff0c;说明 a 不是素…...

数据库中不存在该字段

mybatisplus 定义的类中某些字段是数据库里面没有的&#xff0c;我们可用tablefield(existfalse)来注解&#xff0c;演示如下&#xff1a;...

吾爱出品,文件分类助手,高效管理您的 PC 资源库

在日常使用电脑的过程中&#xff0c;文件杂乱无章常常让人感到困扰。无论是桌面堆积如山的快捷方式&#xff0c;还是硬盘中混乱的音频、视频、文档等资源&#xff0c;都急需一种高效的整理方法。文件分类助手应运而生&#xff0c;它是一款文件管理工具&#xff0c;能够快速、智…...

关于瑞芯微开发工具(RKDevTool)刷机下载Boot失败原因的研究

昨天发了文章《网心云OEC/OEC-turbo刷机问题——刷机教程、救砖方法、技术要点及下载boot失败异常解决尝试》&#xff0c;其中有关于刷机各种问题的一些解决方法。 网心云OEC/OEC-turbo刷机问题——刷机教程、救砖方法、技术要点及下载boot失败异常解决尝试-CSDN博客文章浏览阅…...

web爬虫笔记:js逆向案例十一 某数cookie(补环境流程)

web爬虫笔记:js逆向案例十一 某数cookie(补环境流程) 一、获取网页数据请求流程 二、目标网址、cookie生成(逐步分析) 1、目标网址:aHR0cHM6Ly9zdWdoLnN6dS5lZHUuY24vSHRtbC9OZXdzL0NvbHVtbnMvNy9JbmRleC5odG1s 2、快速定位入口方法 1、通过脚本监听、hook_cookie等操作可…...

浅谈 Vue3 中的设计模式

设计模式是软件开发中的一种最佳实践&#xff0c;它提供了解决特定问题的通用解决方案。通过合理运用设计模式&#xff0c;可以提高代码的可维护性、可扩展性和可读性。在 Vue3 的源码中&#xff0c;设计模式被广泛应用于各个模块中&#xff0c;充分体现了其在现代前端框架中的…...

Unix Domain Socket、IPC、RPC与gRPC的深度解析与实战

Unix Domain Socket、IPC、RPC与gRPC的深度解析与实战 引言 在分布式系统和本地服务通信中&#xff0c;进程间通信&#xff08;IPC&#xff09;与远程过程调用&#xff08;RPC&#xff09;是核心能力。本文将深入剖析 Unix Domain Socket&#xff08;UDS&#xff09;、IPC、RP…...

07_JavaScript函数作用域_递归

目录 一、作用域&#xff08;重点&#xff09; 二、变量的使用规则 &#xff08;重点&#xff09; 2.1 访问规则 2.2 赋值规则 三、递归函数 &#xff08;难点&#xff09; 了解 四、对象 4.1 对象的创建 一、作用域&#xff08;重点&#xff09; 什么是作用域 ? 作用…...

.gitignore使用指南

.gitignore使用指南 目录 什么是.gitignore为什么需要.gitignore如何创建.gitignore文件.gitignore文件的语法规则 忽略单个文件忽略目录忽略特定类型的文件不忽略特定文件或目录递归匹配 示例.gitignore文件注意事项更多特殊场景匹配规则 忽略多个特定后缀的文件忽略特定目录…...