• 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.

    clip_image002

    2.2 寄存器访问

    寄存器读写密码 - 0xA965

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

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

    clip_image004

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

    clip_image006

    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:日历寄存器

    clip_image008

    TAR:时间寄存器

    clip_image010

    2.5 时间和日历报警

    Ø CAR:日历报警寄存器

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

    clip_image012

    Ø TAR:时间报警寄存器

    时屏蔽/分屏蔽/秒屏蔽

    clip_image014

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

    寄存器TSSR的bit0:

    ü 1: 24小时模式

    ü 0: 12小时模式

    clip_image016

    2.7 星期和闰年

    Ø RTC支持星期功能DWR

    clip_image017

    Ø 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

    clip_image018

    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超过该时间,则系统硬关机

    clip_image020

    ² 上电(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

    clip_image021

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

    clip_image022

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

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

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

    clip_image024

    Ø 通过RTC Alarm启动

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

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

    clip_image025

    3.4 系统关机控制流程

    Ø 软件关机

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

    Ø 硬件强关机

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

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

    clip_image029

    3.3 系统开关机控制举例

    Ø 正常关机流程

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

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

    clip_image031

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

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

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

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

    clip_image033

  • 相关阅读:
    Linux下Redis的安装和部署
    js实现复制到剪贴板功能,兼容所有浏览器
    解决file_get_contents无法请求https连接的方法
    PHP使用正则表达式验证电话号码(手机和固定电话)
    php MYSQL 一条语句中COUNT出不同的条件
    学到的较复杂的 mysql 语名
    数据库相关 sql 语句
    php对象比较
    魔术方法
    inner join left join right join
  • 原文地址:https://www.cnblogs.com/chuncky/p/3953611.html
Copyright © 2020-2023  润新知