3074|1

2945

帖子

4

TA的资源

五彩晶圆(中级)

楼主
 

NUCLEO_G431RB测评-RTC实时时钟 [复制链接]

实时时钟(RTC)是独立于主功能外的一个模块,用做与日历时间有关的计时功能。过去有专门的芯片如:DS1302。现在由于芯片的集成度工艺的提高,很多MCU芯片厂商将时钟芯片集成到一个芯片当中。使得设计大大简化了。但是原则上RTC是一个外置的模块,MCU的活动不影响RTC的功能。如果需要RTC模块可以使用独立的电池供电,来保证时间的连续性。

这是我从STM32G431手册上摘录的RTC功能:

  • 具有BCD(二进制编码的十进制)格式的亚秒,秒,分钟,小时(12或24格式),星期,日期,月份,年份的日历。
  • 自动更正每月的28、29(闰年),30和31天。
  • 两个可编程警报器。
  • 从1到32767 RTC时钟脉冲进行实时校正。这可用于将其与主时钟同步。
  • 参考时钟检测:可以使用更精确的第二个源时钟(50或60 Hz)来提高日历精度。
  • 具有0.95 ppm分辨率的数字校准电路,以补偿石英晶体的误差。
  • 时间戳功能,可用于保存日历内容。可捕获时间戳引脚上的事件,篡改事件或切换VBAT模式触发事件。
  • 17位自动重载唤醒定时器(WUT),用于具有可编程分辨率和周期性事件。 RTC供电切换开关,该开关可以控制VDD电源或VBAT引脚供电。

RTC的时钟源可以是: (1)32.768 kHz外部晶体(LSE);(2)外部谐振器或振荡器(LSE) ;(3)内部低功耗RC振荡器(LSI,典型频率为32 kHz);(4)高速外部时钟(HSE)32分频。

RTC由LSE计时时,在VBAT模式和所有低功耗模式下均可用。当使用LSI时钟时,RTC在VBAT模式下不起作用,但在除关机模式外的所有低功耗模式下都起作用。所有RTC事件(警报,唤醒定时器,时间戳)都可以生成中断并将设备从低功耗模式唤醒。
对以上主要内容做个介绍:

根据以往的经验,RTC模块的计时还是比较准确的,工作也较为稳定。但是该模块相较DS1302还是比较费电的。有时CR1220的电池用不了一年就没电了(不知道是不是我的电池问题还是我的电路设计或是运行环境的事?)。需要主意的是:RTC的时钟一定要选对了,如果你选择了内部时钟计数器,时钟的误差就会很大!

RTC的模块中除了有计时功能外,还有一块RAM,叫做:备份寄存器。这个RAM可以使用电池供电,常常用来保存一些需要掉电保持的数据。如机器的运行状态什么的,因为是RAM所以读写次数不限,只要电池有电。可以代替有擦写次数限制的EEPROM。这一区域是独立于主MCU功能的,所以不能直接使用地址来访问。需要RTC的操作寄存器来访问。

入侵检测:RTC模块设有专用的引脚,只要这个引脚出现电平变化,就会擦除备份寄存器中的数据。这个功能可以用防止恶意的拆机等应用。

本次测试还是使用的STM32Cube,首先设置RTC功能使能。注意时钟设置为外部32.768K晶振。

然后激活日历功能。

HAL_RTC_GetTime(&hrtc, &stimestructure, RTC_FORMAT_BIN);
HAL_RTC_GetDate(&hrtc, &sdatestructure, RTC_FORMAT_BIN);
printf("%02d/%02d/%02d\r\n",2000 + sdatestructure.Year, sdatestructure.Month, sdatestructure.Date);
printf("%02d:%02d:%02d\r\n",stimestructure.Hours, stimestructure.Minutes, stimestructure.Seconds);

使用HAL_RTC_GetTime和HAL_RTC_GetDate函数读取RTC的计时和日历。HAL_RTC_SetDate和HAL_RTC_SetTime设置初始的时间。到此你的时钟就可以使用了。



内容由EEWORLD论坛网友bigbat原创,如需转载或用于商业用途需征得作者同意并注明出处
 

此帖出自stm32/stm8论坛

最新回复

G系列功耗和L系列比呢   详情 回复 发表于 2019-9-25 16:06
点赞 关注
 

回复
举报

7676

帖子

2

TA的资源

五彩晶圆(高级)

沙发
 

G系列功耗和L系列比呢

此帖出自stm32/stm8论坛
 
个人签名

默认摸鱼,再摸鱼。2022、9、28

 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表