【EB 配置 MCAL】之 E3 MCAL3.0 RTC配置 & 测试

一、E3430 RTC 简介

E3400 & E3600 系列有两个 RTC , RTC 支持以下特性:

  • 支持 48 位低功耗实时时钟计数。
  • 支持计数器计数的上升和下降模式。
  • 支持产生唤醒/报警中断。
  • 能够生成 PMU 唤醒请求。
  • 支持生成周期性中断。
  • 支持晶体振荡器时钟数字校准。
  • 支持 128 位状态保留寄存器。

SoC 中有两个 RTC 模块,RTC1 和 RTC2。两个 RTC 模块功能相当。它们可以被任何 CPU 处理器用作实时定时器时钟源。 

二、E3430 RTC 配置

1、软件版本 MCAL3.0

2、配置 EB RTC 模块

如下图所示,这里的配置主要和 RTC Mode 的时间相关,进入到 RTC Mode 后,设置一定时间进行唤醒,需要特别注意的是:EB 中配置了 RTC Mode 唤醒时间,需要和具体工程代码匹配,因为有一些用户想自行在代码中配置不同的 RTC Mode 时间,因此为了防止用户的需求被覆盖,即 RTC Mode 时间会被覆盖更改,以下采取 EB 中直接 Disable RTC 的中断配置,确保用户自行设定的时间不被覆盖更改。

3、配置 RTC 代码部分

若用户进入 RTC_SetMode(); 这个函数之前配置了 WakeUp 时间,即用户想自行配置 RTC Mode 时间,不依赖于 EB 的配置,如下图即是 EB 配置中断后会覆盖用户自定义 RTC Mode 时间的代码。

4、用户自定义 RTC Mode 时间

用户可以自行设置时间


5、切换外部 RTC 晶振

如下图,切换外部 RTC 32.768K 晶振,需要特别注意的事项,在切换晶振使用时,必须确保系统上电复位后 1s 左右,外部 RTC 晶振才会进入到 Ready 状态,才可以切换成功。



sint32 Mcu_RtcTrySwitchToXtalTest(void *para)

{

boolean retVal = Mcu_RtcTrySwitchToXtal(FS_32K_BASE_ADDR);

PRINT(" RS 32KHz clk switch %s \n", retVal ? "failure" : "Success");

return 0;

}

三、E3430 RTC Mode 时间测试

1、使用 Gateway 板子,下载程序到 Flash 进行测试

2、使用低功耗分析仪,查看进入 RTC Mode 时电流的时间

3、在串口助手输入

listcase

查找到 RTC Mode 的case 后,知道是输入以下命令

runcase 100

4、实际测试 RTC Mode 时间

按照以上步骤,实际测试结果:设置进入 RTC 30s 后唤醒,实际测到的时间也是 30s 。

 

四、E3430 RTC 总结

1、RTC 切换外部晶振时,必须等待 1s 左右才能切换,才能确保切换成功;

2、RTC 测试时,如果单独测试切换晶振成功与否,在线 Debug & 下载到 Flash 启动,得出的结果是不一致的,必须是烧录到 Flash , 然后从 Flash 进行启动;

3、万年历时间的精度,主要取决于晶振的精度,内部晶振的误差在 10% ;

参考

1、E3400_E3600_MCU_Technical_Reference_Manual_Rev00.11.pdf

2、SemiDrive_E3_MCAL_User_Guide_Rev1.0.pdf

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论