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精度稳定良好

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

    关注

    9

    文章

    6505

    浏览量

    131785
  • 工程师
    +关注

    关注

    59

    文章

    1604

    浏览量

    71293
  • 开发板
    +关注

    关注

    26

    文章

    6507

    浏览量

    121361
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Renesas RSKRX24U 开发板:电子工程师的得力助手

    Renesas RSKRX24U 开发板:电子工程师的得力助手 在电子开发的领域中,拥有一款功能强大且易于使用的开发板至关重要。Renesas RSKRX24U
    的头像 发表于 12-29 15:45 752次阅读

    触觉智能RK3506星闪开发板测评报告(下)

    本文基于触觉智能RK3506开发板,上集主要从性能、功耗进行测评,本集将从开发板的外设设计、EMC等可靠性性能进行测评
    的头像 发表于 12-11 17:00 1611次阅读
    触觉智能RK3506星闪<b class='flag-5'>开发板</b><b class='flag-5'>测评</b>报告(下)

    【开源FPGA硬件】硬件黑客集结:开源FPGA开发板测评活动全网火热招募中......

    式发布啦!现面向全网招募第一批工程师/硬件爱好者,开发板免费试用测试啦! 优秀试用报告,将作为板卡配套资料发布~ 相关链接: 拥抱开源!一起来做FPGA开发板啦!火爆
    发表于 10-29 11:37

    【精选资料】开发板测评大赛作品合集!

    电子发烧友携手16家生态厂商发起开发板测评大赛,设OpenHarmony、RISC-V、Rockchip三大赛道,共计21款、160+块开发板,通过评测开发板性能、易用性及创新场景,促
    的头像 发表于 09-23 08:09 1544次阅读
    【精选资料】<b class='flag-5'>开发板</b><b class='flag-5'>测评</b>大赛作品合集!

    【作品合集】视美泰M-K1HSE、3568开发板测评

    领先水平。M-K1HSE专为人机交互、工控项目、深度学习等场景设计,提供丰富的接口和强大的扩展能力,是开发者和工程师的理想选择。 SC-3568HA开发板: SC-3568HA开发板
    发表于 09-22 10:32

    【作品合集】中科昊芯Core_DSC280025C开发板测评

    中科昊芯Core_DSC280025C开发板测评作品合集 产品介绍: Core_DSC280025C核心使用了昊芯HXS320F28025CRISC-V DSP芯片,该芯片集成了吴芯
    发表于 09-18 10:52

    【作品合集】玄铁Banana Pi BPI-RV2开发板测评

    玄铁Banana Pi BPI-RV2开发板测评作品合集 产品介绍: Banana Pi BPI-RV2 开源网关是⼀款基于矽昌 SF21H8898 SoC的设备,1 × 2.5 G
    发表于 09-17 10:58

    【作品合集】群芯闪耀Milk-V Duo S 开发板测评

    (SG2000)开发板测评【Milk-V Duo S 开发板免费体验】Duo S(SG2000) CAM-GC2083 流媒体测试 【Milk-V Duo S
    发表于 09-16 11:03

    【作品合集】汇思博SEEK100开发板测评

    SEEK100开发板开箱&amp;简介 【汇思博SEEK100开发板试用体验】02 环境搭建及新建测试工程 【汇思博SEEK100开发板试用体验】03 简约风天气APP
    发表于 09-15 10:24

    【作品合集】合众HZ-T536开发板测评

    科技VisionFive 2单板计算机开发板测评作品合集 第五期合集 : 矽速科技Sipeed MaixCAM Pro开发板测评作品合集 第
    发表于 09-12 09:37

    【作品合集】米尔RK3576开发板测评

    测试 作者:鲁治驿【米尔RK3576开发板免费体验】测评综合解析 【米尔RK3576开发板免费体验】集成MQ-2烟雾传感器和ADS1263模
    发表于 09-11 10:19

    【作品合集】矽速科技Sipeed MaixCAM Pro开发板测评

    合集: 赛昉科技VisionFive 2单板计算机开发板测评作品合集 第六期合集 : 沁恒微电子CH585开发板测评作品合集 第七期合集 :
    发表于 09-05 09:33

    【作品精选】2025电子发烧友开发板测评大赛作品合集!

    科技01 Studio K230开发板测评作品合集 赛昉科技VisionFive 2单板计算机开发板测评作品合集 矽速科技Sipeed Ma
    发表于 09-03 15:24

    【作品合集】微五科技CF5010RBT60开发板测评

    科技01 Studio K230开发板测评作品合集 第四期合集: 赛昉科技VisionFive 2单板计算机开发板测评作品合集 第五期合集
    发表于 09-01 14:48

    【米尔-RK3562开发板试用评测】rtc测评

    ,使用 rtc1 进行测试。 root@myd-yr3562:# hwclock -w -f /dev/rtc1 将开发板关机断开电源,经
    发表于 05-31 15:04