RCT实时时钟详细介绍-华清远见

合集下载

15.10、 Calendar实时时钟与农历年月日实验

15.10、 Calendar实时时钟与农历年月日实验

Calendar实时时钟与农历年月日实验上一章节我们讲解了STM32的RTC原理并介绍了通过每秒显示当前实时时间的例程。

本章节我们在上一章节的继续上继续讲解STM32的RTC的高级应用,不仅实现当前时分秒的现实,而且实现Calendar农历年月日与节气和公历日历年月日时分秒的计算和显示,在乐趣中让大家更深入的掌握RTC实时时钟功能及用法。

z意义与作用RTC(Real-time clock)是实时时钟的意思。

神舟IV号开发板的处理器STM32F107集成了RTC(Real-time clock)实时时钟,在处理器复位或系统掉电但有实时时钟电池的情况下,能维持系统当前的时间和日期的准确性。

实时时钟是一个独立的定时器。

RTC实时时钟模块拥有一组连续计数的计数器,在相应软件配置下,可提供时钟日历的功能。

修改计数器的值可以重新设置系统当前的时间和日期。

本次实验不仅实现当前时分秒的现实,而且实现Calendar农历年月日与节气和公历日历年月日时分秒的计算和显示,在乐趣中让大家更深入的掌握RTC实时时钟功能及用法。

STM32的RTC主要特性为:●可编程的预分频系数:分频系数最高为220。

● 32位的可编程计数器,可用于较长时间段的测量。

●2个分离的时钟:用于APB1接口的PCLK1和RTC时钟(RTC时钟的频率必须小于PCLK1时钟频率的四分之一以上)。

●可以选择以下三种RTC的时钟源:─ HSE时钟除以128;─ LSE振荡器时钟;─ LSI振荡器时钟。

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

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

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

─溢出中断,指示内部可编程计数器溢出并回转为0的状态z实验原理RTC由两个主要部分组成(参见下图)。

第一部分(APB1接口)用来和APB1总线相连。

STM32 RTC实时时钟实验

STM32 RTC实时时钟实验

我们在进入闹钟中断的时候,通过判断这位来决定是不是发生了秒钟 中断。然后必须通过软件将该位清零(写0)。第3位为寄存器同步标 志位,我们在修改控制寄存器RTC_CRH/CRL之前,必须先判断该位 ,是否已经同步了,如果没有则等待同步,在没同步的情况下修改 RTC_CRH/CRL的值是不行的。第4位为配置标位,在软件修改 RTC_CNT/RTC_ALR/RTC_PRL的值的时候,必须先软件置位该位,以 允许进入配置模式。第5位为RTC操作位,该位由硬件操作,软件只读 。通过该位可以判断上次对RTC寄存器的操作是否完成,如果没有, 我们必须等待上一次操作结束才能开始下一次操作。
4)选择RTC时钟,并使能。
这里我们将通过RCC_BDCR的RTCSEL来选择选择外部LSI作为RTC的时钟。 然后通过RTCEN位使能RTC时钟。
5)设置RTC的分频,以及配置RTC时钟。
在开启了RTC时钟之后,我们要做的就是设置RTC时钟的分频数,通过 RTC_PRLH和RTC_PRLL来设置,然后等待RTC寄存器操作完成,并同步之后 ,设置秒钟中断。然后设置RTC的允许配置位(RTC_CRH的CNF位),设置 时间(其实就是设置RTC_CNTH和RTC_CNTL两个寄存器)。
2013-5-23
广州市星翼电子科技有限公司
3
《例说STM32》
RTC的简化框图,如下图所示:
2013-5-23
广州市星翼电子科技有限公司
4
《例说STM32》
RTC由两个主要部分组成(参见图16.1),第一部分(APB1接口)用来 和APB1总线相连。此单元还包含一组16位寄存器,可通过APB1总线 对其进行读写操作。APB1接口由APB1总线时钟驱动,用来与APB1总 线接口。 另一部分(RTC核心)由一组可编程计数器组成,分成两个主要模块。第 一个模块是RTC的预分频模块,它可编程产生最长为1秒的RTC时间基 准TR_CLK。RTC的预分频模块包含了一个20位的可编程分频器(RTC 预分频器)。如果在RTC_CR寄存器中设置了相应的允许位,则在每个 TR_CLK周期中RTC产生一个中断(秒中断)。第二个模块是一个32位的 可编程计数器,可被初始化为当前的系统时间,一个32位的时钟计数器 ,按秒钟计算,可以记录4294967296秒,约合136年左右,作为一般 应用,这已经是足够了的。

实时时钟RTC

实时时钟RTC

