Raspberry PiでDS3231 RTCを正しく動かす

技術メモ

**** RaspberryPiでDS3231 RTCを正しく動かすために行なったことのまとめ ****
●ネタ元
Adding a DS3231 Real Time Clock to the Raspberry Pi 3 | trick77.com
https://trick77.com/adding-ds3231-real-time-clock-raspberry-pi-3/

●config.txt 追加した
dtoverlay=i2c-rtc,ds3231

●install/purgeしたpackage
apt-get purge fake-hwclock
apt-get purge ntp
apt-get install ntpdate 既にinstall済みだった

●/etc/default/hwclock 編集した
HWCLOCKACCESS=no

●crontab root
RTC絡みでntpdを外したので、rootのcrontabで12Hごとにntpdateするように変更

# m h  dom mon dow   command
0 0,12 * * * ntpdate ntp.nict.jp && hwclock -w

●/etc/rc.local
起動時にRTCから時刻を読み込んでシステム時刻を設定します。
それからntpdateするようにしています。LAN接続が無くても悪影響はしないようです。

hwclock -s # RTCからシステム時計をセット
sleep 20 # DHCPからIPを得るのを待つ
ntpdate ntp.nict.jp && hwclock -w # ntpサーバーでシステム時計をセットする。成功した時だけRTCに時刻セットする
exit 0

当社が製作したDS3231が載っている基板については、下記ページをご覧下さい。
回路図もあります。
PiPulseBoard · ntaka206/pipulse2016 Wiki
https://github.com/ntaka206/pipulse2016/wiki/PiPulseBoard