N3292系列资料之RTC介绍

1 RTC特性

? 拥有时间计数器(秒,分,时)和日历计数器,用来计算时间

? 绝对定时功能(秒,分,时,日,月,年)

? 相对定时功能

? 支持12小时/24小时模式

? 自动识别闰年功能

? 星期计数器

? 频率校准功能

? 支持时钟滴中断功能

? 支持唤醒功能

掉电唤醒功能

挂起唤醒功能

2 RTC功能介绍

2.1 RTC初始化

当RTC上电启动时,软件需要向INIR寄存器写一个key值(0xA5EB1357)来对RTC进行复位.

? RTC上电后,只需对RTC进行一次初始化操作.(N3292的IBR中已经做了这一操作)

? 软件可以通过读取INIR的值来获得RTC的状态信息

2 Bit 0: RTC初始化状态

2 Bit 1: Level Shift使能状态

注意:即使在只使用RTC的日历功能时也必须按PowerKey来使能Level Shift.

2.2 寄存器访问

寄存器读写密码 - 0xA965

2 软件可以通过读取AER的bit 16(ENF)来判断是否可以访问RTC寄存器

2 可以通过软件写入一个不是密码的值到AER,来关闭对RTC访问

2 每次对RTC寄存器进行写操作后,需等到REG_FLAG位置1后才能再对RTC的寄存器进行写操作

2.3 RTC校准

RTC校准功能: 当32K晶振不准时,校准功能用来对RTC计数器进行校准

2 RTC引擎是通过APB时钟来采样RC震荡器的时钟的

2 用户需要使用外部晶振和内部RC震荡校准计数器(OSC_32K_CNT)来计算FCR校准值

计算公式:

通过RTC_1Hz_CNT来计算RTC时钟

RTC-_Clock_Rate = (PCLK/RTC_1Hz_CNT)*32768

FCR_int = RTC-_Clock_Rate的整数部分-1

FCR_frac = RTC-_Clock_Rate的小数部分*60-1

例如:

假设RTC_1Hz_CNT=50103132则

RTC_Clock_Rate = (500000/50103132)*32768=32700.5505

FCR_int = 32699

FCR_frac = 0.5505*60-1=32

2.4 时间和日历

CLR:日历寄存器

TAR:时间寄存器

2.5 时间和日历报警

? CAR:日历报警寄存器

年屏蔽/月屏蔽/日屏蔽/周屏蔽

? TAR:时间报警寄存器

时屏蔽/分屏蔽/秒屏蔽

2.6 24小时/12小时模式选择

寄存器TSSR的bit0:

ü 1: 24小时模式

ü 0: 12小时模式

2.7 星期和闰年

? RTC支持星期功能DWR

? RTC支持闰年指示功能LIR

ü 闰年指示(只读)

ü 注:

在设置RTC时间时不要用来检查日期的条件

例如:当前日期是2009,想设置日期为2012/2/29

LIR就指示不时闰年,2/29是不合法的

但2012是闰年,2/29应该是合法的.

2.8 RTC时钟滴

时钟滴用来请求中断(TTR)

中断的周期可以是:1/128s,1/64s,1/32s,1/16s,1/8s,1/4s,1/2s 和 1s

2.9 中断使能和中断状态寄存器(RIER/RIIR)

ü 报警中断(绝对)

ALARM_EN(PWRON[3])必须使能

当CLR=CAR和TLR=TAR时,RTC报警中断发生

ü 时间滴中断

ü Power Switch中断

ü 报警中断(相对)

REL_ALARM_EN(PWRON[4])必须使能

当设置了RELATIVE_TIME[11:0]后,内部计数器就从0开始计数,当计数到RELATIVE_TIME[11:0]时,RTC定时报警中断(相对)

ü 系统断电后,中断状态将不会保持

2.10 供软件使用的寄存器

RTC提供了两个32位的寄存器供软件使用

ü 当只有RTC保持供电时,寄存器的值会保持不变。(DUMMY0/DUMMY1)


3 电源控制功能

3.1 RTC电源控制支持的开机和关机功能

? 开机

Power Key开机

RTC alarm开机

? 关机

2 硬件关机

即使软件死机时,也可以通过长按Power key达到一定的时间来硬关机。

