0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

RTC时钟讲解(一)

嵌入式应用开发 来源:嵌入式应用开发 作者:嵌入式应用开发 2022-06-09 17:48 次阅读

什么是RTC
RTC (Real Time Clock):实时时钟

RTC是个独立的定时器。RTC模块拥有一个连续计数的计数器,在相应的软件配置下,可以提供时钟日历的功能。修改计数器的值可以重新设置当前时间和日期 RTC还包含用于管理低功耗模式的自动唤醒单元。

在断电情况下 RTC仍可以独立运行 只要芯片的备用电源一直供电,RTC上的时间会一直走。

RTC实质是一个掉电后还继续运行的定时器,从定时器的角度来看,相对于通用定时器TIM外设,它的功能十分简单,只有计时功能(也可以触发中断)。但其高级指出也就在于掉电之后还可以正常运行。

两个 32 位寄存器包含二进码十进数格式 (BCD) 的秒、分钟、小时( 12 或 24 小时制)、星期几、日期、月份和年份。此外,还可提供二进制格式的亚秒值。系统可以自动将月份的天数补偿为 28、29(闰年)、30 和 31 天。

上电复位后,所有RTC寄存器都会受到保护,以防止可能的非正常写访问。

无论器件状态如何(运行模式、低功耗模式或处于复位状态),只要电源电压保持在工作范围内,RTC使不会停止工作。

RCT特征:
● 可编程的预分频系数:分频系数高为220。
● 32位的可编程计数器,可用于较长时间段的测量。
● 2个分离的时钟:用于APB1接口的PCLK1和RTC时钟(RTC时钟的频率必须小于PCLK1时钟 频率的四分之一以上)。
● 可以选择以下三种RTC的时钟源:
● HSE时钟除以128;
● LSE振荡器时钟;
● LSI振荡器时钟

● 2个独立的复位类型:
● APB1接口由系统复位;
● RTC核心(预分频器、闹钟、计数器和分频器)只能由后备域复位

● 3个专门的可屏蔽中断:
● 1.闹钟中断,用来产生一个软件可编程的闹钟中断。

● 2.秒中断,用来产生一个可编程的周期性中断信号(长可达1秒)。

● 3.溢出中断,指示内部可编程计数器溢出并回转为0的状态。

RTC时钟源:
三种不同的时钟源可被用来驱动系统时钟(SYSCLK):

● HSI振荡器时钟
● HSE振荡器时钟
● PLL时钟

这些设备有以下2种二级时钟源:

● 40kHz低速内部RC,可以用于驱动独立看门狗和通过程序选择驱动RTC。 RTC用于从停机/待机模式下自动唤醒系统。
● 32.768kHz低速外部晶体也可用来通过程序选择驱动RTC(RTCCLK)。

RTC原理框图

poYBAGKhwayAMqRnAAGYmFFUA1A504.png

RTC时钟的框图还是比较简单的,这里我们把他分成 两个部分:

APB1 接口:用来和 APB1 总线相连。 此单元还包含一组 16 位寄存器,可通过 APB1 总线对其进行读写操作。APB1 接口由 APB1 总 线时钟驱动,用来与 APB1 总线连接。

通过APB1接口可以访问RTC的相关寄存器(预分频值,计数器值,闹钟值)。

RTC 核心接口:由一组可编程计数器组成,分成 两个主要模块 。

在这里插入图片描述


第一个模块是 RTC 的 预分频模块,它可编程产生 1 秒的 RTC 时间基准 TR_CLK。RTC 的预分频模块包含了一个 20 位的可编程分频器(RTC 预分频器)。如果在 RTC_CR 寄存器中设置了相应的允许位,则在每个 TR_CLK 周期中 RTC 产生一个中断(秒中断)。

在这里插入图片描述

第二个模块是一个 32 位的可编程计数器 (RTC_CNT),可被初始化为当前的系统时间,一个 32 位的时钟计数器,按秒钟计算,可以记 录 4294967296 秒,约合 136 年左右,作为一般应用,这已经是足够了的。

RTC具体流程:
RTCCLK经过RTC_DIV预分频,RTC_PRL设置预分频系数,然后得到TR_CLK时钟信号,我们一般设置其周期为1s,RTC_CNT计数器计数,假如1970设置为时间起点为0s,通过当前时间的秒数计算得到当前的时间。RTC_ALR是设置闹钟时间,RTC_CNT计数到RTC_ALR就会产生计数中断,

RTC_Second为秒中断,用于刷新时间,
RTC_Overflow是溢出中断。
RTC Alarm 控制开关机
RTC时钟选择
使用HSE分频时钟或者LSI的时候,在主电源VDD掉电的情况下,这两个时钟来源都会受到影响,因此没法保证RTC正常工作.所以RTC一般都时钟低速外部时钟LSE,频率为实时时钟模块中常用的32.768KHz,因为32768 = 2^15,分频容易实现,所以被广泛应用到RTC模块.(在主电源VDD有效的情况下(待机),RTC还可以配置闹钟事件使STM32退出待机模式).

RTC复位过程
除了RTC_PRL、RTC_ALR、RTC_CNT和RTC_DIV寄存器外,所有的系统寄存器都由系统复位或电源复位进行异步复位。
RTC_PRL、RTC_ALR、RTC_CNT和RTC_DIV寄存器仅能通过备份域复位信号复位。

系统复位后,禁止访问后备寄存器和RCT,防止对后卫区域(BKP)的意外写操作

