一. RTC实时时钟简介
这个 RTC是属于 IMX6ULL芯片内部的外设。
注意:
1. IMX6ULL芯片的RTC模式从1970年1月1日0时0点0分0秒。一般RTC芯片都是从这个时间开始的。
二. RTC实验
I.MX6ULL-ALPHA 开发板上有一个纽扣电池,这个纽扣电池就是在主电源关闭以后为 SNVS 供电的。
SNVS章节有些是跟加密有关的,需要与NXP签订NDA协议才可以拿到。
RTC分为SNVS_LP和SNVS_HP。
参考《I.MX6UL 参考手册》如下:
可以得出:
SNVS_LP:需要后备电源,即需要纽扣电池持续给其供电就可以工作。系统主电源和备用电源都可以为其供电。
SNVS_HP:整个开发板要给6ULL整个芯片供电后才工作。一旦开发板掉电之后,SNVS_HP停止工作(即这个RTC被全部清零)。
1. RTC的使用原理
RTC使用很简单,打开RTC,然后RTC就开始工作。
我们要做的就是不断地读取RTC计数寄存器,获取时间值,或者向RTC计数器写入时间值,也就是调整时间。
2. RTC实时时钟配置
接下来我们看一下本章要用到的与 SRTC 相关的部分寄存器。相关寄存器的配置如下:
SNVS_HPCOMR寄存器:
这个位是非特权软件访问控制位,如 果非特权软件要访问 SNVS 的话此位必须为 1。
bit 31:1,表示所有的软件都可以访问SNVS所有寄存器。
SNVS_LPCR寄存器:bit 0 置1,使能 SRTC功能。
SNVS_LPSRTCMR寄存器:bit14:0:为RTC计数寄存器的高15位
SNVS_LPSRTCLR寄存器:是低32为RTC计数器。
SNVS_LPSRTCMR寄存器与SNVS_LPSRTCLR寄存器共同组成了SRTC计数器,每1秒数据加1。
左大神提示:
如果做产品,千万不要用恩智浦内部的 RTC。可以使用外置RTC芯片,PCF8563。
首先外置RTC芯片的精度会高一点,内置的RTC精度会差一点。