Day/date/month/year HH:mm:ss (12/24 format)
=
Alarm B Flag
Alarm B
Synchronous 13bit Prescaler
PREDIV_S [12:0]
ss, mm, HH/date
Wake-Up
Asynchrone 4bit Prescaler
举例1:每个周一的23:15:07产生闹钟 >> WDSEL = 1 >> MSKx = 0000b >> s = 7 (ST=0b,SU=0111b) >> mm = 15 (MT=01b,MU=0101b) >> hh = 23 (HT=10b,HU=11b) >> AM/PM = 0 (24小时制) >> D = 1 举例2:每个月1号的23:15:07产生闹钟 >> WDSEL = 0 >> 其余设置都一样
即使系统供电消失,只要备 份域供电还在RTC仍可工作
两个可编程分频器
7位的PREDIV_A
默认因子 = 128,不能为0
LSI HSE (max= 1MHz)
通过HSE_RTC分频调节 /2 ~ /31
13位的PREDIV_S
默认因子NIT@RTC_ISR
查询INITF@RTC_ISR直到 它置位
日历计数器停止以便于修 改
4
5
对预分频因子编程
装载时间和日期值
编程寄存器RTC_PRER: RTCCLK=32.768 KHz时, 先写同步分频因子,再写异 预分频因子默认产生1Hz 步因子 时钟 编程RTC_TR和RTC_DR FMT=0:24小时制 FMT=1:AM/PM制 自动载入当前日历计数器 值,4个RTCCLK后开始计 数 RTC寄存器不能被修改

掉电走时的rtc时钟工作原理

掉电走时的rtc时钟工作原理

掉电走时的rtc时钟工作原理
掉电走时的RTC时钟,即实时时钟(Real Time Clock),是一种能够在掉电的情况下仍然保持走时的计时设备。

RTC时钟的工作原理主要基于石英晶体振荡器,它以恒定的频率振动,为时钟提供基准时间源。

当电源正常工作时,RTC时钟会从石英晶体振荡器获取时间基准,并通过内部的计数器和寄存器来记录和更新时间。

它通常包括秒、分、时、日、月、年等时间单位,以及星期、闰年等更复杂的时间信息。

当电源掉电时,石英晶体振荡器仍然会保持振动,但由于没有电源供应,它无法为RTC时钟提供电能。

因此,RTC时钟需要通过备用电源来维持工作。

备用电源通常是一个小型的电池或超级电容,它们可以在电源掉电时为RTC时钟提供电能,以确保时钟的准确性和稳定性。

当电源重新上电时,RTC时钟会自动校准时间,以确保与标准时间同步。

有些RTC时钟还具有校准功能,可以通过软件或硬件来调整时间,以适应不同的时区或其他时间标准。

总的来说,掉电走时的RTC时钟的工作原理是通过石英晶体振荡器和备用电源来保持时间的准确性和稳定性,以确保在任何情况下都能提供准确的时间信息。

第23章 实时时钟(RTC)

第23章 实时时钟(RTC)

第23章实时时钟(RTC)本章讨论如何对实时时钟(RTC)模块进行操作和编程,实时时钟模块维持系统时钟,提供秒表、报警和中断功能,并具有如下特征:●完全的时钟——天、(小)时、分和秒;●带中断的分钟倒数定时器;●带中断的可编程日常报警;●带中断的采样定时器;●每天一次、每[小]时一次、每分一次和每秒一次的中断;●以32.768kHz或32 kHz进行操作(由参考时钟晶振确定)。

正如图23-1所示的RTC方框图,实时时钟模块包含以下几个组成部分:●预定标器;●以天为单位的时钟计数器;●报警;●采样定时器;●分钟启停表;●相关的控制和总线接口硬件。

图23-1 实时时钟方框图23.1 操作预定标器把输入的晶体参考时钟分频为1Hz的信号,该信号用于秒、分、时和天计数器的计数。

当使能报警功能时,若天计数器达到预设值,将产生RTC 中断。

采样定时器以固定的频率产生中断,分启停表允许以分为单位的中断。

23.1.1 预定标器和计数器预定标器把输入的参考时钟分频为1Hz的信号。

所支持的参考频率有32.768kHz和32 kHz。

预定标器级被用来支持采样定时器。

RTC模块的计数部分包含4组计数器,它们物理上位于3个寄存器中:●6位秒计数器位于SECOND寄存器中;●6位分计数器和5位(小)时计数器位于HOURMIN寄存器中;●9位天计数器位于DAY寄存器中。

这些计数器形成了一个长达512天的24(小)时时钟,所有这3个寄存器可随时被读写。

这四个计数器中的一个增加时将会中断信号,并且该中断信号还可以用来指示一个计数器滚过其一周的计数。

例如,秒计数器的每次滴答会引起1Hz中断的标志被设置;当秒计数器从59记到00时,分计数器增加1并且MIN中断标志被设置。

同理,分计数器和HR信号之间、(小)时计数器和DAY信号之间的关系也是这样的。

