RTC 不工作

RTC 不工作

我有一个嵌入式板(纳米派R5C)带有 RTC 电池连接器:

在此输入图像描述

黑板上很明显哪一个是正的,哪一个是负的。此外,检查文档:

RTC 备份电流为 0.25μA TYP(VDD =3.0V,TA =25℃)。

连接器部件号:Molex 53398-0271

我已将 CR1616 电池以正确的极性连接到此插座上。

检查启动日志时,RTC 似乎正在初始化,但日期不正确(2017 年):

$ dmesg | grep rtc
[    2.979031] rockchip-drm display-subsystem: [drm] Cannot find any crtc or sizes
[    2.979143] rockchip-drm display-subsystem: [drm] Cannot find any crtc or sizes
[    3.198765] rk808-rtc rk808-rtc: registered as rtc0
[    3.199273] rk808-rtc rk808-rtc: setting system clock to 2017-08-04T09:00:03 UTC (1501837203)
[    6.011447] rtc-hym8563 5-0051: rtc information is valid
[    6.018302] rtc-hym8563 5-0051: registered as rtc1

Timedatectl 还报告不正确的 RTC 日期:

$ timedatectl status
               Local time: Sun 2023-07-09 22:52:41 CEST
           Universal time: Sun 2023-07-09 20:52:41 UTC
                 RTC time: Fri 2017-08-04 09:07:44
                Time zone: Europe/**** (CEST, +0200)
System clock synchronized: no
              NTP service: n/a
          RTC in local TZ: no

有时我看到“系统时钟同步”显示为“是”,但是切换电源后,RTC 会丢失其值并重置为 2017 年日期。

该 RTC 连接器上的电压为 2.96V。

我还可以检查和修复什么?

答案1

“系统时钟同步”意味着系统时钟(即“通用时间”输出线timedatectl status)正在与某个外部时间源同步。它可能对 RTC 没有任何影响。

(在 PC 硬件上,“系统时钟同步”似乎意味着内核的“11 分钟模式”处于活动状态,导致 RTC 与系统时钟同步,但在 RTC 所在的硬件架构上,情况可能并非如此。可选,比如这个NanoPi。)

RTC 时钟是分离从系统时钟:您可能应该运行timedatectl set-local-rtc 0hwclock --systohc --utc将系统时钟时间(作为 UTC)复制到 RTC。

答案2

(答案从问题中移走)

主要问题是系统使用的rtc0默认 RTC 没有电池备份。我设法rtc使用 udev 规则获得默认值,但是系统仍然工作得很奇怪:

# timedatectl 
               Local time: Mon 2023-07-10 00:04:13 CEST
           Universal time: Sun 2023-07-09 22:04:13 UTC
                 RTC time: Mon 2023-07-10 07:37:16
                Time zone: Europe/*** (CEST, +0200)
System clock synchronized: no
              NTP service: active
          RTC in local TZ: no

如您所见,现在 RTC 正常(这是 rtc1),但本地时间仅与日期同步!所以看来本地时间是从 RTC 获取的日期(路由器中不允许访问互联网),但时间尚未设置!总是从 00:00 开始。我可以以某种方式从 rtc 启用时间同步吗?

相关内容