4400|2

111

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

【GD32E231 DIY】RTC开发 [复制链接]

(一)GD32E231的RTC

与常见的秒计数器不同,GD32E231的RTC模块提供了一个包含日期(年/月/日)和时间(时/分/秒/亚秒)的日历功能,无需用户自己实现日历算法。

通过读取寄存器可以直接得到时间和日历的值:

(二)时钟源配置

RTC的时钟源有三个:内部40K时钟,外部32.768K,内部高速时钟32分频

通常采用内部40K最为方便,因为通常外部的32.768K时钟兼顾低功耗功能,起振比较困难。

上图还可以看到这里有两个分频器:异步7位分频器FACTOR_A,产生时钟ck_apre;同步15位分频器FACTOR_S,产生时钟ck_spre。

最终的时钟频率要做到同步分频器出来刚好是1Hz。他们的计算公式:

数据手册提到,异步分频器对功耗控制更加严格,应该尽量加大异步分频器的数值,因此这里设置异步分频器为100-1,同步分频器则为400-1.

初始化代码:

    /* enable access to RTC registers in backup domain */
    rcu_periph_clock_enable(RCU_PMU);
    pmu_backup_write_enable();

    /* enable the IRC40K oscillator */
    rcu_osci_on(RCU_IRC40K);
    /* wait till IRC40K is ready */
    rcu_osci_stab_wait(RCU_IRC40K);
    /* select the RTC clock source */
    rcu_rtc_clock_config(RCU_RTCSRC_IRC40K);

    rcu_periph_clock_enable(RCU_RTC);
    rtc_register_sync_wait();
	
	rtc_init(&rtc_initpara);

其中rtc_initpara是RTC里面最重要的结构体,我们可以在固件库手册里面找到它:

这里定义这个结构体:

rtc_parameter_struct rtc_initpara=
			{0x18,RTC_DEC,0x01,RTC_SATURDAY,
			0x10,0x0,0x0,
			0x63,0x18F,
			RTC_AM,RTC_24HOUR};

其中asyn、syn就是上述的分频器设置参数(手册的异步打错字了)

 

(三)时间校准

RTC是可以实现低功耗的,其低功耗供电通过VDD(即JP8排阵第三个针脚)供电,但由于目前没有额外设置低功耗,因此没有采用电池低功耗供电,因此上电需要校准。为此额外外挂了一个DS3231。

可能使用了DS3231再使用RTC有点多次一举。但实际上RTC是芯片内部总线访问,比通过IIC外部总线访问快得多。

	ReadTimeDS3231();
	rtc_initpara.rtc_second = HEX2BCD(m_Timestrct.sec);
	rtc_initpara.rtc_minute = HEX2BCD(m_Timestrct.min);
	rtc_initpara.rtc_hour = HEX2BCD(m_Timestrct.hour);
	rtc_initpara.rtc_date = HEX2BCD(m_Timestrct.data);
	rtc_pre_config();

 

(四)运行效果

使用1602显示时间:

		rtc_current_time_get(&rtc_initpara);
		sprintf(t_strReportTemp, "%2x:%2x:%2x-%2x", rtc_initpara.rtc_hour, rtc_initpara.rtc_minute, rtc_initpara.rtc_second, rtc_initpara.rtc_date);
		ShowString(2,1, (unsigned char *)t_strReportTemp);
		

效果:

此帖出自GD32 MCU论坛

最新回复

源码贴出来看看   详情 回复 发表于 2021-6-29 14:07
点赞 关注(2)
 

回复
举报

828

帖子

190

TA的资源

管理员

沙发
 

期待群主的进一步分享

此帖出自GD32 MCU论坛
加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
 
个人签名在路上……

EEworld 有你有我
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

板凳
 

源码贴出来看看

此帖出自GD32 MCU论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
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
快速回复 返回顶部 返回列表