查看: 1296|回复: 4

RA_MCU_RTC使用注意事项

[复制链接]

1

主题

2

帖子

65

积分

注册会员

Rank: 2

积分
65
发表于 2022-2-17 19:41:50 | 显示全部楼层 |阅读模式
本帖最后由 Halley 于 2022-2-17 19:44 编辑

**使用的硬件:瑞萨RA6M3开发板EK-RA6M3,MCU型号R7FA6M3AH3CFC
**使用的IDE:e2 studio Version: 2021-07 (21.7.0)
**是使用的FSP:FSP V3.2.0

1、RTC的时钟源
根据RA6M3用户手册上的描述,RTC可以使用LOCO(内部32.768k)和Sub_clock(外部32.768k),使用RCR4寄存器的RCKSEL位选择,RCKSEL寄存器在上电后初始化RTC时只能设置一次。

**代码:
    uint8_t reg_rcr4;

    g_rtc0.p_api->open(&g_rtc0_ctrl, &g_rtc0_cfg);
    g_rtc0.p_api->calendarTimeSet(&g_rtc0_ctrl, &ori_time);
    g_rtc0.p_api->periodicIrqRateSet(&g_rtc0_ctrl, RTC_PERIODIC_IRQ_SELECT_1_SECOND);

    reg_rcr4 =  R_RTC->RCR4;
    if((uint8_t)g_rtc0_cfg.clock_source == reg_rcr4)
    {
        APP_PRINT("RTC clock source is %d, set OK. (0-Sub_clk; 1-LOCO)\r\n",reg_rcr4);
    }
    else
    {
        APP_PRINT("RTC clock source set err\r\n");
        APP_PRINT("RTC cfg_clk is %d, set_clk is %d. (0-Sub_clk; 1-LOCO)\r\n",g_rtc0_cfg.clock_source, reg_rcr4);
    }


问题:
使用上面的**代码,多次验证发现,RTC分别选择Sub_clk和LOCO,都会出现RTC要使用的时钟源和RTC初始化完成后的时钟源不一致的情况。

解决方法:
在RTC启动前再调用一次r_rtc_set_clock_source,配置一次RTC的时钟源。我是在r_rtc.c的第242行方调,**了多次,没再出现问题。


回复

使用道具 举报

1

主题

2

帖子

65

积分

注册会员

Rank: 2

积分
65
 楼主| 发表于 2022-2-17 19:46:32 | 显示全部楼层
一楼是我自己**发现的,欢迎大家一起讨论。
另外其他RTC的使用注意事项,会逐步验证后写出来。
回复

使用道具 举报

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

本版积分规则

用户排行榜

RA助手

主题: 116帖子:134精华:0

RA_Lance

主题: 92帖子:132精华:9

lugl

主题: 43帖子:132精华:0

xujiwei263

主题: 16帖子:73精华:0

books咦

主题: 11帖子:11精华:2

Juggernaut

主题: 9帖子:95精华:0
快速回复 返回顶部 返回列表