Edit online

RTC 配置

5 Dec 2024
Read time: 3 minute(s)

打开 RTC 驱动

  1. Luban-Lite 根目录下执行 scons --menuconfig,进入 menuconfig 的功能配置界面。
    scons --menuconfig
  2. 在菜单中找到并选择 Board options后,勾选 Using RTC 选项,即可启用 RTC 驱动。
    Board options  --->
        [*] Using RTC
    注:

    为了简化使用,Using RTC 会自动打开 RT-Thread 的 RTC 设备驱动框架。

  3. 根据实际需求调整 RTC 参数。如不需要,可跳过此步。

    勾选了 Using RTC 的情况下,可以看到 RTC parameter,默认值是 (3276800) The actual rate of 32K clock,可根据实际需求配置。

    Board options  --->
        [*] Using RTC
            RTC parameter  --->
                (3276800) The actual rate of 32K clock
                [ ] Enable the alarm IO output
                [ ] Enable the 32K clock output

    如果不需要启用 Alarm IO 输出和 32K 时钟输出,保持这两个选项未选中即可。

  4. 选择 RT-Thread 组件,启用 RTC 设备驱动和 Alarm。

    在菜单中找到并选择 Rt-Thread options,勾选 Using RTC device driversUsing RTC alarm

    当使用 RT-Thread 内核的时候,RTC 驱动需要依赖 RT-Thread 的 RTC 设备驱动框架和 alarm 框架。
    Rt-Thread options  --->
        RT-Thread Components  --->
            Device Drivers  --->
                [*]  Using RTC device drivers
                [*]     Using RTC alarm

配置 RTC 自定义参数

RTC 驱动在 menuconfig 中提供了一些扩展参数,方便用户根据板级硬件设计来进行调整。如下表:

1. RTC 自定义参数
参数名称 适用版本 类型 取值范围 功能说明
AIC_RTC_CLK_RATE V1.0 正整数 3276800±3196 时钟源的实测频率值 * 100,用于时钟校准
AIC_RTC_ALARM_IO_OUTPUT V1.0 boolean 1 - 是,0 - 否 是否使能 Alarm 的 IO 输出功能
AIC_RTC_32K_IO_OUTPUT V1.0 boolean 1 - 是,0 - 否 是否使能 32K 时钟输出功能
  1. AIC_RTC_CLK_RATE 取时钟源频率值的 100 倍,是为了提高校准的精度,校准可以精确到 0.03Hz。

  2. 参数 aic,alarm-io-outputaic,32k-io-output 共用一个 IO 输出,所以只能二选一。

配置时区

在 RT-Thread 组件中提供了时区管理功能,Luban-Lite SDK 中默认配置时区为中国的 +8 时区。按照下列流程,可以配置和管理时钟:
  1. Luban-Lite 根目录下执行 scons --menuconfig,进入 menuconfig 的功能配置界面:
    Rt-Thread options  --->
        RT-Thread Components  --->
            C/C++ and POSIX layer  --->
                (8) Set the default time zone (UTC+)
  2. 执行 Shell 命令 date,查看输出信息,判断是否有时区配置。

    如果系统输出中含有 UTC+8 字样,表示已经配置了 +8 时区,示例如下:
    aic /> date
    local time: Sat May 2011:22:05 2023
    timestamps: 1684552925
    timezone: UTC+8
    此时,RTC 控制器中的时间信息和 date 时间存在一个时区差。 关系如下:
    系统时间 = RTC 时间 + 时区