Zero/dev/RTC module ds3231
Radxa Zero > Development > RTC module ds3231
Contents
enable i2c overlay
use rsetup to enable I2C_EE-M3 if you don't know how to use rsetup, you can refer [here]
pin
zero ds3231 pin 3 sda pin 5 scl gnd gnd vcc vcc
then reboot your Radxa Zero
checkout device
- make sure that i2c_ee-m3 was enabled
root@radxa-zero:/home/radxa# ls /dev/i2c-* /dev/i2c-3 /dev/i2c-5
- check the i2c address of the RTC module
root@radxa-zero:/home/radxa# i2cdetect -r -y 3 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- UU -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- 68 -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- --
add a new rtc device
- add a new rtc device
root@radxa-zero:/home/radxa# echo ds3231 0x68 | sudo tee /sys/class/i2c-adapter/i2c-3/new_device
- checkout the new rtc device
root@radxa-zero:/home/radxa# ls /dev/rtc* /dev/rtc /dev/rtc0 /dev/rtc1
read time from rtc module
root@radxa-zero:/home/radxa# hwclock -r -f /dev/rtc1 2000-01-01 00:01:40.083622+08:00
set time
root@radxa-zero:/home/radxa# apt-get install ntp -y root@radxa-zero:/home/radxa# sudo service ntp start or date -s "2023-05-09 15:16:35"
write time to rtc module
- write time to rtc module after you make sure the time of linux is right
root@radxa-zero:/home/radxa# hwclock -w -f /dev/rtc1
- then read the hardware RTC at the time to see if it is correct
root@radxa-zero:/home/radxa# hwclock -r -f /dev/rtc1 2023-05-09 15:18:45.390726+08:00
- to set the Linux system time to the hardware RTC time
hwclock -s -f /dev/rtc1
- use timedatectl to view all the time information
root@radxa-zero:/home/radxa# timedatectl Local time: Tue 2023-05-09 15:21:49 CST Universal time: Tue 2023-05-09 07:21:49 UTC RTC time: Thu 1970-01-01 00:04:27 Time zone: Asia/Shanghai (CST, +0800) System clock synchronized: no NTP service: n/a RTC in local TZ: yes Warning: The system is configured to read the RTC time in the local time zone. This mode cannot be fully supported. It will create various problems with time zone changes and daylight saving time adjustments. The RTC time is never updated, it relies on external facilities to maintain it. If at all possible, use RTC in UTC by calling 'timedatectl set-local-rtc 0'.
set automatic startup
root@radxa-zero:/home/radxa# touch /etc/rc.local root@radxa-zero:/home/radxa# chmod 777 /etc/rc.local root@radxa-zero:/home/radxa# cat /etc/rc.local #! /bin/bash echo ds3231 0x68 | sudo tee /sys/class/i2c-adapter/i2c-3/new_device sudo hwclock -s -f /dev/rtc1