[活动专区] 【AT-START-L021测评】02 看看AT32L021 ERTC的精度有多高

[复制链接]
 楼主| 怀揣少年梦 发表于 2024-12-3 22:37 | 显示全部楼层 |阅读模式
本帖最后由 怀揣少年梦 于 2024-12-3 22:38 编辑

本篇测评开始测试AT32L021的ERTC的精度
一、ERTC的理论精度
首先看看数据手册上有没有想过晶振精度的介绍,一看数据手册没有,但是写了实际负载电容的计算方式。
外部晶振的精度没有提及.png

手册上没有,看看实际PCB上使用的晶振型号,在嘉立创打开工程文件,结果没有看到具体型号,姑且就以杨兴晶振,20PPM的精度为准,对比实际的ERTC的精度。20PPM,计算出来,一天误差会有1.728秒。
20PPM.png

二、配置ERTC
使用AT32官方的代码生成软件AT32 Work Bech生成ERTC工程。
不得不说这个软件能够快速配置相关功能,使得工程师很好地进行业务代码逻辑编写。
1、下载安装PACK,在官方网站下载即可雅特力科技 : 32位微控制器的创新领导者!
下载PACK.png
解压安装即可
解压PACK,安装.png

2、双击打开AT32 Work Bech
打开软件.png

3、配置时钟,配置外部高低速晶振
使能时钟.png

4、打开串口,并使能串口打印。这个串口打印功能真是太香了,不需要每次配置工程时,特意去重定向串口打印。
使能串口
使能串口.png
使能串口打印
使能串口打印.png

5、配置ERTC
使能ERTC
ERTC配置.png
配置ERTC
ERTC时间配置.png

6、工程配置
配置工程.png
7、编写每隔1s打印ERTC时间的代码
  1. /**
  2.   * [url=home.php?mod=space&uid=247401]@brief[/url] main function.
  3.   * @param  none
  4.   * @retval none
  5.   */
  6. int main(void)
  7. {
  8.   /* add user code begin 1 */

  9.   /* add user code end 1 */

  10.   /* system clock config. */
  11.   wk_system_clock_config();

  12.   /* config periph clock. */
  13.   wk_periph_clock_config();

  14.   /* nvic config. */
  15.   wk_nvic_config();

  16.   /* timebase config. */
  17.   wk_timebase_init();

  18.   /* usart1 already supports printf. */
  19.   /* init usart1 function. */
  20.   wk_usart1_init();

  21.   /* init ertc function. */
  22.   wk_ertc_init();

  23.   /* add user code begin 2 */

  24.   /* add user code end 2 */

  25.   while(1)
  26.   {
  27.     /* add user code begin 3 */

  28.                 GetRTCTime();
  29.                 wk_delay_ms(1000);
  30.     /* add user code end 3 */
  31.   }
  32. }

  33.   /* add user code begin 4 */
  34. void GetRTCTime(void)
  35. {
  36.   ertc_time_type time;

  37.   /* get the current time */
  38.   ertc_calendar_get(&time);

  39.   /* display date format : year-month-day */
  40.   printf("Time:  %02d-%02d-%02d ",time.year, time.month, time.day);

  41.   /* display time format : hour:min:sec */
  42.   printf("%02d:%02d:%02d\r\n",time.hour, time.min, time.sec);
  43. }


三、下载验证
1、打印ERTC时间
ERTC打印.png

2、测试2小时RTC时间,计算精度
时间开始:
5275674f171e16273.png


时间结束
10459674f172ad6faa.png
两个小时实际相差时间为=0.083ms;按这样计算的话,实际一天相差1s钟不到。这样的数据不是很严谨。但也足以说明ERTC的精度满足正常的计时要求。

时光迷宫 发表于 2024-12-19 09:44 | 显示全部楼层
这个精度挺高了
 楼主| 怀揣少年梦 发表于 2024-12-19 10:07 | 显示全部楼层

投入实际使用,还需要根据实际评估
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:一切皆有可能

45

主题

473

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部