0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

【爱普特APT32F110开发板工程师测评2】RTC测试

爱普特微电子 2023-03-05 10:36 次阅读

APT32F110X单片机RTC功能强大,在所有低功耗模式下均可独立运行,并支持系统唤醒。实时时钟计数器(RTC)为一个独立的 BCD 编码计数器,提供实时的日历和时间信息,包括星期,年、月、日和小时、分钟、秒。支持可编程的闹钟中断。RTC 具有产生周期性的中断事件的能力。RTC 一旦初始化成功并开始工作,任何复位信号均不能影响其工作,除非重新上电。

RTC 的基本特性:

  • 支持万年历功能,自动闰年判定。计时器包括小时、分钟、秒和微秒,BCD 格式计数
  • 二十四小时或者十二小时制可选,支持星期判断
  • 支持多个时钟源,包括外部晶振、内部低速振荡器和内部主振荡器。
  • 支持低功耗唤醒功能
  • 两个可编程闹钟

支持周期事件触发


RTC 的系统框图:

2d0921ec-b91d-11ed-ad0d-dac502259ad0.png

由于 RTC 工作时钟与 APB 总线时钟(PCLK)为异步时钟,对 RTC 的读写操作均需要通过两个异步时钟同步后进行。任何对 RTC 控制器的操作不会立即产生作用,可以通过对 CR[UPD_BSY]控制位进行查询,以获得更新状态。UPD_BSY 控制位在写请求发生时,会立即置位,直到更新结束后才会自动清除。在 RTC 未初始化前,对寄存器的更新值都保存在缓冲中,所以只需要在初始化时,查询 UPD_BSY 即可。当 RTC 已经初始化完成后(RTC 已经开始工作),任何对寄存器的修改,例如CR和ALRAR,都需要查询 UPD_BSY,以保证更新成功。

对 RTC 的初始化,包括如下操作:

  • 设置保护寄存器关闭
  • 设置 TIMR、DATR、ALRAR、ALRBR
  • 设置 CCR,包括时钟选择和分频选择
  • 使能 RTC 时钟(设置 CCR[CLKEN]),等待 RTC 工作时钟稳定(通过 CCR[RTCCK_ST]控制位查询)。
  • 设置 CR 寄存器,以设置时间格式或闹钟使能等配置。同时清除 INIT 位,启动初始化。

回读 INIT 状态位,确认 RTC 工作

2d3b5f86-b91d-11ed-ad0d-dac502259ad0.png

void rtc_set_time_demo(void)

