美文网首页
第二十五章 RTC 实时时钟实验

第二十五章 RTC 实时时钟实验

作者: 昨天剩下的一杯冷茶 | 来源:发表于2019-12-28 15:15 被阅读0次

    一、 RTC简介
    ①一般高端的单片机内部有一个RTC外设模块,这个模块需要一个32.768KHz的晶振。
    ②I.MX6U内部也有RTC模块,但是补交“RTC”,而是叫“SNVS”。
    ③SNVS有两部分:SNVS_HP和SNVS_LP。系统主电源断电以后SNVS_HP也会断电,但是在后备电源支持下,SNVS_LP是不会断电的,而且SNVS_LP是和芯片复位隔开的。
    二、 SNVS框图

    image.png
    、 VDD_HIGH_IN是系统主电源,这个电源会同时供给给SNVS_HP和SNVS_LP。
    、 VDD_SNVS_IN是纽扣电池供电的电源,这个电源只会供给给SNVS_LP,保证在系统主电源VDD_HIGH_IN掉电以后SNVS_LP会继续运行。
    、 SNVS_HP部分
    、 SNVS_LP部分,此部分有SRTC,这就是我们本章要使用的RTC。
    SNVS_HP和SNVS_LP内部都有一个SRTC。但是因为SNVS_HP在系统电源掉电以后就会关闭,所以我们本章使用的是SNVS_LP内部的SRTC。

    三、看SRTC相关的寄存器
    ①寄存器SNVS_HPCOMP
    NPSWA_EN(bit31):这个为是非特权软件访问控制为,如果非特权软件要访问SNVS的话此位必须为1.

    ②寄存器SNVS_LPCR
    SRTC_ENV(bit0):此位为1的话就使能STC计数器

    ③寄存器SNVS_SRTCMR和SNVS_SRTCCLR,这两个寄存器保存着RTC的秒数,SNVS_SRTCMR的bit14:0这15位是SRTC计数器的高15位,SNVS_SRTCCLR的bit31:15这17位是SRTC计数器的低17位。

    四、照着原子哥敲一次代码,编译与测试。
    1、 在BSP文件夹建了rtc文件夹,添加了bsp_rtc.h和bsp_rtc.h
    2、 拷贝原子哥的bsp_rtc.h到我的工程bsp_rtc.h
    3、 在bsp_rtc.c实现bsp_rtc.h的声明函数
    4、 修改MCIMX6Y2.h结构体SNVS_Type
    5、 修改main.c
    6、 修改Makefile
    7、 在linux上编译工程
    8、 将编译固件烧录到SD卡上,在开发板测试。

    相关文章

      网友评论

          本文标题:第二十五章 RTC 实时时钟实验

          本文链接:https://www.haomeiwen.com/subject/koqsoctx.html