<RV-3028-C7> 超低消費電流RTCモジュール搭載
・バックアップ一次電池搭載・時刻書き込み済みで出荷

 

◎ 電源自動切り替え機能/タイムスタンプ機能付き/常温偏差:±1.0ppm以内(メーカー出荷時)の
 RTCモジュール『 RV-3028-C7 』を搭載したテストボードです。
消費電流: 95nA〜115nA Typ(+3.0V@+25℃)の超低消費電流で時刻保持します。
◎ このボードのピンアサインは RaspberryPI に合わせてあります。
 RV-3028-C7 のリナックスドライバは RaspberryPI のOSに組み込まれていますので
  簡単な設定のみ で RaspberryPI の外付けのHWCLOCKとしてもお使い頂けます。
◎ 後付けで小型SMDの電気二重層コンデンサを実装できるランドを設けています(写真右)。
◎ RV-3028-C7 を用いたアプリケーションの開発時のご参考用としてご活用頂けます。

 

このボードの出荷時の設定 ↓

回路接続図 ↓  ・・> バックアップ電源に電気二重層コンデンサを用いる例

ラズパイへの設定 ↓

コマンドリファレンス ↓

(1) 生産時に電池を搭載し電源切替設定と時刻書き込み済みです

I2Cモードでの書込み/Raspberry PI*のターミナル画面で設定

@ sudo i2cset -y 1 0x52 0x0E 0x00---- PORFフラグ をクリア

 

A sudo i2cget-y 1 0x52 0x37 ---- 0x37のレジスタを読込み

 ("0x90" の場合)sudo i2cset -y 1 0x52 0x37 0x9C

 ("0x10" の場合) sudo i2cset -y 1 0x52 0x37 0x1C

        -------- バックアップ電源切替えを有効に設定/トリクルチャージは一次電池なのでオフのままとします

 

B sudo i2cset -y 1 0x52 0x27 0x00 (最初に27hに"00"を書き込む)

  sudo i2cset -y 1 0x52 0x27 0x11 ---- ミラーRAM→EEPROMへの書込み

 『RV3028-Raspi 』を Raspberry PI*のHWCLOCLKに設定した後の書込み

C  sudo hwclock-w ---- NTP時刻を RV-3028-C7 に書込み

※バックアップに一次電池を使用する場合の基本的な設定を行っています。

@  起動直後、『PORF』のクリア

・リナックスドライバで運用する場合は、このフラグは時刻書き込み動作 (sudo hwclock -w)を行った際にドライバの動作でクリアされます。このフラフがクリアされていない状態で『sudo hwclock -w 』の時刻読み込みを行うとエラーになります。

・RV-3028-C7を用いたマイコン制御のアプリケーションの場合には必ず最初にこのフラグをクリアして下さい。

 

A  EEPOMレジスタ操作の準備、 オートリフレッシュをオフに (EERDビット)

・以下のDで『ミラーRAM』→『EEPROM』への書込みを行う際に、万一、オートリフレッシュが実行されているとエラーになってしまうため、一旦オートリフレッシュ機能を『オフ』にしておきます。

・オートリフレッシュは日付の変わり目(午前零時)に自動で実施されます。そのため全く違う時間に操作する場合にはオフにする必要はありません。