23.1.2 报警有3个报警寄存器与3个计数寄存器对应。

报警的设置是通过访问实时时钟报警寄存器(ALRM_HM、ALRM_SEC、DAYALARM),并载入该报警应该产生一个中断的确切时间。

rtc原理

rtc原理

rtc原理
实时时钟(Real-Time Clock,RTC)是一种用于记录和追踪时
间的电子设备。

其原理是通过使用一个独立的振荡器来为系统提供一个稳定的时间基准,并利用计数器来追踪经过的时间。

RTC通常由一个振荡器、一个或多个计数器和相关的逻辑电
路组成。

振荡器提供一个稳定的时钟信号,可以是晶体振荡器或者外部时钟源。

计数器用于记录自从系统启动或者上一次校时以来经过的滴答数,一般以秒为单位。

逻辑电路用于控制计数器的运行以及与其他系统组件的通信。

RTC通过读取计数器的值来获取当前的时间,并将其转换为
日期和时间的形式。

这些日期和时间信息可以用来在计时器停止或者断电重启后恢复正常的时间。

RTC还可以提供一些其
他功能,如闹钟、定时器和日历功能,以满足不同应用的需求。

RTC的精度和稳定性对于时间记录的准确性至关重要。

晶体
振荡器一般具有较高的精度和稳定性,可以提供准确的时钟信号。

同时,RTC内部的校准电路可以根据外部时钟源或者通
过网络同步来自动校正计数器,以确保时间的准确性。

总之,RTC利用独立的振荡器提供稳定的时钟信号,并通过
计数器来追踪时间的流逝。

它是一种重要的电子设备,用于各种需要时间记录和追踪的应用中。

华清远见周末班情况

华清远见周末班情况

熟练
8
熟悉
9
熟练
10
熟练
容包括: 1、 flash 驱动: 掌握在 linux 环境下驱动常见 flash 存储器(nor flash、nand flash); 2、块设备驱动:掌握块设备驱动的原理、学会 ramdisk 的编写; 3、网卡驱动:掌握网卡设备的编写原理、能够 熟练移植各种网卡驱动。在对网卡硬件寄存器 熟悉的基础上,有能力为其编写出完善的网卡 驱动; 4、液晶驱动:掌握 frambuffer 驱动的原理。有 能力在有控制器的嵌入式平台上参考液晶手册 实现各种常见液晶驱动; 5、sd 卡驱动:掌握 sdio 接口操作,熟悉 sd 卡 驱动驱动的原理; 6、usb 设备驱动:了解 usb 主机设备驱动的结 构及编程方式。 在第二阶段课程中,为了帮助学员充分有效地 掌握核心知识点在企业中的具体应用,并开始 逐步按照企业需求、 流程和规范进行实战训练, 在嵌入式 Linux 应用开发、系统内核开发的课 综合案例的实战训 程讲授过程中全部采用项目驱动的方式,将来 练 自合作企业的全真案例贯穿于课程中。通过这 种方式带领学员分析企业岗位的真实技术需 求,进行案例演练,从而快速掌握相关的技能 和开发技巧。
序号
1
Linux 操作系统使 用
精通
2
C 语言是嵌入式领域最重要也是最主要的编程 语言,本课程将在学员 C 语言基础知识之上, 嵌入式 Linux C 语 通过大量编程实例重点讲解 C 语言的高级编程 知识,包括函数与程序结构、指针、数组、常 言编程 用算法、库函数的使用等知识,另外,本节还 重点讲解数据结构的基础内容,包括链表、队 列、栈、树、哈希表、图等内容。 嵌入式 Linux 应用开发是嵌入式 Linux 中最重 要的一部分,也是就业面最广的方向。本课程 的主要目标是精通嵌入式 Linux 下的程序设 嵌入式 Linux 应用 计,精通嵌入式 Linux 开发环境,强化学员对 编程 Linux 应用开发的理解和编码调试的能力,包 括系统编程、文件 I/O、多进程和多线程、网 络编程、GUI 图形界面编程、数据库。 本课程主要让学员从宏观了解嵌入式 Linux 开 发环境搭建和项目开发流程,让学员建立起整 嵌入式 Linux 项目 体架构的概念,包括嵌入式产品需求分析和选 开发流程 型、硬件平台、移植、启动代码、驱动开发、 系统部署等整个过程。

如何正确设计实时时钟RTC?

如何正确设计实时时钟RTC?

如何正确设计实时时钟RTC?
RTC(Real_Time Clock)为整个电子系统提供时间基准,MCU、MPU、CPU均离不开RTC电路设计,在设计RTC单元时应注意哪些事项?常见的RTC故障如何解决呢?
 一、什幺是RTC
 实时时钟(Real_Time Clock)简称为RTC,主要为各种电子系统提供时间基准。