读RTC寄存器
RTC内核完全独立于APB1接口,软件通过APB1接口对RTC相关寄存器访问。但是相关寄存器只在RTC APB1时钟进行重新同步的RTC时钟的上升沿被更新。所以软件必须先等待寄存器同步标志位(RTC_CRL的RSF位)被硬件置1才读。

配置RTC寄存器
必须设置RTC_CRL寄存器中的CNF位,使RTC进入配置模式后,才能写入RTC_PRL、
RTC_CNT、RTC_ALR寄存器。

另外,对RTC任何寄存器的写操作,都必须在前一次写操作结束后进行。可以通过查询
RTC_CR寄存器中的RTOFF状态位,判断RTC寄存器是否处于更新中。仅当RTOFF状态位是’1’
时,才可以写入RTC寄存器。

审核编辑:符乾江

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    4981

    文章

    18280

    浏览量

    288377
  • RTC
    RTC
    +关注

    关注

    2

    文章

    484

    浏览量

    65437
收藏 人收藏

    评论

    相关推荐

    电子时钟制作(瑞萨RA)(6)----配置RTC时钟及显示时间

    本文将详细讲解如何借助e2studio来对瑞萨微控制器进行实时时钟RTC)的设置和配置,以便实现日历功能和一秒钟产生的中断,从而通过串口输出实时数据。
    的头像 发表于 12-01 14:09 308次阅读
    电子<b class='flag-5'>时钟</b>制作(瑞萨RA)(6)----配置<b class='flag-5'>RTC</b><b class='flag-5'>时钟</b>及显示时间

    RTC时钟

    RTC时钟个独立的计时器。可以低功耗运行,掉电也会可以运行。RTC采用外部32768时钟,所以经过异步预分频和同步预分频之后可以得到1H
    发表于 04-17 15:28

    时钟树的讲解

    16.1时钟树的讲解时钟相当于人的心脏所有的外设想要工作都得配置时钟无源晶振 配置起振电容时钟起振需要
    发表于 08-02 06:20

    STM32RTC实时时钟实验讲解,从入门到放弃 精选资料分享

    STM32RTC实时时钟实验讲解,从入门到放弃。文章目录STM32RTC实时时钟实验讲解,从入门
    发表于 08-03 06:38

    总结RTC(Real Time Clock)实时时钟相关的知识

    STM32F030_RTC详细配置说明今天总结RTC(Real Time Clock)实时时钟相关的知识。在进行RTC讲解前,我先对BKP
    发表于 08-05 08:19

    RTC是什么?RTC实时时钟实验

    文章目录前言RTC是什么?二、RTC实时时钟实验1.引入库2.读入数据总结前言前面我们说了OLED实验,是个比较好的显示测试代码的方法
    发表于 01-13 07:19

    RTC时钟原理是什么

    着(禁止写),所以设置之前要先取消后备区域写保护。首先RTC CLK有三个来源。最主要的是外部低速晶振。其他两个来源我懒得打了,可以参考时钟讲解RTC_DIV会随着预装载得值减到0然
    发表于 01-13 08:02

    STM8单片机rtc时钟代码分享

    STM8 rtc时钟可以使用内部低频时钟源,或者外部低速32768Hz时钟源,关于rtc部分代码如下
    发表于 02-11 10:00 3760次阅读
    STM8单片机<b class='flag-5'>rtc</b><b class='flag-5'>时钟</b>代码分享

    浅谈RTC实时时钟特征与原理

    一、RTC实时时钟特征与原理 查看STM32中文手册 16 实时时钟RTC)(308页) RTC (Real Time Clock):实时
    的头像 发表于 06-30 15:54 1.1w次阅读

    4位RTC时钟开源分享

    电子发烧友网站提供《4位RTC时钟开源分享.zip》资料免费下载
    发表于 10-31 10:33 0次下载
    4位<b class='flag-5'>RTC</b><b class='flag-5'>时钟</b>开源分享

    STM32CubeMX-实时时钟(RTC)

    实时时钟 (RTC) 是一个独立的 BCD 定时器/计数器。RTC 提供具有可编程闹钟中断功能的日历时钟 /日历。RTC 还包含具有中断功能
    的头像 发表于 01-14 17:24 2165次阅读

    RTC时钟与触摸功能详解(上)

    RTC(Real Time Clock)实时时钟,主要用于为人们提供精确的实时时间或者为系统提供精确的时间基准。RTC通常分为两类,一类是外部时钟芯片提供实时
    的头像 发表于 05-26 14:44 1353次阅读
    <b class='flag-5'>RTC</b><b class='flag-5'>时钟</b>与触摸功能详解(上)

    RTC时钟与触摸功能详解(下)

    RTC(Real Time Clock)实时时钟,主要用于为人们提供精确的实时时间或者为系统提供精确的时间基准。RTC通常分为两类,一类是外部时钟芯片提供实时
    的头像 发表于 05-26 14:45 913次阅读
    <b class='flag-5'>RTC</b><b class='flag-5'>时钟</b>与触摸功能详解(下)

    一文看懂RTC实时时钟

    RTC是个独立的定时器。RTC模块拥有一个连续计数的计数器,在相应的软件配置下,可以提供时钟日历的功能。修改计数器的值可以重新设置当前时间和日期 RTC还包含用于管理低功耗模式的自动唤
    的头像 发表于 06-16 12:24 2859次阅读
    一文看懂<b class='flag-5'>RTC</b>实时<b class='flag-5'>时钟</b>

    CW32实时时钟RTC)介绍

    CW32实时时钟RTC)介绍
    的头像 发表于 10-24 15:36 520次阅读
    CW32实时<b class='flag-5'>时钟</b>(<b class='flag-5'>RTC</b>)介绍