◎ ±2.5ppm(@-40〜+85℃)の高精度温度補償タイプのRTCモジュール『RV-3032-C7』を搭載したボードです。
◎ 0.16〜0.23μATyp. (@+25℃/@+3.0V)の低消費電流で時刻をバックアップ。
◎ 0.0625℃の分解能の温度センサ機能を搭載。上下限の温度閾値を設定して温度アラーム割込み信号発生、
及びアラーム発生時のタイムスタンプを残すことが出来ます。
◎ 後付けでSMDの全個体電池 (セラチャージTM)を実装できるランドパターンを設けています(写真右)。
(※Raspberry Pi にヒートシンク・ファンを取り付けていると構造的に干渉する場合がありますのでご注意下さい)
@バックアップバッテリ(リチウム一次電池)を装填します。
A 1Hzのオフセット設定を行うため以下の設定にします。
sudo i2cset -y 1 0x51 0xC0 0x20 ---- CLKOUTを『オン』に
sudo i2cset -y 1 0x51 0xC3 0x60 ---- CLKOUTを『1Hz』に設定
B 上記設定にて1Hzの周波数偏差を測定し、測定値に従ってオフセット設定値を書き込みます。
(オフセットの例)
・測定値が1.000000476Hz(+0.476ppm)だった場合
sudo i2cset -y 1 0x51 0xC1 0x02 ---- 『+2』の補正
・測定値が 0.999999524Hz(-0.476ppm)だった場合
sudo i2cset -y 1 0x51 0xC1 0x3E ---- 『-2』の補正
※オフセット感度は若干の個体差があります。
〜(参考)〜 オフセット設定を行わない場合は以下からが通常の設定になります 〜〜〜
C 通常の一次電池での電源バックアップの設定をします。
sudo i2cset -y 1 0x51 0xC0 0x60 ---- CLKOUTを『オフ※1』、電源切替を『オン』(レベル切替 ※2)、
トリクルチャージを『オフ※3』
D ミラーRAM→EEPROMへの書込みを行います(※4)
sudo i2cset -y 1 0x51 0x3F 0x00 (最初に3Fhに"00"を書き込む)
sudo i2cset -y 1 0x52 0x3F 0x11 ---- ミラーRAM→EEPROMへの書込み
sudo i2cset -y 1 0x51 0x3F 0x00 (3Fhを"00"に戻しておきます)
E sudo i2cset-y 1 0x51 0x0D 0x00 ---- 0x0Dのフラグを全てクリア
★上記の設定後にRTCをラズパイのHWCLOCK 設定にし『sudo hwclock -w』コマンドでNTP時刻を書き込みます。
(NTP時刻なので日本時間−09:00の時差がありますが、ラズパイなどの場合はタイムゾーンを日本とすると時差は補正されて時刻表示します)
<注釈>
※1 --- CLKOUTは『オフ』に設定していなくてもバックアップモード時は自動でオフに切り替わります。
レジスタでオフに設定していた方が若干(〜10nA程度)消費電流が少なくなるため一応設定しています。
※2 --- 電源切替えはバックアップ電源が一次電池の場合は『レベル切替』、二次電池の場合は『ダイレクト切替』を選択します。
※3 --- トリクルチャージはバックアップ電源が一次電池の場合は『オフ』、二次電池の場合は『オン』に設定します。オンの場合はチャージ電圧の設定をTCMビット(C0h/bit1:0) で設定します。
※4 --- 書き込みの時間が0時近い場合には『0x17』として念のためEERDビット(オートリフレッシュ)をオフにする必要があります。
・『 SCL / SDA端子』は 基板上で Vddへプルアップされています(10kΩ)。
・『 INT端子』は 基板上で Vbackupへプルアップされています(10kΩ)。
・『EVI端子』はデフォルトでは 0Ωで GNDに短絡しています(外部イベント入力を使わない設定)。
この端子を使用する場合は短絡抵抗を外して未実装部分にプルアップ抵抗(10kΩ)を実装して下さい。
*実際のアプリケーションでもこの端子は決してオープンにはしないで下さい。
・ 角ピンソケットの #4端子は NCです(内部接続無し)。
・ 基板上面の空きランドにはSMDの『全個体電池』や『電気二重層コンデンサ』をバックアップ電源
として実装出来ます。その際には基板裏面のリチウム一次電池は取り外してご使用ください。
(レジスタの設定で『トリクルチャージをオン』/電源切替を『ダイレクト切替え』へ変更します)
RV3032-Raspi基板の上面の写真部分(右側のオレンジの枠の部分)にはんだ付け実装します。
※ セラチャージTM の使用環境が 『-20〜+80℃/相対湿度60%以下』 のため、
実装後に防湿コーティングを行って下さい。
※必ず裏面のリチウム一次電池は取り外してください。
※電池取り外し後、バックアップ電源の設定とトリクルチャージの設定を行います。
C0hレジスタに 『0x2D』と書き込んだあとで 3Fhレジスタに『0x11』と書き込みます。
(バックアップ電源切替え+トリクルチャージの設定と EEPROMへの書き込み設定)。
※ アプリケーションマニュアルの回路接続例 (143/155ページ )もご参照下さい。
セラチャージTM をはんだ実装後に防湿コーティング剤を塗布します。
コーティング剤の乾燥後にラズパイに接続するとチャージが始まります。
初回起動時に時刻の書き込み設定を行う必要があります。
ラズパイの電源がオフになると自動でバックアップ電源に切り替わり、時刻を保持します。
二次電源を使用される場合にINT端子をVbackup側にプルアップしているとバックアップ電源の電圧低下時にINT端子の電位が不定になってしまいます。
バックアップ電源動作時には割り込み信号を使用されない場合はINT端子をVdd側にプルアップ接続して下さい。
このボードではデフォルトでINT端子は Vbackup にプルアップされていますので、バックアップ電源に二次電池を使用する場合でかつINT割り込み信号を使用される場合にはプルアップ抵抗を取り外して外部でVdd側へプルアップする必要があります。割り込み信号を使用されない場合には INT端子をオープンのままにしていれば問題ありません。
※ラズパイのOSにドライバは組み込まれているため(※)リナックスドライバのビルドは不要です。
(※Raspberry Pi 4 の場合。Raspberry Pi 5 の場合はデフォルトで内蔵のRTCが HWCLOCK として適用されます)
@ RaspberryPI* の I2C通信を『有効』にします
A 『sudo pcmanfm』 のコマンドを実行します
(設定ファイルを編集するため管理者権限でファイルマネージャを開きます)
B ≪RaspberryPI 4 の場合≫
★ラズパイの設定ファイル 『 /boot/config.txt 』に以下の『1行』の記述を追加し保存する
『 dtoverlay=i2c-rtc,rv3032 』
≪RaspberryPI 5 の場合≫
★ラズパイの設定ファイル 『 /boot/firmware/config.txt 』に以下の『2行』の記述を追加し保存する
『 dtparam=rtc=off 』※ラズパイ内蔵のRTCをオフにします。
『 dtoverlay=i2c-rtc,rv3032 』
C OSを再起動します
D 再起動後『sudo i2cdetect -y 1』のコマンド (I2Cの接続確認)にて 0x51アドレスに
"UU"の表示が出ていれば HWCLOCK に設定されています。
( 『sudo hwclock -r 』でRTC内部の時刻情報が返って来る様になります )
★ 動作確認した RaspberryPI* のバージョン等の情報
ハードウェア | RaspberryPi 4B |
OS / Kernel | OSバージョン = Devian 11.7/ Kernelバージョン = 6.1.21-V8+ (最終確認 2023/11/12) |
ハードウェア | RaspberryPi 5 |
OS / Kernel | OSバージョン = Devian 12.6/ Kernelバージョン = 6.6.31+rpt-rpi-2712 (最終確認 2024/08/05) |
(1) ラズパイ(OS) の時刻(ネットワーク時刻など)を RV-3032-C7 に書き込む
sudo hwclock -w
(注)初回の書き込み時に PORFフラグ/VLFフラグ (0Dh:1〜0bit) がクリアされて、時刻の読み出しが出来るようになります。
(2)RV-3032-C7 に設定されている時刻を読み出す
sudo hwclock -r
(注)時刻書込み後にVdd及びVbackupの両方の電圧降下があるとPORFフラグが立ち、その状態で時刻を読み込むとエラーになります。その場合は再度時刻を書き込むとPORFフラグがクリアされて時刻が読み込めるようになります。
(3) RV-3032-C7 (HWCLOCK)の保持時刻をラズパイ(OS)の時刻に設定する
sudo hwclock -s
(4)RV-3028-C7 を ラズパイ(OS) の HWCLOCK の設定から外す
( sudo i2c コマンドで直接レジスタを 読込み/書込み 出来るように戻す場合 )
sudo rmmod rtc-rv3032
以下 、I2Cモードでの設定のコマンドです
(5) RV-3032-C7 の CLK出力を オンにする
sudo i2cset -y 1 0x51 0xC0 0x20
(6) RV-3032-C7 の CLK出力を 1Hz に変更する
sudo i2cset -y 1 0x51 0xC3 0x60
(6) RV-3032-C7 の CLK出力を デフォルトの32.768kHzに変更する
sudo i2cset -y 1 0x51 0xC3 0x00
(7) 1Hzの精度をカウンタで測定して、オフセット値を設定する
※出荷時には電池装着後に既に個別にオフセット設定してあります。
+0.952ppm ....sudo i2cset -y 1 0x51 0xC1 0x04
+0.714ppm ....sudo i2cset -y 1 0x51 0xC1 0x03
+0.477ppm ....sudo i2cset -y 1 0x51 0xC1 0x02
+0.238ppm ....sudo i2cset -y 1 0x51 0xC1 0x01
0.000ppm ....sudo i2cset -y 1 0x51 0xC1 0x00
-0.238ppm ....sudo i2cset -y 1 0x51 0xC1 0x3F
-0.477ppm ....sudo i2cset -y 1 0x51 0xC1 0x3E
-0.714ppm ....sudo i2cset -y 1 0x51 0xC1 0x3D
-0.952ppm ....sudo i2cset -y 1 0x51 0xC1 0x3C
-1.190ppm ....sudo i2cset -y 1 0x51 0xC1 0x3B
-1.428ppm ....sudo i2cset -y 1 0x51 0xC1 0x3A
-1.666ppm ....sudo i2cset -y 1 0x32 0x2c 0x39
-1.904ppm ....sudo i2cset -y 1 0x32 0x2c 0x38
-2.142ppm ....sudo i2cset -y 1 0x32 0x2c 0x37
-2.380ppm ....sudo i2cset -y 1 0x32 0x2c 0x36
-2.618ppm ....sudo i2cset -y 1 0x32 0x2c 0x35
オフセットの分解能は 『 0.238ppm 』 です。
マイナスの場合はマイナスに設定します。
例えば 1Hzの測定値が 『0.999999750Hz』 (-0.25ppm) だった場合は、
sudo i2cset -y 1 0x51 0xC1 0x3F
と設定すると 『1.000000Hz』 ちょうどに近い値に設定されます。
オフセット分解能は若干の個体差があります。
(このオフセットレジスタへは ミラーRAMを伴うEEPROMレジスタのため、
EECMDレジスタに"11h"と書き込むことで EEPROMに設定値が保存されます)
(8) HF(High Frequency モード:8.192kHz〜67.108864MHz)のクロック出力を使う
HFモードでは『8.192kHz』の『13ビット倍数分』(8192倍)までの出力を設定することが出来ます。
(C3h/7bitのOSビットで "1" HFモードを選択します)
(RV-3032-C7のアプリケーションマニュアル 47〜48ページ/149ページ中 をご参照下さい)
sudo i2cset -y 1 0x51 0xC0 0x20(RV-3032-C7のクロック出力をオンに)
↓
sudo i2cset -y 1 0x51 0xC2 0x00 0x80 i ....... 8.192kHz (8.192kHz×1)を出力
sudo i2cset -y 1 0x51 0xC2 0x00 0x81 i ....... 16.384kHz (8.192kHz×2)を出力
sudo i2cset -y 1 0x51 0xC2 0x00 0x82 i ....... 24.576kHz (8.192kHz×3)を出力
・
・
sudo i2cset -y 1 0x51 0xC2 0xFF 0xFE i ....... 67.100672MHz (8.192kHz×8191)を出力
sudo i2cset -y 1 0x51 0xC2 0xFF 0xFF i ....... 67.108864Hz (8.192kHz×8192)を出力
※その他のタイマやアラーム、タイムスタンプなどの機能を使う場合には 同様に I2Cモードでの設定が必要です。
------------------------------------------------------------------------------
*Raspberry PI は、RaspberryPI 財団の登録商標です。
※こちらの記事内容の作成及び 上記基板の提供等についてRaspberry PI財団 は一切関与はしておりません。
------------------------------------------------------------------------------