跳到主要内容

RTC

本节介绍在树莓派上如何使用 RTC 功能,为后续项目开发奠定基础。

信息

若要使用完整 RTC 功能,请连接 RTC 电池

RTC 关键说明

  • 在树莓派中 RTC 设备为 /dev/rtc0
  • 在 RTC 设备有连接并且工作正常时,若树莓派在网络连接后自动网络对时,那么 RTC 时间会在自动网络对时后更新时间
  • 新版本默认没有 hwclock 安装相关指令,请安装相关工具
    sudo apt install -y util-linux-extra

RTC 操作

  • 以下使用 hwclock 工具进行测试

获取 RTC 时间

  • 若运行 hwclock 失败,查看 RTC 关键说明 执行安装指令
  • 查看 RTC 时间
    sudo hwclock -r
  • 读取指定 RTC 设备的时间 (-f:后跟选择的设备,/dev/rtc0:指定操作的 RTC 设备)
    sudo hwclock -f /dev/rtc0 -r

设置 RTC 时间

  • 若运行 hwclock 失败,查看 RTC 关键说明 执行安装指令
  • 设置 RTC 时钟时间:
    sudo hwclock --set --date="3/7/2024 16:55:05"

同步 RTC 时钟

  • 若运行 hwclock 失败,查看 RTC 关键说明 执行安装指令
  • 将 RTC 时间和当前系统时间同步(将 RTC 时间修改为当前系统时间)
    sudo hwclock -w
  • 将系统时间和当前 RTC 时间同步(将系统时间修改为当前 RTC 时间)
    sudo hwclock -s

定时关机

  • 使用 shutdown 命令让系统在指定时间后自动关机。
  • 注意
  • 10 分钟后关机
    sudo shutdown -h +10
  • 在 23:30 自动关机(注意,此操作前请确认当前时间是否正常,是否需要重新对时)
    sudo shutdown -h 23:30

定时开机-低功耗唤醒

注意

要实现此功能,必须连接 RTC 电池,以保证在外部掉电的情况下 RTC 仍能正常工作。

  • 进入 EEPROM 配置项
    sudo -E rpi-eeprom-config --edit
  • 在配置文件末尾添加以下内容,以启用定时唤醒功能
    POWER_OFF_ON_HALT=1
    WAKE_ON_GPIO=0
  • 修改完成后,重启树莓派使配置生效
    sudo reboot
  • 可以使用以下方法测试功能(效果:配置完成后,将系统关机,10 分钟后内部 RTC 将自动唤醒并重新启动设备。)
    • 设置从当前时刻开始 600 秒(10 分钟)后 唤醒
      echo +600 | sudo tee /sys/class/rtc/rtc0/wakealarm
    • 执行关机,等待到指定时间自动开机
      sudo halt  # 或者  sudo poweroff

RTC 电池充电

注意

仅在连接支持充电的 RTC 电池时才可执行此操作

  • 进入 config.txt 文件(根据你的系统版本选择对应路径)
    sudo nano /boot/config.txt            # 部分旧版本系统在这个路径
    sudo nano /boot/firmware/config.txt   # 新版系统基本都在这个路径
  • 在 config.txt 中添加充电配置(其中 3000000 表示最大电压,充电充到 3V 就会关闭充电,电压低于 3V 会启动涓流充电)
    dtparam=rtc_bbat_vchg=3000000