N3292系列资料之RTC介绍
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介绍的更多相关文章
- Java 集合系列 09 HashMap详细介绍(源码解析)和使用示例
java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...
- Java 集合系列 10 Hashtable详细介绍(源码解析)和使用示例
java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...
- Java 集合系列 06 Stack详细介绍(源码解析)和使用示例
java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...
- Java 集合系列 05 Vector详细介绍(源码解析)和使用示例
java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...
- Java 集合系列 04 LinkedList详细介绍(源码解析)和使用示例
java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...
- Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例
java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...
- CodeSmith开发系列资料总结
CodeSmith开发系列资料总结 最近跟同事在研究CodeSmith,感觉中文文档是少之又少,所以我们自己写(翻译)了一些文档,总结如下,希望对使用CodeSmith的朋友有所帮助: “努力学习的熊 ...
- 智能合约语言Solidity教程系列2 - 地址类型介绍
智能合约语言Solidity教程系列第二篇 - Solidity地址类型介绍. 写在前面 Solidity是以太坊智能合约编程语言,阅读本文前,你应该对以太坊.智能合约有所了解,如果你还不了解,建议你 ...
- 搜索引擎ElasticSearchV5.4.2系列一之ES介绍
相关博文: 搜索引擎ElasticSearchV5.4.2系列一之ES介绍 搜索引擎ElasticSearchV5.4.2系列二之ElasticSearchV5.4.2+kibanaV5.4.2+x- ...
随机推荐
- 「Poetize5」Vani和Cl2捉迷藏
描述 Description 这片树林里有N座房子,M条有向道路,组成了一张有向无环图.树林里的树非常茂密,足以遮挡视线,但是沿着道路望去,却是视野开阔.如果从房子A沿着路走下去能够到达B,那么在A和 ...
- 2015第40周二Node学习
node历史 今天看cnode开源项目用了io.js,在查这个项目时发现这篇文章node历史,node.js和io.js关系谈到Node.js的由来,不可避免要聊到它的创始人Ryan Dahl.在20 ...
- (转载)遍历memcache中已缓存的key
(转载)http://www.cnblogs.com/ainiaa/archive/2011/03/11/1981108.html 最近需要做一个缓存管理的功能.其中有一个需要模糊匹配memcache ...
- 【模拟】ECNA 2015 I What's on the Grille? (Codeforces GYM 100825)
题目链接: http://codeforces.com/gym/100825 题目大意: 栅栏密码.给定N(N<=10),密钥为一个N*N的矩阵,'.'代表空格可以看到,'X'代表被遮挡,还有密 ...
- windows下sqlite3静态库和动态库的编译
1.下载sqlite3源码:http://www.sqlite.org/download.html 主要是sqlite-amalgamation-XXXXXXX.zip.sqlite-dll-win3 ...
- 高效算法——M 扫描法
In an open credit system, the students can choose any course they like, but there is a problem. Some ...
- 2012蓝桥杯本科组C/C++预赛题
微生物增殖 假设有两种微生物 X 和 Y X出生后每隔3分钟分裂一次(数目加倍),Y出生后每隔2分钟分裂一次(数目加倍). 一个新出生的X,半分钟之后吃掉1个Y,并且,从此开始,每隔1分钟吃1个Y. ...
- Geometric Shapes (poj3449多边形相交)
题意:给你一些多边形的点,判断每个多边形和那些多边形相交,编号按照字典序输出 思路:枚举每个多边形的每条边看是否相交,这里的相交是包括端点的,关键是给你正方形不相邻两个点求另外两个点怎么求,长方形给你 ...
- linux安装vnc
1. 安装vnc-server yum install vnc-server redhat的iso文件中自带 tigervnc-server 2.设置vnc密码 切换到oracle用户,之后再运行vn ...
- Python 列表排序方法reverse、sort、sorted详解
python语言中的列表排序方法有三个:reverse反转/倒序排序.sort正序排序.sorted可以获取排序后的列表.在更高级列表排序中,后两中方法还可以加入条件参数进行排序. reverse() ...