超低消費電流・超小型3215サイズ・水晶振動子内蔵 のRTCモジュール『RV3028-C7』 を搭載した評価ボードです。
※RaspberryPI の外付けRTCモジュ―ルとしてそのままご使用頂けます。
※RV3028-Raspi基板は」バックアップのリチウム一次電池 (CR1025) を搭載し時刻情報を設定した状態で出荷されます。
※バックアップ電池の期待保持期間は10年以上です。
◆バックアップ一次リチウム電池 (CR1025)は出荷時に搭載済みです。
→ バックアップ電池の持ち時間について
◆EVI端子は消費電流を抑えるために0Ω短絡抵抗でGNDに接続しています。外部イベント入力をご使用になる場合はこの短絡抵抗を外して未実装ランド部分にプルアップの10kΩ抵抗(1005サイズ)をはんだ付けして下さい。
→ 外部イベント入力・タイムスタンプ機能について
(チップ3225サイズの電気二重層コンデンサ(矢印部)を取り付けた例)
@裏面のリチウム一次電池は取り外します
A1.8kΩの保護抵抗は0Ω(短絡)へ付け替えます
B(矢印部)へ3225サイズの電気二重層コンデンサを取り付けます
Cレジスタ設定を以下に変更します。
・レベル電源切替→ダイレクト電源切替
・トリクルチャージをオンへ
<RV-3028-C7 での電気二重層コンデンサのバックアップ持ち時間の実測例>
(3225チップ・11mH/室温環境/3.3Vdd/トリクルチャージ抵抗:3kΩ)
( RV-3028-C7の時刻保持最低電圧 ≧1.1V )
こちらの RV3028-Raspi基板 は 出荷時、電池搭載後に以下の@ABCの設定を行っています。
(バックアップ電源切替えの有効化 及び CLKOUT出力をオフに設定 )
@ sudo i2cget-y 1 0x52 0x37 ---- 0x37のレジスタを読込み
("0x90" の場合)sudo i2cset -y 1 0x52 0x37 0x9C---- バックアップ電源切替えを有効に設定
("0x10" の場合) sudo i2cset -y 1 0x52 0x37 0x1C---- 〃
A sudo i2cget -y 1 0x52 0x35 0xC7 ---- クロック出力をオフに設定(消費電流の低減)
B sudo i2cset -y 1 0x52 0x27 0x11 ---- ミラーRAM→EEPROMへの書込み
C sudo hwclock-w ---- NTP時刻を RV-3028-C7 に書込み
@ バックアップ電源切替えの設定(レベル切替モードへ設定)
RV-3028-C7 はデフォルトでは バックアップ電源切替え機能 が『オフ』になっているため、『レベル切替モード』に設定します。バックアップ電源切替え機能には『レベル切替モード』と『ダイレクト切替モード』があります。バックアップ電源に一次電池を使用している場合は『レベル切替モード』に設定します。
・最初に0x37のレジスタの値を読み込む(0x37のBit:7 にオフセット値末尾が設定されているため)
sudo i2cget -y 1 0x52 0x37
・RV-3028-C7 の バックアップ電源切替機能 を有効にする
−『0x37』の返された値が 0X90 の場合は、sudo i2cset -y 1 0x52 0x37 0x9C と送信
−『0x37』の返された値が 0X10 の場合は、sudo i2cset -y 1 0x52 0x37 0x1C と送信
A CLKOUTをオフに設定
消費電流を抑えるため CLKOUTの出力をオフ にします。
無負荷の状態でもCLKOUTをオフにすることで 約0.5μAの電流の低減 になります。
・0x35レジスタへ値を書込み、クロック出力をオフにする
sudo i2cset -y 1 0x52 0x35 0xC7 と送信
B EEPROMへの書込み動作 (★重要★)
上記@Aの設定値(ミラーRAMレジスタの値)をEEPROMに書き込みます。
( ミラーRAMを備えたEEPROMレジスタについて )
・設定レジスタの『ミラーRAM』の値を →『EEPROM』へ書込み
sudo i2cset -y 1 0x52 0x27 0x11 と送信
(上記@Aの設定の後で送信します)
C 時刻情報の書込み
Raspberry PI* がインターネットに接続されている状態でRaspberry PI*の時刻情報を RV-3208-C7 に書き込みます。
・RV3028-Raspi をリナックスOS の HWCLOCK に設定した状態で
sudo hwclock -w と送信
(時刻はUTC時刻=日本時間+9時間 で書き込まれています)
※その他のタイマやアラーム、タイムスタンプなどの機能を使う場合にもI2Cモードでの設定が必要です。
※RV-3028-C7 のドライバファイルは RaspberryPI * のOSに組み込まれています。
( lib/modules/カーネルバージョン-v7+/kernel/drivers/rtc内にrtc-rv3028.ko ファイルがあります )
そのため以下のB〜Fは通常省けると考えられますが、上手くいかなかった場合には こちら よりリナックスドライバをダウンロードしてお試しください。なお最新版はmakeコマンド実施時にエラーが出る場合があったため古いバージョンのドライバファイルをアップしています。
RaspberryPI* へのドライバの組み込み方法は、こちらの RV8803-Raspi基板 の例 も参考にされて下さい。手順は同じで「型番」 と「デバイスアドレス」を読み替えます。
(RV-3028-C7 のデバイスアドレスは 『0x52』 になります)
@ RaspberryPI* のI2Cを有効化しておく
A raspberrypi-kernel-headers をインストールしておく
-----------------------------------------------------
(RV3028-Raspi+ラズパイ の場合は以下のB〜Fは通常は不要)
B リナックスドライバ をダウンロード
C /usr/src/ のディレクトリ内に "/linux" の作業用フォルダを作成
そこにドライバ元ファイル (rtc-rv3028.c) と Makefile ファイルをコピー
D 上記フォルダで make コマンドを実施
E Dで作成されたドライバファイル(rtc-rv3028.ko) を所定のディレクトリにコピー
F depmod コマンドを実施 → module.dep ファイルに反映されていることを確認
-----------------------------------------------------
G modprobe rtc-rv3028
sudo bash
echo rv3028 0x52 > /sys/class/i2c-adapter/i2c-1/new_device
sudo hwclock -s
のコマンドを送信
以上まで進んだ後で
sudo i2cdetect -y 1
のコマンドを実施して、0x52アドレス部分に "UU" の表示が出れば
正しくドライバが組み込まれていて HWCLOCK として動作しています。
(1) RV-3028-C7 を HWCLOCK に設定し、RV-3028-C7 の時刻をラズパイ(OS)に設定する
modprobe rtc-rv3028
sudo bash
echo rv3028 0x52 >
/sys/class/i2c-adapter/i2c-1/new_device
sudo hwclock -s
電池交換直後の場合は上記の書き込みをするとエラーが返ってきます。
これは初期状態では 『RV-3028-C7』の "電圧低下検出フラグ"が立っているため 『hwclock-s』(時刻読み込み)の際に時刻情報が "無効" と判断されるためです。電池交換後には、まずラズパイをネット環境に接続してインターネット時刻になっている状態で『hwclock-w』(時刻書き込み)を実行します。その際にリナックスドライバの動作で時刻情報の書き込みと同時に"電圧低下検出フラグ"がクリアされます。 その後は『hwclock-s』で時刻が読み込めるようになります。
(ご購入直後は既に時刻情報が書き込まれているためこのエラーは起きません)
(2) ラズパイ(OS) の時刻(ネットワーク時刻など)を RV-3028-C7 に書き込む
sudo hwclock -w
(注)初回の書き込み時に PORFフラグ (0Eh:0bit) がクリアされて、時刻の読み出しが出来るようになります。
(3)RV-3028-C7 に設定されている時刻を読み出す
sudo hwclock -r
(注)時刻書込み後にVdd及びVbackupの両方の電圧降下があるとPORFフラグが立ち、その状態で時刻を読み込むとエラーになります。その場合は再度時刻を書き込むとPORFフラグがクリアされて時刻が読み込めるようになります。
(4) RV-3028-C7 (HWCLOCK)の保持時刻をラズパイ(OS)の時刻に設定する
sudo hwclock -s
(5)RV-3028-C7 を ラズパイ(OS) の HWCLOCK の設定から外す
( sudo i2c コマンドで直接レジスタを 読込み/書込み 出来るように戻す場合 )
sudo rmmod rtc-rv3028
------------------------------------------------------------------------------
Raspberry PI は、RaspberryPI 財団の登録商標です。
※こちらの記事内容の作成及び 上記基板の提供等についてRaspberry PI財団 は一切関与はしておりません。
------------------------------------------------------------------------------