发表于:2020/5/8 15:14:45
#0楼
ARM学习笔记—RTC编程(一)
要学习RTC的编程,首先我们得知道什么是RTC?RTC是怎样工作的?RTC电路是如何搭建的?RTC编程需要注意什么?要弄清楚这些,最好的方式就是从用户手册上去找寻答案,我按照LPC1788提供的手册一步步分析和学习RTC。
一、基础配置
1、RTC的电源控制:在寄存器PCONP中,置位位PCRTC。注意:复位的时候PCRTC的值也为“1”。(这里需要注意在arm中所有的pin操作都是通过读写寄存器完成的,每一个pin脚都是对应寄存器的一位,不能直接对pin进行置位或复位)
2、时钟源:RTC从RTC晶振中获取1HZ作为内部功能时钟,外部时钟用于接收RTC寄存器的值(目前还没有理解透彻,以后继续研究)
3、中断:中断在后面将会专门讲到这里就不多说了
二、特性
* 通过走过的时间,维持日历和时钟的准确性。可以得出年、月、日、时、分、秒、星期
* 超低功耗的设计,工作电流低于1微安,当系统上电时自动切换到使用电源供电,系统掉电使用电池供电
* 系统有一个20byte的备份寄存器专门用来备份定时器的电源(不甚明白ARM学习笔记—RTC编程 - 沧海一粟 - 沧海一粟的博客)
* 专用的极低功耗32KHZ振荡器
* 专用的电源接入引脚Vbat
* RTC的电源与单片机的其他部件隔离开来
* 标准的计数器是RTC的精度比正负1秒/每天都要精确
* 时间寄存器的计数增加将会周期性的触发中断产生
* 可以设置报警时间(即相当于设置一个闹钟)
三、描述
当系统处于上电的时候,可以给RTC设置一个时钟计数基准,RTC就会按照这个基准进行工作,系统掉电的时候亦然。当没有CPU来获取数据的时候,RTC处于极低功耗工作,尤其是在省电模式下。LPC1788中RTC是通过外部的32KHZ晶振产生内部1HZ的时钟参考进行准确工作的。它通过独立的引脚供电,既可以在掉电的时候使用电池,又可以在上电的时候使用外部的3.3V电源
四、框图描述
这是RTC电源作用的一个框图,从这个图我们清晰的看出RTC有一个电源选择器,选择使用的电源。同时有一个backupregister这个寄存器,这个寄存器作用是什么目前我还不清楚
这是RTC的一个功能框图,从功能图上我们获知这里有三个寄存器,一个Alarm Register,用于设置警告中断的界限值,一个是Time Register,用于存放RTC的时间值,还有一个是Calibration Register(CIIR增量中断寄存器),用于产生计数的中断
五、PIN脚说明
在前一篇已经说过pin脚的含义,这里就不赘述了
六、寄存器描述
1、RTC中断
2、各种寄存器组
(1)ILR
(2)CCR
(3)CIIR
(4)AMR
(5)RTC_AUX
3、时间寄存器
(1)CTIME0
(2)CTIME1
(3)CTIME2
4、计数组
(1)跳年计算
(2)标准寄存器
5、明确的工序
6、通用寄存器
7、警告寄存器组
七、RTC使用要点
感觉之前看的说明书走了很大的弯路,因为说明书有1000多页所以不可能在这几天的熟悉单片机的时候读完,但是里面的内容又是互相牵连的,这个时候要求我们要学会阅读说明书,在读datasheet的时候一定要看目录,找好大的方向,然后一直看到这个知识点结束,这样才能很好的理解自己的所需。
要学习RTC的编程,首先我们得知道什么是RTC?RTC是怎样工作的?RTC电路是如何搭建的?RTC编程需要注意什么?要弄清楚这些,最好的方式就是从用户手册上去找寻答案,我按照LPC1788提供的手册一步步分析和学习RTC。
一、基础配置
1、RTC的电源控制:在寄存器PCONP中,置位位PCRTC。注意:复位的时候PCRTC的值也为“1”。(这里需要注意在arm中所有的pin操作都是通过读写寄存器完成的,每一个pin脚都是对应寄存器的一位,不能直接对pin进行置位或复位)
2、时钟源:RTC从RTC晶振中获取1HZ作为内部功能时钟,外部时钟用于接收RTC寄存器的值(目前还没有理解透彻,以后继续研究)
3、中断:中断在后面将会专门讲到这里就不多说了
二、特性
* 通过走过的时间,维持日历和时钟的准确性。可以得出年、月、日、时、分、秒、星期
* 超低功耗的设计,工作电流低于1微安,当系统上电时自动切换到使用电源供电,系统掉电使用电池供电
* 系统有一个20byte的备份寄存器专门用来备份定时器的电源(不甚明白ARM学习笔记—RTC编程 - 沧海一粟 - 沧海一粟的博客)
* 专用的极低功耗32KHZ振荡器
* 专用的电源接入引脚Vbat
* RTC的电源与单片机的其他部件隔离开来
* 标准的计数器是RTC的精度比正负1秒/每天都要精确
* 时间寄存器的计数增加将会周期性的触发中断产生
* 可以设置报警时间(即相当于设置一个闹钟)
三、描述
当系统处于上电的时候,可以给RTC设置一个时钟计数基准,RTC就会按照这个基准进行工作,系统掉电的时候亦然。当没有CPU来获取数据的时候,RTC处于极低功耗工作,尤其是在省电模式下。LPC1788中RTC是通过外部的32KHZ晶振产生内部1HZ的时钟参考进行准确工作的。它通过独立的引脚供电,既可以在掉电的时候使用电池,又可以在上电的时候使用外部的3.3V电源
四、框图描述
这是RTC电源作用的一个框图,从这个图我们清晰的看出RTC有一个电源选择器,选择使用的电源。同时有一个backupregister这个寄存器,这个寄存器作用是什么目前我还不清楚
这是RTC的一个功能框图,从功能图上我们获知这里有三个寄存器,一个Alarm Register,用于设置警告中断的界限值,一个是Time Register,用于存放RTC的时间值,还有一个是Calibration Register(CIIR增量中断寄存器),用于产生计数的中断
五、PIN脚说明
在前一篇已经说过pin脚的含义,这里就不赘述了
六、寄存器描述
1、RTC中断
2、各种寄存器组
(1)ILR
(2)CCR
(3)CIIR
(4)AMR
(5)RTC_AUX
3、时间寄存器
(1)CTIME0
(2)CTIME1
(3)CTIME2
4、计数组
(1)跳年计算
(2)标准寄存器
5、明确的工序
6、通用寄存器
7、警告寄存器组
七、RTC使用要点
感觉之前看的说明书走了很大的弯路,因为说明书有1000多页所以不可能在这几天的熟悉单片机的时候读完,但是里面的内容又是互相牵连的,这个时候要求我们要学会阅读说明书,在读datasheet的时候一定要看目录,找好大的方向,然后一直看到这个知识点结束,这样才能很好的理解自己的所需。