{

csi_rtc_config_t tRtcConfig;

csi_rtc_time_t tRtcTime,tRtcTimeRdbk;

uint32_t wSec = 0;

csi_pin_set_mux(PA03, PA03_OSC_XI);//设置PA0.3为SXIN,如果使用外部主晶振作为RTC时钟源,必须先对管脚进行配置

csi_pin_set_mux(PA04, PA04_OSC_XO); //设置PA0.4为SXOUT,如果使用外部主晶振作为RTC时钟源,必须先对管脚进行配置

csi_pin_set_mux(PA01,PA01_OSC_SXI); //设置PA0.1为XIN,如果使用外部副晶振作为RTC时钟源,必须先对管脚进行配置

csi_pin_set_mux(PA02,PA02_OSC_SXO); //设置PA0.2为XOUT,如果使用外部副晶振作为RTC时钟源,必须先对管脚进行配置

tRtcConfig.byClkSrc = RTC_CLKSRC_ESOSC;//外部副晶振作为RTC时钟源

tRtcConfig.byFmt = RTC_24FMT;//选择时间模式

csi_rtc_init(RTC, &tRtcConfig);//初始化设置

tRtcTime.iYear = 22;

tRtcTime.iMon = 2;

tRtcTime.iMday = 14;

//tRtcTime.iWday = 1; //星期1-7

tRtcTime.iPm = RTC_AM;// AM or PM

tRtcTime.iHour = 9;//如果是12小时制,回读到的hour范围为1->12;如果是24小时制,回读到的hour范围是0->23

tRtcTime.iHour = 9;//如果是12小时制,回读到的hour范围为1->12;如果是24小时制,回读到的hour范围是0->23

tRtcTime.iMin = 50;

tRtcTime.iSec = 59;

csi_rtc_set_time(RTC, &tRtcTime);//设置时间

csi_rtc_start(RTC);//RTC开始计时

csi_rtc_change_fmt(RTC, RTC_12FMT);//修改时间模式为12小时制

tRtcTime.iYear = 22;

tRtcTime.iMon = 2;

tRtcTime.iMday = 14;

//tRtcTime.iWday = 1; //星期1-7

tRtcTime.iPm = RTC_AM;// AM or PM

tRtcTime.iHour = 11;

tRtcTime.iHour = 9;

tRtcTime.iMin = 59;

tRtcTime.iSec = 56;

csi_rtc_set_time(RTC, &tRtcTime);//修改时间以后需要重新start rtc

csi_rtc_start(RTC);

csi_rtc_get_time(RTC, &tRtcTimeRdbk);//回读当前时间

my_printf("12FMT: %d:%d:%d\n", tRtcTimeRdbk.iHour, tRtcTimeRdbk.iMin, tRtcTimeRdbk.iSec);

csi_rtc_change_fmt(RTC, RTC_24FMT);//修改时间模式为24小时制

csi_rtc_get_time(RTC, &tRtcTimeRdbk);//回读当前时间

my_printf("24FMT: %d:%d:%d\n", tRtcTimeRdbk.iHour, tRtcTimeRdbk.iMin, tRtcTimeRdbk.iSec);

csi_rtc_change_fmt(RTC, RTC_12FMT);//修改时间模式为12小时制

while(1)

{

csi_rtc_get_time(RTC, &tRtcTimeRdbk);

if(wSec != tRtcTimeRdbk.iSec )

{

wSec = tRtcTimeRdbk.iSec;

my_printf("%d:%d:%d pm= %d\n", tRtcTimeRdbk.iHour, tRtcTimeRdbk.iMin, tRtcTimeRdbk.iSec, tRtcTimeRdbk.iPm);

}

}

}

2d5f5c06-b91d-11ed-ad0d-dac502259ad0.png

经过2小时测试,RTC精度稳定良好

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 测试
    +关注

    关注

    8

    文章

    4453

    浏览量

    125127
  • 工程师
    +关注

    关注

    59

    文章

    1553

    浏览量

    67514
  • 开发板
    +关注

    关注

    25

    文章

    4435

    浏览量

    94034
