我是靠谱客的博主 忧郁帽子,最近开发中收集的这篇文章主要介绍嵌入式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。

最后

以上就是忧郁帽子为你收集整理的嵌入式Linux(十三)RTC实时时钟的全部内容,希望文章能够帮你解决嵌入式Linux(十三)RTC实时时钟所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(69)

评论列表共有 0 条评论

立即
投稿
返回
顶部