Edgi-Talk_RTC 示例工程

中文 | English

简介

本示例工程基于 Edgi-Talk 平台,演示 RTC(实时时钟)功能,运行在 RT-Thread 实时操作系统 (M33 核) 上。 通过本工程,用户可以快速体验 RTC 时间设置、读取与延时打印功能,为后续时间管理与定时任务开发提供参考。

RTC(实时时钟)简介

1. 概述

RTC(Real-Time Clock) 是一种用于 计量和跟踪实际时间(年、月、日、时、分、秒) 的电子模块或芯片。它通常内置在 微控制器(MCU) 或作为独立芯片存在,用于提供 系统时间定时唤醒定时事件触发 等功能。

RTC 的核心特点是 低功耗、长时间稳定运行,即使系统主电源断电,也可通过备用电源(如电池或超级电容)继续计时。

2. 工作原理

RTC 基本上是一个 低功耗振荡器 + 计数器 系统:

  1. 时钟源

    • RTC 通常使用 32.768 kHz 石英晶振(1 Hz = 2^15 周期)

    • 提供稳定时基

  2. 分频计数

    • 将晶振信号分频得到 1 Hz 的秒脉冲

    • 累计计数生成分钟、小时、天、月、年

  3. 寄存器存储

    • RTC 内部寄存器保存当前时间、日期、闹钟设置等

  4. 电源冗余

    • 内部电池或超级电容供电,使 RTC 在主电源断电时继续运行

3. RTC 类型

  1. 内部 RTC

    • 集成在 MCU 内部

    • 优点:节省芯片数量,成本低

    • 缺点:晶振精度受 PCB 布线、温度影响

  2. 外部 RTC 芯片

    • 独立芯片,如 DS3231、PCF8563

    • 优点:高精度、可用 I²C/SPI 接口连接 MCU

    • 缺点:增加 PCB 封装面积和成本

4. 关键参数

参数

描述

振荡器频率

通常 32.768 kHz,低功耗稳定

时间精度

ppm / 秒/天,决定时钟漂移

电源电压

1.8~5V,支持备用电源

功耗

1~5 µA(低功耗模式)

接口类型

I²C、SPI 或 MCU 内部总线

功能扩展

闹钟输出、方波输出、温度补偿、定时唤醒

5. RTC 功能

  1. 实时时钟

    • 提供当前时间和日期

6. RTC 应用场景

  • 嵌入式设备

    • MCU 实时时间追踪,事件记录

  • 低功耗物联网设备

    • RTC 唤醒 MCU 进行周期性数据采集

  • 手表与智能穿戴设备

    • 提供精准计时功能

  • 数据记录仪与工业控制

    • 时间戳、日志记录

  • 汽车电子

    • 行车记录仪、车载娱乐系统计时

软件说明

  • 工程基于 Edgi-Talk 平台开发。

  • 示例功能包括:

    • RTC 设备初始化

    • 日期和时间设置

    • 延时获取当前时间并打印

    • 将 RTC 操作导出为 msh 命令 rtc_sample

  • 工程结构清晰,便于理解 RTC 驱动在 M33 核 上的运行方式。

使用方法

编译与下载

  1. 打开工程并完成编译。

  2. 使用 板载下载器 (DAP) 将开发板的 USB 接口连接至 PC。

  3. 通过编程工具将生成的固件烧录至开发板。

运行效果

  • 烧录完成后,开发板上电即可运行示例工程。

  • 用户需在串口命令行手动输入:

rtc_sample
  • 系统会依次执行以下操作:

    1. 初始化 RTC 设备

    2. 设置日期为 2025-07-01

    3. 设置时间为 23:59:50

    4. 打印当前时间

    5. 延时 3 秒

    6. 再次打印当前时间

  • 示例输出:

Tue Jul  1 23:59:50 2025
Tue Jul  1 23:59:53 2025

注意事项

  • 请确保 RTC 设备已正确连接并可被系统识别。

  • 如需修改工程的 图形化配置,请使用以下工具打开配置文件:

tools/device-configurator/device-configurator.exe
libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/design.modus
  • 修改完成后保存配置,并重新生成代码。

启动流程

系统启动顺序如下:

+------------------+
|   Secure M33     |
|   (安全内核启动) |
+------------------+
          |
          v
+------------------+
|       M33        |
|   (非安全核启动) |
+------------------+
          |
          v
+-------------------+
|       M55         |
|  (应用处理器启动) |
+-------------------+

⚠️ 请严格按照以上顺序烧写固件,否则系统可能无法正常运行。


  • 若示例工程无法正常运行,建议先编译并烧录 Edgi_Talk_M33_Blink_LED 工程,确保初始化与核心启动流程正常,再运行本示例。

  • 若要开启 M55,需要在 M33 工程 中打开配置:

RT-Thread Settings --> 硬件 --> select SOC Multi Core Mode --> Enable CM55 Core