通常把集成于芯片内部的RTC称为片内RTC,在芯片外扩展的RTC 称为外部RTC。

 图1 时间格式
 二、RTC的发展
 1、早期RTC
 早期RTC常使用74/54系列、CC4000系列及555集成电路构建秒脉冲源,再利用分频器、计数器、缓存器等得到分、时、日、月、年的计时信号,最后通过通信口送到处理器处理。

由于电路搭建复杂且受器件特性影响较大,这样的RTC往往精度差、功耗大且占用大面积PCB空间,且这类产品面临“2000年”的问题(千年虫问题详见百度)。

 图2 千年虫问题
 2、中期RTC
 这一时期的RTC出现在20世纪90年代,由于采用特殊CMOS工艺,因。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

RCT实时时钟详细介绍
在说道正文之前,我们先要对RCT实时时钟坐一个简单的描述。

实时时钟(Real-Time Clock)是PC主板上的晶振及相关电路组成的时钟电路的生成脉冲,RTC经过8254电路的变频产生一个频率较低一点的OS(系统)时钟TSC,系统时钟每一个cpu周期加一,每次系统时钟在系统初起时通过RTC初始化。

8254本身工作也需要有自己的驱动时钟(PIT)。

RCT实时时钟详细介绍请往下看。

1.1 RTC介绍
在一个嵌入式系统中,通常采用RTC 来提供可靠的系统时间,包括时分秒和年月日等,而且要求在系统处于关机状态下它也能够正常工作(通常采用后备电池供电)。

它的外围也不需要太多的辅助电路,典型的就是只需要一个高精度的
32.768kHz晶体和电阻电容等,如图10-8所示。

图10-8 RTC外接电路
1.2 RTC控制器
实时时钟(RTC)单元可以通过备用电池供电,因此,即使系统电源关闭,它也可以继续工作。

RTC 可以通过STRB/LDRB 指令将8 位BCD 码数据送至CPU。

这些BCD 数据包括秒、分、时、日期、星期、月和年。

RTC 单元通过一个外部的32.768kHz 晶振提供时钟。

RTC具有定时报警的功能,如图10-9所示。

RTC 控制器功能说明:
图10-9 RTC控制器
时钟数据采用BCD 编码。

能够对闰年的年月日进行自动处理。

具有告警功能,当系统处于关机状态时,能产生告警中断。

具有独立的电源输入。

提供毫秒级时钟中断,该中断可用于作为嵌入式操作系统的内核时钟。

1.3 RTC控制器寄存器详解
如表10-9所示为相关寄存器描述。

表10-9 RTC控制寄存器
2) 设置RTC当前时钟时间。

3)
同样的在掉电前,RTCEN位应该清除为0 来预防误写入RTC寄存器中。

4) 读取年、月、日等相关寄存器的数据显示到屏幕上。

2、看门软件程序设计
下面的代码实现了一个设置RTC的年月日、时分秒,并将其读出的功能。

#include "s5pv210.h"
void rtc_init(void)
{
RTC.RTCCON = 0X01; //时钟控制器使能RTC 控制
RTC.BCDSEC = 0x59; //秒控制器
RTC.BCDMIN = 0x56; //分控制器
RTC.BCDHOUR = 0x16; //时控制器
RTC.BCDDAY = 0x12; //日控制器
RTC.BCDDAYWEEK = 0X05; //星期控制器
RTC.BCDMON = 0x10; //月控制器
RTC.BCDYEAR = 0x14; //年控制器
RTC.RTCCON = 0; //时钟控制器使能RTC控制}
/********************main
function*************************************/
int main()
{
unsigned int i = 0;
uart0_init(); //串口初始化
rtc_init(); //RTC 初始化
while(1) //循环打印时钟
{
printf("year 20%x :
mon %x : date %x :day %d ", RTC.BCDYEAR, RTC.BCDMON, RTC.BCDDAY,
RTC.BCDDAYWEEK);
printf("hour %x : min %x : sec %x\n", RTC.BCDHOUR, RTC.BCDMIN, RTC.BCDSEC);
for(i = 0; i < 1500000; i++);
}
return 0;
}
1.4.4 实验步骤
实验操作步骤请参考第5.4.4或7.3.4章节,
光盘实验源码路径:华清远见-CORTEXA8资料2\实验资料\1. ARM体系结构与接口技术部分\14-rtc
1.4.5 实验现象
Debug 调试点击运行按钮,在调试助手接收区你可以看到终端打印信息如图所示。

RTC时钟的秒数据是在一秒一秒的增加。

图打印实时时钟信息
以上内容就是对RCT实时时钟的详细介绍。

更多内容及学习资料可以在华清远见官网进行查看,华清远见为学子提供免费的教程以供参考和学习。

(注:可编辑下载,若有不当之处,请指正,谢谢!)。

相关文档
最新文档