N3292系列资料之RTC介绍

1 RTC特性

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

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

Ø 相对定时功能

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

Ø 自动识别闰年功能

Ø 星期计数器

Ø 频率校准功能

Ø 支持时钟滴中断功能

Ø 支持唤醒功能

掉电唤醒功能

挂起唤醒功能

2 RTC功能介绍

2.1 RTC初始化

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

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

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

² Bit 0: RTC初始化状态

² Bit 1: Level Shift使能状态

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

2.2 寄存器访问

寄存器读写密码 - 0xA965

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

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

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

2.3 RTC校准

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

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

² 用户需要使用外部晶振和内部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开机

Ø 关机

² 硬件关机

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

² 软件关机

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

3.2 相关定义

² Power Key(PWRKEY)

PWRKEY用户用来开关机的按键

² 电源控制信号(PWCE)

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

² Power Key Status(PWR_KEY)

² 软件状态(SW_STATUS)

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

² 硬件关机使能(HW_PCLR_EN)

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

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

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

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

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

² POWER KEY触发模式

l 边沿触发

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

l 电平触发

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

² 硬件关机时间(PCLR_TIME)

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

² 上电(PWR_ON)

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

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

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

² 掉电模式

系统除RTC外全部关闭电源

² 中断使能和中断状态

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

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

ü 时间滴中断(TIER和TI)

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

表示Power key已被按下

3.3 系统开机控制流程

Ø 通过Power Key启动

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

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

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

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

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

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

Ø 通过RTC Alarm启动

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

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

3.4 系统关机控制流程

Ø 软件关机

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

Ø 硬件强关机

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

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

3.3 系统开关机控制举例

Ø 正常关机流程

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

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

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

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

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

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

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

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

    java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...

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

    java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...

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

    java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...

  4. Java 集合系列 05 Vector详细介绍(源码解析)和使用示例

    java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...

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

    java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...

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

    java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...

  7. CodeSmith开发系列资料总结

    CodeSmith开发系列资料总结 最近跟同事在研究CodeSmith,感觉中文文档是少之又少,所以我们自己写(翻译)了一些文档,总结如下,希望对使用CodeSmith的朋友有所帮助: “努力学习的熊 ...

  8. 智能合约语言Solidity教程系列2 - 地址类型介绍

    智能合约语言Solidity教程系列第二篇 - Solidity地址类型介绍. 写在前面 Solidity是以太坊智能合约编程语言,阅读本文前,你应该对以太坊.智能合约有所了解,如果你还不了解,建议你 ...

  9. 搜索引擎ElasticSearchV5.4.2系列一之ES介绍

    相关博文: 搜索引擎ElasticSearchV5.4.2系列一之ES介绍 搜索引擎ElasticSearchV5.4.2系列二之ElasticSearchV5.4.2+kibanaV5.4.2+x- ...

随机推荐

  1. COJ 0970 WZJ的数据结构(负三十)树分治

    WZJ的数据结构(负三十) 难度级别:D: 运行时间限制:1000ms: 运行空间限制:262144KB: 代码长度限制:2000000B 试题描述 给你一棵N个点的无根树,点和边上均有权值.请你设计 ...

  2. 数据结构(主席树):HDU 4729 An Easy Problem for Elfness

    An Easy Problem for Elfness Time Limit: 5000/2500 MS (Java/Others)    Memory Limit: 65535/65535 K (J ...

  3. JQuery固定表头插件fixedtableheader源码注释

    在开发XX车站信息系统时,需要将大量数据显示在一个巨大的表格内部,由于表格是一个整体,无法分页,加之数据很多,超出一屏,为了方便用户,决定使用固定表头的插件,经过测试,发现JQuery 插件:fixe ...

  4. VS2015接口智能提示少了异常信息 怎么破~

    问题:我想让VS2015提示的时候也显示关于“异常”的批注信息,亲们 如何破? 下图是VS3013的提示 下图是VS2015的提示 下图是接口注释

  5. 更新一波题解(最近做的三个dp题)

    很久没写题解了,去ec之前来填一填坑,希望能攒攒人品... 首先是去年上海F题..uvalive7143 题意: 给n个人分 m间房子,每个房间的容量是已知的,其中有k对双胞胎,双胞胎可以看作相同的人 ...

  6. js复选框全选

    <input name='chkAll' type='checkbox' id='chkAll' onclick='CheckAll(this.form)' value='checkbox'&g ...

  7. A_star poj2449 k短路

    赛后填坑系列QAQ 贴代码呀 #include<iostream> #include<algorithm> #include<cstdio> #include< ...

  8. mongoDb 给表添加+ 删除字段

    1 .添加一个字段.  url 代表表名 , 添加字段 content. 字符串类型. db.url.update({}, {$set: {content:""}}, {multi ...

  9. sqlserver 查找某个字符在字符串中第N次出现的位置

    例如:查找'A,' 在'A,B,C,D,A,B,C,D,C,D,B,A,C,E,'中第二次出现的位置怎么实现,SQL 中有这样的函数吗? SQL code /* 方法很多,这里简单写一个 返回@fin ...

  10. 【AIX】AIX 6.1 “C compiler cc is not found”问题的解决方案

    一.问题的由来 前几天在AIX中安装部署 nginx-1.4.1,报如下错误: # cd nginx-1.4.1 # ./configure checking for OS  + AIX 1 0004 ...