RTC 配置
5 Dec 2024
Read time: 3 minute(s)
打开 RTC 驱动
- 在 Luban-Lite 根目录下执行 scons --menuconfig,进入
menuconfig
的功能配置界面。
scons --menuconfig
- 在菜单中找到并选择
Board options
后,勾选 Using RTC 选项,即可启用 RTC 驱动。Board options ---> [*] Using RTC
注:为了简化使用,Using RTC 会自动打开 RT-Thread 的 RTC 设备驱动框架。
- 根据实际需求调整 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 时钟输出,保持这两个选项未选中即可。 - 选择 RT-Thread 组件,启用 RTC 设备驱动和 Alarm。
在菜单中找到并选择
Rt-Thread options
,勾选 Using RTC device drivers 和 Using 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 中提供了一些扩展参数,方便用户根据板级硬件设计来进行调整。如下表:
参数名称 | 适用版本 | 类型 | 取值范围 | 功能说明 |
---|---|---|---|---|
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 时钟输出功能 |
-
AIC_RTC_CLK_RATE
取时钟源频率值的 100 倍,是为了提高校准的精度,校准可以精确到 0.03Hz。 -
参数
aic,alarm-io-output
和aic,32k-io-output
共用一个 IO 输出,所以只能二选一。
配置时区
在 RT-Thread 组件中提供了时区管理功能,Luban-Lite SDK 中默认配置时区为中国的 +8 时区。按照下列流程,可以配置和管理时钟:
-
在 Luban-Lite 根目录下执行 scons --menuconfig,进入 menuconfig 的功能配置界面:
Rt-Thread options ---> RT-Thread Components ---> C/C++ and POSIX layer ---> (8) Set the default time zone (UTC+)
-
执行 Shell 命令
date
,查看输出信息,判断是否有时区配置。如果系统输出中含有UTC+8
字样,表示已经配置了 +8 时区,示例如下:aic /> date local time: Sat May 2011:22:05 2023 timestamps: 1684552925 timezone: UTC+8
此时,RTC 控制器中的时间信息和date
时间存在一个时区差。 关系如下:系统时间 = RTC 时间 + 时区