- 8
- 0
- 约1.16万字
- 约 45页
- 2015-12-18 发布于湖北
- 举报
ARM实时钟RTC.ppt
实时钟RTC 主要内容 概述 结构 寄存器 应用举例 一、概 述 RTC(实时时钟)功能:通常采用RTC 来提供可靠的系统时间,包括时、分、秒、和年、月、日等;而且要求在系统处于关机状态下它也能够正常工作(后备电池供电),它的外围也不需要太多的辅助电路,典型的就是只需要一个高精度的32.768KHz 晶振和电阻电容等。 RTC应用:现在很多电子产品都有RTC功能,如电子日历(台式、壁式等)、手持数码产品(手机、电子词典、各种学习机、照相机、摄像机等)、电子计量仪表(电度表、燃气表、水表等)、家用电器(电视机、机顶盒、DVD等)等,应用非常广泛。 RTC芯片:在上面所说产品,都有RTC功能的芯片,有的产品使用独立的RTC芯片,如壁式电子日历、电子计量仪表等;有的产品使用的不是独立的RTC芯片,而是RTC功能集成到了其它的芯片中,如手持数码产品等。 S3C2410的RTC的特点: 时钟数据采用BCD 编码 时钟数据有:秒、分、时、日、月、年、星期 能够对闰年的年月日进行自动处理 具有告警功能,当系统处于关机状态时,能产生告警中断 具有独立的电源输入 提供毫秒级时钟中断,该中断可用于作为嵌入式操作系统的内核时钟 二、S3C2410的RTC结构 1、S3C2410的RTC结构 S3C2410的RTC主要有5部分构成:时钟发生器、节拍发生器、时间与日期计数器(时分秒年月日星期)、报警发生器、控制逻辑等部分。如下图所示。 闰年产生器 这个模块可以决定每个月的最后日期是28,29,30 还是31,并可以根据是否是闰年来决定日期。 由于8 位的计数器只能表示2 个BCD 码,因此它不能判断00 年究竟是不是闰年。 例如它不能够判断1900 年和2000 的差别。为了解决这个问题,S3C2410 内的RTC 模块中有一个固定的逻辑,用来支持2000 年为闰年。请注意虽然2000 年是闰年,但1900 年不是闰年。因此,S3C2410 中00 代表2000 年,而不是1900 年。 2、S3C2410 RTC的振荡电路 S3C2410 RTC的只需外接2个20P左右的小电容、32.768KHz的晶振即可。如下图所示。 三、RTC专用寄存器 S3C2410的RTC有17个专用寄存器,均需用字节读写。下表为前10个,有4个为控制寄存器,6个为报警寄存器。 三、RTC专用寄存器 S3C2410的RTC有17个专用寄存器,均需用字节读写。下表为4个控制寄存器。 本表6个寄存器:为报警日期、时间寄存器 后7个寄存器: 为日期、时间寄存器。 寄存器需字节读取 #define rRTCCON (*(volatile unsigned char *)0 //RTC control #define rTICNT (*(volatile unsigned char *)0 //Tick time count #define rRTCALM (*(volatile unsigned char *)0 //RTC alarm control #define rALMSEC (*(volatile unsigned char *)0 //Alarm second #define rALMMIN (*(volatile unsigned char *)0 //Alarm minute #define rALMHOUR (*(volatile unsigned char *)0x5700005c) //Alarm Hour #define rALMDATE (*(volatile unsigned char *)0 //Alarm day #define rALMMON (*(volatile unsigned char *)0 //Alarm month #define rALMYEAR (*(volatile unsigned char *)0 //Alarm year #define rRTCRST (*(volatile unsigned char *)0x5700006c) //RTC round reset ……. 四、S3C2410 RTC使用方法 1、读/写寄存器 (1)设置允许读写:对寄存器RTCCON 的0 位写1 。 (2)显示时间、日期方法:需要不断地从BCDSEC、BCDMIN、BCDHOUR、BCDDAY、BCDDATE、BCDMON、和BCDYEAR 寄存器
原创力文档

文档评论(0)