2 软件关机

在开机状态下,当软件检测到Power key 按下时,软件可以关机

3.2 相关定义

2 Power Key(PWRKEY)

PWRKEY用户用来开关机的按键

2 电源控制信号(PWCE)

PWCE是控制供电部分的控制信号

2 Power Key Status(PWR_KEY)

2 软件状态(SW_STATUS)

RTC提供8位数据用来存储软件信息

2 硬件关机使能(HW_PCLR_EN)

RTC提供了硬件关机功能,即使软件死机情况下也可关机

这一位用来使能硬件关机功能

2 电源控制信号延迟时间(POWER_KEY_DURATION_LENGTH)

系统开机时Power key至少需要被按下的时间

最小的powerkey按下时间 = 0.25*(POWER_KEY_DUARTION+1)秒

2 POWER KEY触发模式

l 边沿触发

在RTC上电的情况下,按下power key超过延迟时间,然后放开

l 电平触发

在RTC上电的情况下,按下power key超过延迟时间

2 硬件关机时间(PCLR_TIME)

如果用户长按power key超过该时间,则系统硬关机

2 上电(PWR_ON)

该位用来控制PWCE来控制系统的供电

ü 在Power key按下的状态下,该位由0变为1时PWCE将会变为高

ü 在Power key没有按下的状态下,当该位由1变为0时PWCE将变为低

2 掉电模式

系统除RTC外全部关闭电源

2 中断使能和中断状态

ü RTC提供了四个中断(在掉电状态下不能保持中断状态)

ü 报警中断(AIER/AI和RAIER/RAI)

ü 时间滴中断(TIER和TI)

ü 电源开关中断(PSWIER和PSWI)

表示Power key已被按下

3.3 系统开机控制流程

? 通过Power Key启动

2 用户按下Power key时会使电源控制信号PWCE置高

2 设置PWR_ON位后,PWCE可以保持为高不变,这时就可以放开power key。系统上电时,IBR会首先设置PWR_ON位,来锁定PWCE

2 如果不设置PWR_ON位为1,则当Power key放开时PWCE会回到低电平

2 RTC提供一个延迟PWCE信号的功能,使在PWCE信号相对于power key的变化有一段延迟时间(POWER_KEY_DURATION_LENGTH)

开机时power key必须要按下的最小时间

Power key最小保持时间 = 0.25*( POWER_KEY_DURATION+1)秒

? 通过RTC Alarm启动

2 在掉电模式下,如果发生了RTC alarm,则RTC通过保持一个内部alarm_hold信号来使PWCE置高

2 设置PWR_ON后,alarm_hold信号将会被清除,PWR_ON会保持PWCE信号。在系统启动时IBR会首先设置PWR_ON

3.4 系统关机控制流程

? 软件关机

2 如果用户想不通过Power key来关机,用户可以在任何时候通过清除PWR_ON位来关机。如:定时关机

? 硬件强关机

2 RTC提供了硬件强关机功能,即使在软件死机的情况下也可以通过硬件强关机功能来关闭系统

2 当使能了硬件强关机功能(HW_PCLR_EN)时,通过长按powerkey键一定时间,将会关闭系统。

3.3 系统开关机控制举例

? 正常关机流程

2 当用户获得power切换中断后,用户可以决定是否执行关机流程。

2 如果要执行关机流程,只需设置SW_PCLR就立刻关闭系统

? 软件忙/死机的情况下关机流程

2 假设设定硬件关机时间为6秒

2 软件可以在3秒内来决定是否要执行关机流程

2 如果软件没有执行关机流程,再过1秒就会进入硬件强关机

时间: 2024-08-01 23:12:40

N3292系列资料之RTC介绍的相关文章

Java 集合系列 04 LinkedList详细介绍(源码解析)和使用示例

java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java 集合系列 04 LinkedList详细介绍(源码解析)和使用示例 概要  和学习ArrayList一样,接下来呢,我们先对LinkedList有个整体认识,然后再学习它的源码:最后再通过实例来学会使用LinkedList.内容包括:第1部分 LinkedList介绍第2部分 LinkedList数

Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例

