10.3.2. 功能描述

10.3.2.1. 闹钟

RTC闹钟模块每秒进行1次检查,当RTC_TCNT_VAL==RTC_ALARM时,对ALARM_IRQ_STA置位, 当中断状态位被清除后下一秒到来时,RTC_TCNT_VAL≠RTC_ALARM,即不会再触发中断。

RTC闹钟软件清零的条件是执行了写1清零,且会立即执行,无需按秒同步。

RTC模块实时时间时以秒为单位计数,系统需要获得年月日时分秒时间,需要经过软件运算换算; 当使用闹钟功能时,也需要换算为以秒为单位的数值,设置到对应的寄存器。

硬件只支持一个闹钟设置,并且每次设置都是一次性的,一旦产生了中断,上一次设置的闹钟就被自动取消了。 如果存在多个闹钟,需要软件上保持并记录一个队列。 在软件初次设置闹钟时,软件需要将最靠近的闹钟值设置到寄存器,并在响应闹钟后,立即将最近的下一个闹钟值设置到寄存器; 如果需要每天固定时间产生闹钟,即需要软件进行每天重新设置。

10.3.2.2. 电源及电流

为了保持关机下计数,在关机场景下,RTC模块采用纽扣电池或法拉电容供电(从VCOIN引脚直接输入); 为了最大化纽扣电池使用寿命,在开机后,内部电源开关会自动切换到VCC33_IO进行供电,但注意VCC33_IO电源不会对VCOIN电源进行充电。

图 10.2 所示,RTC模块提供两路供电输入,关机电源输入VCOIN和开机电源输入VCC33-RTC, RTC模块供电选择由内部硬件开关自动切换完成,切换的条件是另外一路供电比当前供电的电压更高。