嵌入式Linux(十三)RTC实时时钟

1. SNVS

  I.MX6U的RTC在SNVS里面。SNVS里面主要是一些低功耗外设,包括RTC,单调计数器,一些通用寄存器。SNVS分为高低功耗域。高功耗域SNVS_HP在系统掉电以后不维持,低功耗域SNVS_LP由纽扣电池单独供电,会一直处于上电状态。LP里面是SRTC也是实际上用的,HP里的RTC由于掉电复位所以不使用。
  SRTC需要一个32.768KHz的时钟,寄存器SNVS_LPSRTCMR和SNVS_LPSRTCLR保存秒数,从1970年1月1日开始加上秒数就是当前时间。此外在寄存器SNVS_LPAR中写入闹钟时间,当前时间和闹钟时间一致的时候可以产生闹钟中断。自己做产品的阶段一般用的是外部高精度的RTC,不会用这种内部RTC。
  SRTC使用:只需要打开RTC,然后不断读取寄存器时间值,不断向RTC计数器写入时间值更新时间。

2. SRTC相关寄存器

1)SNVS_HPCOMR寄存器
NPSWA_EN(bit31):非特权软件访问控制位,需要访问的话设置为1,这样所有软件都可以访问SNVS的所有寄存器。
2)SNVS_LPCR寄存器
SRTC_ENV(bit0):为0使能STC计数器。
3)SNVS_SRTCMR & SNVS_SRTCLR
  保存着RTC的秒数,MR保存的高15位,LR保存的低17位,一共32位。需要修改这两个寄存器的值(更新时间)之前要先关闭SRTC。

3. SRTC配置步骤:

①初始化SNVS_LP中的SRTC。
②设置RTC时间。
③使能RTC。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值