STM32WB RTC
实时时钟 (RTC) 是一个独立的 BCD 定时器/计数器。RTC 提供一个带可编程闹钟中断的日历时钟以及一个具有中断功能的周期性可编程唤醒标志。RTC 还包含用于管理所有低功耗模式的自动唤醒单元。
两个 32 位寄存器包含二进码十进数格式 (BCD) 的秒、分钟、小时(12 或 24 小时制)、星 期几、日期、月份和年份。此外,还可提供二进制格式的亚秒值。
系统可以自动将月份的天数补偿为 28、29(闰年)、30 和 31 天。并且还可以进行夏令时 补偿。
其它 32 位寄存器还包含可编程的闹钟亚秒、秒、分钟、小时、星期几和日期。
数字校准功能可以对晶振精度的偏差进行补偿。
后备域复位后,所有 RTC 寄存器都会受到保护,以防止可能的非正常写访问。
无论器件状态如何(运行模式、低功耗模式或处于复位状态),只要电源电压保持在工作范围内,RTC 便不会停止工作。
方框图:

特点:
● 包含亚秒、秒、分钟、小时(12/24 小时制)、星期几、日期、月份和年份的日历
● 软件可编程的夏令时补偿
● 具有中断功能的可编程闹钟。可通过任意日历字段的组合驱动闹钟
● 自动唤醒单元,可周期性地生成标志以触发自动唤醒中断
● 参考时钟检测:可使用更加精确的第二时钟源(50 Hz 或 60 Hz)来提高日历的精确度
● 利用亚秒级移位特性与外部时钟实现精确同步
● 数字校准电路(周期性计数器调整)
— 精度为 0.95 ppm,在数秒钟的校准窗口中获得
● 用于事件保存的时间戳功能
● 带配置过滤器和内部上拉的入侵检测
● 可屏蔽中断/事件:
— 闹钟 A
— 闹钟 B
— 唤醒中断
— 时间戳
— 入侵检测
● 20 个备份寄存器
日历功能:
RTC的时钟源(LSE(32.768KHZ)、HSE_RTC、LSI)经过一个精密校准(RTC_CALR),再经过7位的预分频器进行分频(RTC_PRER,默认127+1=128)会产生一个ck_apre()时钟。再经过粗略校准(RTC_CALPR),再经过RTC_PRER(一个同步15位预分频器(默认值=256),影子寄存器(RTC_SSR)),然后再产生一个ck_spre(默认1HZ)为真正的RTC核心时钟。然后提供1HZ的频率给日历(影子寄存器,RTC_TR,RTC_DR,是时间和日期的寄存器)。同步15位预分频器的影子寄存器(RTC_SSR的时钟来自于ck_apre,它的初值来自于RTC_PRER,假设为256,当它计数到零,那么ck_apre就产生了256次,而ck_spre只产生了一次送到日历去)和日历的影子寄存器决定了精确的时间。当闹钟A或者B的时间跟日历时间相等,则产生闹钟。
周期自动唤醒功能:
周期性唤醒标志由 16 位可编程自动重载递减计数器生成。唤醒定时器范围可扩展至 17 位。 可通过 RTC_CR 寄存器中的 WUTE 位来使能此唤醒功能。 唤醒定时器的时钟输入可以是:
● 2、4、8 或 16 分频的 RTC 时钟 (RTCCLK)。 当 RTCCLK 为 LSE (32.768 kHz) 时,可配置的唤醒中断周期介于 122 μs 和 32 s 之间,且分辨率低至 61 μs。
● ck_spre(通常为 1 Hz 内部时钟) 当 ck_spre 频率为 1 Hz 时,可得到的唤醒时间为 1s 到 36h 左右,分辨率为 1 秒。这一较大的可编程时间范围分为两部分:
— WUCKSEL [2:1] = 10 时为 1s 到 18h。
— WUCKSEL [2:1] = 11 时约为 18h 到 36h。在后一种情况下,会将 216 添加到 16 位计数器当前值。完成初始化序列后,定时器开始递减计数。在低功耗模式下使能唤醒功能时,递减计数保持有效。此外,当计数器计数到 0 时,RTC_ISR 寄存器的 WUTF 标志会置 1,并且唤醒寄存器会使用其重载值(RTC_WUTR 寄存器值)动重载。
必须用软件清零 WUTF 标志。
通过将 RTC_CR寄存器中的 WUTIE 位置 1 来使能周期性唤醒中断时,它会使器件退出低功耗模式。
如果已通过 RTC_CR 寄存器中的位 OSEL[0:1] 使能周期性唤醒标志,则该标志可连接到 RTC_ALARM 输出。可通过 RTC_CR 寄存器的 POL 位配置 RTC_ALARM 极性。
系统复位以及低功耗模式(睡眠、停机和待机)对唤醒定时器没有任何影响。
闹钟输出:
RTC_CR寄存器中的OSEL[1:0]位用于激活闹钟输出RTC_ALARM和选择哪一个功能输出。RTC_ISR寄存器中的相应标志反应出了这些功能。
闹钟输出:使用RTC_OR寄存器中的RTC_ALARM_TYPE控制位可以配置RTC_ALARM引脚为漏极开路与推挽输出。
NOTE:一旦使能RTC_ALARM输出,它的优先级高于RTC_CALIB(COE位不关心且必须清零)
当RTC_CALIB或RTC_ALARM输出被选择的时候, RTC_OUT引脚自动被配置为输出
STM32WB RTC的更多相关文章
- STM32F746的RTC使用
1.RTC模块采用低速晶振外接始终:32.768KHz,如下图所示 2.配置RTC模块: 其中,Fck_apre.Fck_spre始终上配置不容易理解, 如果想得到1Hz的始终频率,则需要将PERDI ...
- [nRF51822] 10、基础实验代码解析大全 · 实验15 - RTC
一.实验内容: 配置NRF51822 的RTC0 的TICK 频率为8Hz,COMPARE0 匹配事件触发周期为3 秒,并使能了TICK 和COMPARE0 中断. TICK 中断中驱动指示灯D1 翻 ...
- RTC时钟
1.设置时间之前取消备份区域(BKP)写保护 主要有两部分组成 1.用来和APB1总线对接,对其进行读写操作 2. 预分频模块:在RTC_CR设置相应的允许,位每个TR_CLK周期中RTC产生一个中断 ...
- S3C2440上RTC时钟驱动开发实例讲解(转载)
嵌入式Linux之我行,主要讲述和总结了本人在学习嵌入式linux中的每个步骤.一为总结经验,二希望能给想入门嵌入式Linux的朋友提供方便.如有错误之处,谢请指正. 共享资源,欢迎转载:http:/ ...
- RTC实时时钟
作者:宋老师,华清远见嵌入式学院讲师. 1.1 RTC介绍 在 一个嵌入式系统中,通常采用RTC 来提供可靠的系统时间,包括时分秒和年月日等,而且要求在系统处于关机状态下它也能够正常工作(通常采用后备 ...
- 解决服务器时间Local time和RTC time不一致的问题
今天遇到了一个问题,发现程序读取的时间比实际的时间快了几分钟. 执行 timedatectl status 发现 Local time比实际的快,但是RTC time是准确的. 各种google也没搞 ...
- alarm rtc
http://sharp2wing.iteye.com/blog/1329518 http://blog.csdn.net/sking002007/article/details/6593809 io ...
- 转:RTC搭建android下三层应用程序访问服务器MsSql-服务器端
原文:http://www.cnblogs.com/delphi007/p/3346061.html 前几天通过Ro搭建webservice,然后在android下调用,虽然已近成功,但是返回的数据库 ...
- 转(Delphi 新窑洞):使用delphi 开发多层应用(十七)使用RTC web 服务器返回JSON
RTC作为delphi 的最专业的web 应用服务器,如果客户端要使用JSON 的话,那么使用RTC 应该也是一种 非常好的选择.下面我们做一个使用RTC web 服务器返回数据库JSON 的例子. ...
随机推荐
- 【转载】oracle中decode函数用法
1.DECODE的语法:DECODE(value,if1,then1,if2,then2,if3,then3,...,else).表示假设value 等于if1时,DECODE函数的结果返回then1 ...
- 3-3 man手册介绍
man手册介绍 内容表示的意义: 各部分功能说明: SECTION: name:命令的名称及功能描述: SYNOPSIS:命令使用格式摘要: DESCRIPTION:详细描述信息: OPTIONS:选 ...
- Win10编译Mingw
准备工具 Windows平台 cmake mingw-x64 Linux平台(Ubuntu) sudo apt-get install git cmake cmake-gui -y 下载源码 建议直接 ...
- python之理解装饰器
装饰器是修改其他函数的函数.好处是可以让你的函数更简洁. 一步步理解这个概念: 一.一切皆对象. def hi(name="yasoob"): return "hi &q ...
- JavaScript日期格式化处理
/** * 获取年月,如:2018-08 */ export function getMonth () { return formatDate(new Date(), 'yyyy-MM') } /** ...
- jQuery 相关插件
jQuery 是一个快速的,简洁的 javaScript 库,使用户能更方便地处理 HTML documents.events.实现动画效果,并且方便地为网站提供 AJAX 交互. jQuery 还有 ...
- 前端CSS实现图片自适应背景大小
<body> <div> <!--背景图片--> <div id="web_bg" style="background-imag ...
- linux下nginx的学习
安装参考菜鸟教程:https://www.runoob.com/linux/nginx-install-setup.html nginx文档官网: http://nginx.org nginx社区:h ...
- Linux就该这么学——新手必须掌握的命令之系统状态检测命令组
ifconfig命令 用途 : 获取网卡配置与网络状态等信息 格式 : ifconfig[网络设备][参数] 其实主要查看的就是网卡名称,inet参数后面的IP地址,ether参数后面的网卡物理地址( ...
- one:arguments对象伪数组
这是我的第一个博客 <script> //计算N个数字的和 //定义一个函数,如果不确定用户是否传入了参数,或者说不知道用户传入了几个参数,没办法计算, // 但是如果在函数中知道了参数的 ...