java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java 集合系列 04 LinkedList详细介绍(源码解析)和使用示例 概要 上一章,我们学习了Collection的架构.这一章开始,我们对Collection的具体实现类进行讲解:首先,讲解List,而List中ArrayList又最为常用.因此,本章我们讲解ArrayList.先对ArrayLis

Java 集合系列 06 Stack详细介绍(源码解析)和使用示例

java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java 集合系列 04 LinkedList详细介绍(源码解析)和使用示例 Java 集合系列 05 Vector详细介绍(源码解析)和使用示例 Java 集合系列 06 Stack详细介绍(源码解析)和使用示例 第1部分 Stack介绍 Stack简介 Stack是栈.它的特性是:先进后出(FILO, F

【数据结构&&算法系列】KMP算法介绍及实现(c++ && java)

KMP算法如果理解原理的话,其实很简单. KMP算法简介 这里根据自己的理解简单介绍下. KMP算法的名称由三位发明者(Knuth.Morris.Pratt)的首字母组成,又称字符串查找算法. 个人觉得可以理解为最小回溯算法,即匹配失效的时候,尽量少回溯,从而缩短时间复杂度. KMP算法有两个关键的地方,1)求解next数组,2)利用next数组进行最小回溯. 1)求解next数组 next数组的取值只与模式串有关,next数组用于失配时回溯使用. 在简单版本的KMP算法中,每个位置 j 的 n

Java 集合系列 09 HashMap详细介绍(源码解析)和使用示例

此页面为WP8"Surface Pro 3"应用的发布页面. "Surface Pro 3"是一款收集Surface Pro 3的玩机技巧的WP8程序,更好的帮助Surface用户理解并使用它. 此页面主要记录开发进度.APP发布等情况. -------------------相关进度--------------------- 目前进度:UI相关资源前期准备中,各相关开放平台的AppID申请中... Java 集合系列 09 HashMap详细介绍(源码解析)和使用

Java 集合系列 10 Hashtable详细介绍(源码解析)和使用示例

java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java 集合系列 04 LinkedList详细介绍(源码解析)和使用示例 Java 集合系列 05 Vector详细介绍(源码解析)和使用示例 Java 集合系列 06 Stack详细介绍(源码解析)和使用示例 Java 集合系列 07 List总结(LinkedList, ArrayList等使用场景和

asp.net core系列 65 正反案例介绍SOLID原则

原文:asp.net core系列 65 正反案例介绍SOLID原则 一.概述 SOLID五大原则使我们能够管理解决大多数软件设计问题.由Robert C. Martin在20世纪90年代编写了这些原则.这些原则为我们提供了从紧耦合的代码和少量封装转变为适当松耦合和封装业务实际需求的结果方法.使用这些原则,我们可以构建一个具有整洁,可读且易于维护的代码应用程序. SOLID缩写如下: SRP  单一责任原则 OCP 开放/封闭原则 LSP  里氏替换原则 ISP   接口分离原则 DIP   依

基于TI Davinci架构的多核/双核开发高速扫盲(以OMAP L138为例),dm8168多核开发參考以及达芬奇系列资料user guide整理

基于TI Davinci架构的双核嵌入式应用处理器OMAPL138开发入门 原文转自http://blog.csdn.net/wangpengqi/article/details/8115614 感谢wangpengqi的共享. 一.简单介绍 TI的达芬奇架构嵌入式应用处理器使用DSP与ARM结合的非对称多核结构,当然如今也有管脚全兼容的单核.本文要介绍的就是当中的一款低功耗处理器OMAP L138. OMAP L138包含一个主频300M的ARM9处理器内核和一个300M的C6748DSP内核

基于TI Davinci架构的多核/双核开发快速扫盲(以OMAP L138为例),dm8168多核开发参考以及达芬奇系列资料user guide整理

基于TI Davinci架构的双核嵌入式应用处理器OMAPL138开发入门 原文转自http://blog.csdn.net/wangpengqi/article/details/8115614 感谢wangpengqi的共享. 一.简介 TI的达芬奇架构嵌入式应用处理器使用DSP与ARM结合的非对称多核结构,当然现在也有管脚全兼容的单核.本文要介绍的就是其中的一款低功耗处理器OMAP L138. OMAP L138包括一个主频300M的ARM9处理器内核和一个300M的C6748DSP内核(均