(オートリフレッシュ機能については RV-3028-C7マニュアル 54/116ページをご参照下さい。

 

B バックアップ電源切替えの設定(レベル切替モードへ設定)

RV-3028-C7 はデフォルトでは バックアップ電源切り替え機能 が『オフ』になっているため『レベル切替モード』の電源切り替え機能を『オン』に設定します。

・バックアップ電源切り替え機能には『レベル切替モード』と『ダイレクト切替モード』があります。

 バックアップ電源に一次電池を使用している場合は『レベル切替モード』に設定します。

 電気二重層コンデンサなど充電電源を使用している場合は『ダイレクト切替モード』に設定します。

 

C CLKOUTをオフに設定

・消費電流を抑えるため CLKOUTの出力をオフ にします。

 無負荷の状態でもCLKOUTをオフにすることで 約0.5μAの電流の低減 になります。

 

D EEPROMへの書込み動作 (★重要★)

・EEPROMレジスタへ書き込みした場合はミラーRAMに書き込まれ、EEPROMの値は変わっていないため、上記@Aの設定値(ミラーRAMレジスタの値)をEEPROMに書き込む動作を行います。

・この書き込みを行っていないと一日一回自動で実行されるオートリフレッシュの際に設定が元に戻ってしまい電源切替が『オフ』に戻ってしまうため必ず実行する必要があります。

・この書き込みにより電源断でパワーオンリセットが発生した場合でも設定値が残ります。

 

E オートリフレッシュ機能を『オン』に戻す設定

・上記DのEEPROMへの書込み動作が終了後にオートリフレッシュ機能を『オン』(デフォルト)に戻します。

 

F 時刻情報の書込み

RV-3028-C7 をHWCLOCK に設定し、Raspberry PI* がインターネットに接続されている状態でRaspberry PI*の時刻情報を RV-3028-C7 に書き込みます。

 『sudo hwclock -w 』と送信して書き込みすると、時刻はUTC時刻=日本時間+9時間 にて書き込まれます。

 ラズパイの場合はタイムゾーンの設定が日本になっていれば日本の時刻を表示します。

 

(2) 回路接続図

(RV3028-Raspi基板の接続回路図)

◆バックアップ一次リチウム電池 (CR1025)は出荷時に搭載済みです。
  → バックアップ電池の持ち時間について
◆EVI端子は消費電流を抑えるために0Ω短絡抵抗でGNDに接続しています。外部イベント入力をご使用になる場合はこの短絡抵抗を外して未実装ランド部分にプルアップの10kΩ抵抗(1005サイズ)をはんだ付けして下さい。
  → 外部イベント入力・タイムスタンプ機能について
◆INT端子(割り込み信号出力端子)はこの基板ではVDDにプルアップされていますが、実際に RV-3028-C7 を用いた機器の基板設計の際には バックアップ電源側にプルアップすることを推奨します。それによりバックアップモード時も割り込み信号を出力できるようになります。

バックアップ電源に二次電池/電気二重層コンデンサを用いる場合

(チップ3225サイズの電気二重層コンデンサ(矢印部)を取り付けた例)
 (1) 裏面のリチウム一次電池は取り外します
 (2) (矢印部・左側)1.8kΩの保護抵抗は0Ω(短絡)へ付け替えます
 (3) (矢印部・右側)へ3225サイズの電気二重層コンデンサを取り付けます
 (4)レジスタ設定を以下に変更します。
  ・レベル電源切替→ダイレクト電源切替
  ・トリクルチャージをオンへ

 

<RV-3028-C7 での電気二重層コンデンサのバックアップ持ち時間の実測例>
(3225チップ・11mF/室温環境/3.3Vdd/トリクルチャージ抵抗:3kΩ)
(クリックで拡大)
( RV-3028-C7の時刻保持最低電圧 ≧1.1V )

 

→ RV-3028-C7 で電気二重層コンデンサを用いる場合の回路接続例

 

(3) ラズパイ で HWCLOCKに設定する方法

※ 設定方法は以下の2通りがあります。『 /boot/config.txt』に設定を記述する方法が簡単です。
(最新のRaspberryPIのOS(ラズビアン)ではリナックスドライバの組み込みは不要です)

@ RaspberryPI* の I2C通信を『有効』にします

A 『sudo pcmanfm』 のコマンドを実行(管理者権限でファイルマネージャを開く)

B ラズパイの設定ファイル 『 /boot/config.txt』に以下の記述を追加し保存する

   『 dtoverlay=i2c-rtc,rv3028

C ラズパイを再起動します

D 再起動後『sudo i2cdetect -y 1』のコマンド(I2Cの接続確認)にて 0x52アドレスに"UU"の表示が出ていれば HWCLOCK に設定されています。

    ( 『sudo hwclock -r 』でRTC内部の時刻情報が返ってきます )

@ RaspberryPI* の I2C通信を『有効』にします

A 『modprobe rtc-rv3028』とコマンドを実行

B 『sudo bash

  echo rv3028 0x52 > /sys/class/i2c-adapter/i2c-1/new_device

 とコマンドを実行

C Bのあと『sudo i2cdetect -y 1』のコマンド(I2Cの接続確認)にて 0x52アドレスに

  "UU"の表示が出ていれば HWCLOCK に設定されています。

   ( 『sudo hwclock -r 』でRTC内部の時刻情報が返ってきます )

 もし表示が  "52" と出ている場合は、再度ABのコマンドを実行してください。

 

※この都度設定を行う方法では、電源オフして再起動した際に再度同じ設定を行う必要があります。

★ 動作確認した RaspberryPI* のバージョン等の情報
 ハードウェア  RaspberryPi 3B
 OS / Kernel  OSバージョン = Devian 11.7/ Kernelバージョン = 6.1.21-V7+ (最終確認 2023/6/5)
ハードウェア RaspberryPi 4B
OS / Kernel OSバージョン = Devian 11.7/ Kernelバージョン = 6.1.21-V8+ (最終確認 2023/11/12)

 

 

(4) 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

 

※その他のタイマやアラーム、タイムスタンプなどの機能を使う場合には 同様に I2Cモードでの設定が必要です。

 

------------------------------------------------------------------------------
*Raspberry PI は、RaspberryPI 財団の登録商標です。
※こちらの記事内容の作成及び 上記基板の提供等についてRaspberry PI財団 は一切関与はしておりません。
------------------------------------------------------------------------------