实时时钟 (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的更多相关文章

  1. STM32F746的RTC使用

    1.RTC模块采用低速晶振外接始终:32.768KHz,如下图所示 2.配置RTC模块: 其中,Fck_apre.Fck_spre始终上配置不容易理解, 如果想得到1Hz的始终频率,则需要将PERDI ...

  2. [nRF51822] 10、基础实验代码解析大全 · 实验15 - RTC

    一.实验内容: 配置NRF51822 的RTC0 的TICK 频率为8Hz,COMPARE0 匹配事件触发周期为3 秒,并使能了TICK 和COMPARE0 中断. TICK 中断中驱动指示灯D1 翻 ...

  3. RTC时钟

    1.设置时间之前取消备份区域(BKP)写保护 主要有两部分组成 1.用来和APB1总线对接,对其进行读写操作 2. 预分频模块:在RTC_CR设置相应的允许,位每个TR_CLK周期中RTC产生一个中断 ...

  4. S3C2440上RTC时钟驱动开发实例讲解(转载)

    嵌入式Linux之我行,主要讲述和总结了本人在学习嵌入式linux中的每个步骤.一为总结经验,二希望能给想入门嵌入式Linux的朋友提供方便.如有错误之处,谢请指正. 共享资源,欢迎转载:http:/ ...

  5. RTC实时时钟

    作者:宋老师,华清远见嵌入式学院讲师. 1.1 RTC介绍 在 一个嵌入式系统中,通常采用RTC 来提供可靠的系统时间,包括时分秒和年月日等,而且要求在系统处于关机状态下它也能够正常工作(通常采用后备 ...

  6. 解决服务器时间Local time和RTC time不一致的问题

    今天遇到了一个问题,发现程序读取的时间比实际的时间快了几分钟. 执行 timedatectl status 发现 Local time比实际的快,但是RTC time是准确的. 各种google也没搞 ...

  7. alarm rtc

    http://sharp2wing.iteye.com/blog/1329518 http://blog.csdn.net/sking002007/article/details/6593809 io ...

  8. 转:RTC搭建android下三层应用程序访问服务器MsSql-服务器端

    原文:http://www.cnblogs.com/delphi007/p/3346061.html 前几天通过Ro搭建webservice,然后在android下调用,虽然已近成功,但是返回的数据库 ...

  9. 转(Delphi 新窑洞):使用delphi 开发多层应用(十七)使用RTC web 服务器返回JSON

    RTC作为delphi 的最专业的web 应用服务器,如果客户端要使用JSON 的话,那么使用RTC 应该也是一种 非常好的选择.下面我们做一个使用RTC web 服务器返回数据库JSON 的例子. ...

随机推荐

  1. React Native解决安卓图片被挤压

    Bug如下图所示: iOS显示正常,而安卓出现图片被挤压上去. 最后的解决方法: 比如你的 图片 是 750 x 513 那么 你设置样式的时候 width 为 屏幕的宽 ,高度为 屏幕的 宽 / ( ...

  2. TLC编程

    NAND Flash可以划分为SLC.MLC和TLC SLC:单阶存储单元,读写速率快,可擦写次数高 MLC和TLC:多阶存储单元,MLC每个存储单元中存储2 bit数据,可以表示四种数据:SLC每个 ...

  3. JSX AS DSL? 写个 Mock API 服务器看看

    这几天打算写一个简单的 API Mock 服务器,老生常谈哈?其实我是想讲 JSX, Mock 服务器只是一个幌子. 我在寻找一种更简洁.方便.同时又可以灵活扩展的.和别人不太一样的方式,来定义各种 ...

  4. IO模型,非阻塞IO模型,select实现多路复用

    1. IO阻塞模型 IO问题: 输入输出 我要一个用户名用来执行登陆操作,问题用户名需要用户输入,输入需要耗时, 如果输入没有完成,后续逻辑无法继续,所以默认的处理方式就是 等 将当前进程阻塞住,切换 ...

  5. Ubuntu下安装Golong并用Vscode做IDE最有效方法,避免99%的坑 | 轻松学习GO

    最详细的教程,避开99%的坑,亲测有效 由于大部分教程都是win版本的,所以专门总结了一个linux版本的,其核心在于环境配置和插件安装,经历本人通宵7小时解决了这个问题,用自己的踩坑帮助大家避坑,希 ...

  6. Redis(1.12)Redis cluster搭建常见错误

    [1]gem install redis 报错 redis-cluster安装需要通过gem install redis来安装相关依赖.否则报错.通过gem install redis执行后会出现两个 ...

  7. Android Application的基本组件介绍

    一个Android应用通常由一个或多个基本组件组成,常用的一般有Activity.Service.BroadcastReceiver.ContentProvider.Intent等等. ⒈Activi ...

  8. 基于licode搭建webrtc服务器

    0. 前言 licode官网文档安装教程十分简单, 但是实际搭建过程是很艰辛的. 官方文档没有提示说会遇到什么样的问题, 实际过程中可能遇到各种各样的问题, 在解决的时候费时费力, 我就总结一下自己在 ...

  9. [读书笔记]Hadoop权威指南 第3版

    下面归纳概述了用于设置MapReduce作业输出的压缩格式的配置属性.如果MapReduce驱动使用了Tool接口,则可以通过命令行将这些属性传递给程序,这比通过程序代码来修改压缩属性更加简便. Ma ...

  10. type(),dir(),getattr(),hasattr(), isinstance()用法

    1.type(变量)  --->输出变量的类型int.float.str or others: 2.dir()   ----> dir() 函数不带参数时,返回当前范围内的变量.方法和定义 ...