国民N32G457QLE7 RTC定时器的使用
1.RTC定时器的介绍1.1RTC定时器的基本功能
RTC模块通常与后备区域(BKP)结合,由备用电池(VBAT,1.8-3.6V)供电,确保主电源(VDD)断电后仍可持续运行,这一设计使其在待机模式或系统复位时仍能保持时间数据不丢,通常用于实时时间的获取和闹钟定时等。
1.2国民技术RTC定时器的基本信息
RTC的驱动时钟可以选择为32.768KHz外部晶体振荡器、内部低功耗40KHz RC振荡器、或者高速的外部时钟经128分频任意一个时钟源。对于计时精度要求非常高的应用场景,建议使用外部32.768KHz时钟作为时钟源,同时为补偿天然晶体的时钟偏差,可以通过输出一个512Hz的信号对RTC的时钟进行校准。RTC有一 个22位的预分频器用于时基时钟,默认情况下时钟为32.768kHz时,它将产生一个1秒长的时间基准。另外RTC可以用来触发低功耗状态下唤醒,以及定时唤醒TSC模块工作。
1.3国民RTC定时器的时钟
根据国民技术对应IC的数据手册中的时钟树可以确定其RTC支持可选的三个时钟对应的时钟树如下图:由此图可知RTC定时器使用的时钟为LSE。
但官方提供的SDK中提供了三个时钟源选择,分别是:
这里RTC使用LSE的原因是,低速的外部晶振常用32.768kHz,分频容易得到1Hz,而且主电源掉电后由备用电池供电,保持RTC继续工作。这点很重要,因为其他时钟源如HSE和LSI在主电源断开时无法维持,所以LSE的独立供电能力是关键。另外,低速的外部晶振功耗也比较低,防止RTC功耗太高。
另外该晶振与RTC均通过备用电池进行供电,即使主电源断电,RTC的功能也能正常使用。
1.4RTC的功能描述
该IC RTC的功能框图如下:
RTC 包括以下功能模块:
Alarm A 和 Alarm B 事件 / 中断
时间戳事件 / 中断
RTC 输出功能:
256 Hz 或者 1Hz 时钟输出 ( 当 LSE 频率是 32.768 kHz)
闹钟输出(极性可配置),闹钟 A 和闹钟 B 可选
自动唤醒输出(极性可配置)
RTC 输入功能:
时间戳事件检测
通过配置输出寄存器控制 PC13 :
设置 RTC_OPT.TYPE 位配置 PC13 开漏 / 推挽输出
2.RTC定时器的软件实现
2.1SDK选择N32H457系列最新的Firmware
源码对应的工程路径如下:
对应SDK的下载链接:
- 半导体解决方案--国民技术|官方网站
https://www.nationstech.com/support/dow/
该芯片对应的相关资源也在上述网站下载,下方是对应SDK的源码下载
2.2RTC定时器SDK源码相关的讲解以及配置流程
如何快速了解源码中相关的配置信息:从main函数入手开始看,main以上是关于系统时钟构造延时函数对应的相关内容,不需要多看。同时mian函数中的RTC源码配置也对应了实现RTC相关功能的步骤,以下内容是我对SDK中RTC相关配置的了解:
2.2.1工程框架
SDK中相关框架的介绍:
2.2.2RTC的软件配置
这段配置代码与SDK中有不同的地方,注意看红色部分框选的使能,SDK中并没有。
2.2.3GPIO事件终端时间戳保存功能
根据上述选择PB8作为时间戳功能的保持事件中断,下方是关于PB8的相关配置:
这里博主将PB8配置为上拉输入模式,采用捕捉IO口的下降沿来保持时间戳,若要保持时间戳,只需要在RTC配置完成后,将PB8拉低即可将新的时间戳保持到RTC的时间戳寄存器中。下面是关于PB8中断服务函数的编写以及博主相关的理解:
这里就展示关于时间戳相关功能的配置,然后其他功能可以在博主2.1章节中提供的SDK下载链接中找到对于的demo示例查看相关功能的实现。
3.软件验证
3.1RTC软件的移植
官方提供的demo中最有用的两个文件就只有以下这两个文件:
只需要将这两个文件拿到自己的工程中即可,另外demo中下方的这个函数中有一个延时函数的初始化,这个可以删掉,不会影响RTC的正常运行。以及RTC源文件中的延时函数等都可以替换为自己工程中的延时函数,印象中,源文件中只有4个延时函数,具体的可以全局搜索一下确认一下,避免到时候程序死在延时中。
另外源文件中的头文件,延时,以及led相关的头文件均可删除替换为自己工程中对应的即可,剩下的按照博主第二章中提供的软件进行配置即可实现RTC的时间戳功能。
3.2 结果说明
以上功能以及配置均经过博主验证,可正常安装上述流程配置,关于2.2.3中所提的年份不能保存的问题,博主有问过国民技术原厂的人员,的确是不能保存的,但是可以通过配置起始时间获取到这个年份值,再根据ktime函数进行相应的转换就能得到秒级的格林威志时间戳。上述源码以移植到博主个人的项目中使用。
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/wxy888888/article/details/146428063
MCU内部的RTC精度和稳定度一般没有外部的RTC高
页:
[1]