さて、再開します。
まずはRTCを。
採用したのは、DS1307ZN。
参考にしたのはこちらのサイト
https://qiita.com/kioto/items/415787721b03bf47c961
・I2Cの有効化
$ sudo pico /boot/config.txt
以下の行をpi4の項目に追加
dtoverlay=i2c-rtc,ds1307
dtparam=i2c_arm=on
・fake-hwclockの削除
$ sudo apt-get -y remove fake-hwclock
$ sudo update-rc.d -f fake-hwclock remove
・I2Cドライバのロード
$ sudo su -
# modprobe i2c-bcm2835
# modprobe rtc-ds1307
# echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-1/new_device
# exit
・firmware/config.txtの修正
ないので、一回飛ばす。
Rasbianのバージョン違いの影響みたい。
・hwclockの設定を変更
$ sudo pico /lib/udev/hwclock-set
以下、コメントアウト
#if [ -e /run/systemd/system ] ; then
# exit 0
#fi
・再起動
以下、コマンドで読めてればOKっぽい。
$ sudo dmesg | grep rtc-ds1307
[ 26.476558] rtc-ds1307 1-0068: registered as rtc0
[ 26.479004] rtc-ds1307 1-0068: hctosys: unable to read the hardware clock
まだバックアップ電源入れていないのでエラー出てるかな?
その後、バックアップ電源を入れて、wifを殺し、pi電源を落とした。
しばらく放置して電源を入れたところ、時計あってた!
動いていそう。
$ sudo dmesg | grep rtc-ds1307
[ 6.196496] rtc-ds1307 1-0068: registered as rtc0
[ 6.200965] rtc-ds1307 1-0068: setting system clock to 2025-04-26T11:45:54 UTC (1745667954)
よしよし。
バックアップ時の電流は2mA程度。まあ、よかろうというか測定誤差な気がする。