imx6ull rtc 驱动学习

IMX6ULL RTC 驱动学习

RTC SNVS架构

RTC是由纽扣电池供电,而不是电源域供电的,所以即便板子断电,也能正常运行,
RTC是SNVS模块的外设之一,其SNVS模块整体架构如下:
alt text

左边是供电,右边SNVS域(模块)总共分为两个大的部分,HP部分(仍然是板子电源供电),LP部分(由板卡供电,或者纽扣电池供电均可)

我们使用的RTC就是SNVS模块里面的SRTC外设。

其本质还是一个计数器,时钟源固定为37k的晶振

驱动配置

还是老样子:
(可能有外设模块寄存器访问锁)

  1. 时钟源 (固定为37khz的晶振)
  2. pin脚(没有用到)
  3. 协议->寄存器(CR,DR,SR)

1. 使能SNVS block 访问

2. 时钟源配置

无

3. pin

无

4. 寄存器配置

1. 外设协议结构体描述

alt text

2. 使能(CR)

alt text

3. 禁用(CR)

使能位取反即可

4. 读取秒数

直接读取DR即可
alt text

5. 设置秒数

直接配置DR即可