收藏 人收藏

    评论

    相关推荐

    APT32F102 开发板使用手册

    电子发烧友网站提供《APT32F102 开发板使用手册.pdf》资料免费下载
    发表于 04-16 09:07 0次下载

    普特再推超高性价比全国产32位MCU—APT32F1025B

    近日,全国产32位MCU小巨人企业爱普特微电子宣布推出一款超高性价比的全国产RISC核32位MCU——APT32F1025B,进一步扩展丰富其在全国产、高性价比领域MCU产品系列布局
    的头像 发表于 03-29 08:17 160次阅读
    爱<b class='flag-5'>普特</b>再推超高性价比全国产32位MCU—<b class='flag-5'>APT</b>32F1025B

    芯派 Pro 开发板试用体验】+ 图像分割和填充的Demo测试

    感谢电子发烧友和芯元智公司提供的测试机会。 自从开箱芯派 Pro (AXera-Pi Pro)开发板之后一直没有更新,电子发烧友的小姐姐已经来催更了。一个是年底的事情确实多,单位的
    发表于 12-26 11:22

    芯派 Pro 开发板试用体验】开箱测试

    的各种纸盒包装结实很多。 打开后发现,其中包括一个开发板和电源。还有一个口袋里面有个螺母,不知道什么用途,我现在把它安装在电源的接头上了,好像也不是特别合适。 开发板上的各种接口似乎都是双份,包括
    发表于 11-20 22:09

    芯派 Pro 开发板试用体验】开箱报告

    的PCB;右边是12V-2A的白色纸盒。 回到AXera-Pi Pro开发板,核心上包括SoC+DDR RAM和flash芯片;扩展板则提供了MINI-PCIe接口用于WIFI/LTE模组,一个M.
    发表于 11-12 00:31

    芯派 Pro 开发板试用体验】+基本使用环境配置

    芯派 Pro 开发板试用体验】+基本使用环境配置 登录系统 系统默认为debian系统,插入网线,插入显示器,鼠标、键盘,介绍基础系统使用操作。 将 M4N-Dock 连接上显示器后,可以看到
    发表于 11-11 20:44

    FPGA工程师需要具备哪些技能?

    。 FPGA工程师在进行DSP电路设计之前,需要深入了解数字信号处理技术。他们需要掌握数字信号处理中的概念和基础知识,例如滤波器、傅里叶变换、数字信号采样等。FPGA工程师还需要了解一些DSP开发板
    发表于 11-09 11:03

    普特32位MCU APT32F1023H8S6在BEEM咖啡机中的应用

    普特32位MCU APT32F1023H8S6在BEEM咖啡机中的应用
    的头像 发表于 09-19 16:52 549次阅读

    【FireBeetle 2 ESP32-S3开发板测评】MicroPython开发体验

    【FireBeetle 2 ESP32-S3开发板测评】MicroPython开发体验
    的头像 发表于 07-23 09:02 1238次阅读
    【FireBeetle 2 ESP32-S3<b class='flag-5'>开发板</b><b class='flag-5'>测评</b>】MicroPython<b class='flag-5'>开发</b>体验

    APT32F1023单片机RTC待机超低功耗电流3.5uA源代码分享

    APT32F1023H8S6(SSOP-24封装)MCU是由普特微电子推出的基于平头哥半导体RISC-V内核开发的32位高性能、低成本单片机,最近有个项目需要用到其超低功耗待机和
    发表于 06-26 05:09

    热门推荐:硬件工程师必备工具

    硬件开发的工作流程一般可分为:原理图设计、PCB Layout设计、采购电子BOM、PCB生产、PCBA组装、功能调试及测试、小批量试产、大批量生产正式投放市场等步骤。 作为一名优秀的硬件
    发表于 06-21 10:15

    芯活动丨欢迎测评!昊芯参加电子发烧友第二届RISC-V开发板测评大赛

    继上届获得广大开发者/工程师积极申请与测评之后,昊芯于今年再度参加由电子发烧友网举办的第二届RISC-V开发板测评大赛活动,向参赛选手及团队
    的头像 发表于 06-05 09:57 501次阅读
    芯活动丨欢迎<b class='flag-5'>测评</b>!昊芯参加电子发烧友第二届RISC-V<b class='flag-5'>开发板</b><b class='flag-5'>测评</b>大赛

    【CW32饭盒派开发板试用体验】开发板简单介绍和开发板初体验

    今天开箱一款基于CW32F030C8T6的开发板开发板命名为CW32饭盒派。 下面简单的对开发板做个介绍: CW32饭盒派板载资源非常丰富:有一电位器、蜂鸣器、3路用户按键、3路指示
    发表于 05-22 10:56

    【CW32饭盒派开发板试用体验】开发板简单介绍及初体验

    今天开箱一款基于CW32F030C8T6的开发板开发板命名为CW32饭盒派。 下面简单的对开发板做个介绍: CW32饭盒派板载资源非常丰富:有一电位器、蜂鸣器、3路用户按键、3路指示
    发表于 05-22 10:47

    【CW32饭盒派开发板试用体验】开箱测试

    【CW32饭盒派开发板试用体验】+开箱测试 硬件资源介绍 CW32饭盒派是一款基于CW32F030C8T6的开发板。板载资源丰富:一电位器、蜂鸣器、3路用户按键、3路指示灯、USART
    发表于 05-13 00:20