アクセス解析


リアルタイムクロック一覧 >RV-8803-C7 > RV-8803-C7 ラズパイ評価基板

■ 高精度リアルタイムクロック 評価基板 /
 RV8803-Raspi基板 
 
リアルタイムクロック RV-8803-C7ラズパイ基板 リアルタイムクロック RV-8803-C7ラズパイ基板  
電池搭載済み・時刻書込み済み・ オフセット設定済み・かつ高精度

 

 ★こちらのボードはマルツエレック様の通販サイトからご購入頂けます。
(個人ユーザー様・大学の方でもご購入いただけます)

★ RV-8803-C7の量産採用検討の前提で評価ボードサンプルご希望の際にはこちら までご連絡下さい。 (バックアップバッテリ付きで時刻情報書込み済みで出荷されます)
■搭載されている<RV-8803-C7>高精度リアルタイムクロックモジュールの詳細はこちらから

<ご使用方法について>

■ Linux ドライバのダウンロード 
■ 外形図及び回路接続図
■ ご使用上の注意
■ 端子接続、回路接続について
■ 出荷時の設定時刻について
■ Linuxドライバのインストール
■ 運用時、電圧低下発生時のフラグ
■ 設定コマンドについて

 RV8803 リナックスドライバのダウンロード

★RV-8803-C7 のリナックスドライバは こちら からダウンロード出来ます (Microcrystalのウェブサイトに移動します)。


(ダウンロードの際に免責事項への同意が必要になります。"I agree " の右のチェックボックスをクリックし、メールアドレスを入力し"Submit"をクリックします)



 RV8803-Raspi基板のハードウェア概要

※画像クリックで拡大します。

 ・図面及びピンアサイン ・回路図
 

 ご使用上の注意・端子接続など
ご使用時のご注意事項
静電気にご注意下さい RV-8803-C7 はCMOSのICを内蔵した素子です。静電気で故障する恐れがありますのでお取り扱い時には十分にご注意下さい。
逆接続にご注意下さい この基板には逆接続時の回路保護素子は入っておりませんので、誤って逆接続すると搭載されている RV-8803-C7 を故障させてしまうので、逆接続は決してしないようにご注意下さい。
リチウム電池ホルダへの電池挿入時にご注意下さい 底面のリチウム電池ホルダは、外側ホルダ部分が+電極になります。電池交換の際にはプラス・マイナスの方向にご注意下さい。
また電池ホルダはプラス電極が露出しています。外部で予期せぬ接触があると破損につながる恐れがありますので、お取り扱いにはご注意下さい。
リチウム電池の性能について 出荷時に新品の一次電池を搭載していますが、電池容量の保証はありません。
あくまで実験・評価用のものとお考え下さい。
評価基板の信頼性について この評価基板自体はあくまでテストツールとしてご利用下さい。
端子接続、回路等について 
RaspberryPai への接続  RaspberryPi のPin 1,3,5,7,9 へ角ピンソケットを差し込んで接続します
( ラズパイ側 #1=3.3Vdd #3=SDA #5=SCL #7=GPIO #9=GND の各端子。 #7はRV8803-Raspi基板はNCになっています )
SDA, SCL, INT端子について SDA, SCL, INT端子はそれぞれこの基板上で 10kΩでプルアップされています
CLK出力について
( E/D端子の扱い)
この基板ではデフォルトではCLK出力はオフになっています(消費電流を抑えるため)。
出力させる場合は E/Dピンと Vddピン をジャンパ接続して下さい。
ジャンパピン接続時はVdd-GND間が10kΩ抵抗で接続されますので、Vdd=+3.3Vの場合には0.33mAの電流が流れます。
Vdd =+3.3V での使用と
+5.0V での使用について
RaspberryPi 3B(または同様のピンアサインのもの)にて、+3.3Vddで使用される場合はそのまま角ピンソケットで接続してご使用頂けます。
+5.0Vddでの動作させたい場合は、回路図の右端の #1(3V3) と Vddピン間の抵抗(0Ω)を取り外して Vddピンに +5V印加して頂ければ+5V動作でご使用頂けます。
EVI端子について この基板ではデフォルトでEVI端子はGNDに短絡抵抗で接続しています(消費電流を抑えるため)。イベント入力を使用される場合にはこの短絡抵抗を取り外し、回路図での未実装の10kΩを接続すると使用出来ます。
出荷時設定時刻について 
出荷時設定時刻
(UTC時刻での設定)
出荷時の時刻設定は、ラズパイでhwclockの設定をした上で 『hwclock -w』のコマンドで設定しています。そのためRV8803-Raspi基板に設定されている時刻はUTC時刻になっています(日本との時差:9時間)。ラズパイでご使用になる場合はタイムゾーンの設定が日本(UTC+09:00)になっていると現在時刻を表示します。ラズパイ以外でご使用の場合は時間レジスタ(02hまたは13h)を+9時間で書き換えると現在時刻になります。


 RaspberryPi への RV-8803-C7ドライバのインストール

※ 以下実際に Rasbian を新規インストールしたデフォルトの状態からドライバの組み込みを行った例ですのでご参考にされて下さい。


 使用した RaspberryPi のバージョン等の情報

 ハードウェア  RaspberryPi 3B 
 OS  Rasbian GNU/Linux 9.4 (stretch) 
 ディスクサイズ  16GB

※Rasbian のバージョンはこの記事作成時(2018年10月上旬)では最新のバージョンです。



今回のテストでは SDカードメモリを一旦フォーマットし、新たにOSをインストールした状態から行いました。


 事前の用意について

Microcrystal のウェブサイトから RV-8803-C7 用の Linuxドライバ用のファイルを入手し、USBメモリなどでRaspberryPai の任意のフォルダ(ドキュメントなど)に移しておきます。(パソコンからドライバファイルを取得した場合 )


 Raspberry Pai での設定

Rasbian の設定の部分で I2Cインターフェースを有効化します。
この時点で、RV-8803-C7 が正しく電気的に接続されていると以下の様に<0x32アドレス> に接続されていることを確認出来ます。

 

 この状態で I2Cデバイスとして、RaspberryPi から RV-8803-C7 へのレジスタへのアクセス及び設定が出来ます。 (時刻設定、アラーム、タイマ、周波数オフセット設定など)
 任意のプログラムを用いてRV-8803-C7 をご使用になる場合には、この後の Linuxドライバの設定は必要ありません。



 Linuxドライバの作成 (makeコマンドの実行)

 今回のテストではフォーマットしたディスクに新規にOSをインストールしたものを使用したため必要なツールがインストールされていませんでしたので一般的に必要そうな以下のもののインストールを行いました。 (この辺りはご使用の環境により異なると思いますのでご留意下さい )

 ・automake (
apt-get install automake でインストール)
 ・autoconf (
apt-get install autoconf でインストール → こちらはデフォルトでインストール済みでした)
 ・libtool (
apt-get install libtool でインストール)
 ・build-essential, git はデフォルトでインストール済みでした。

 また
make KDIR = /usr/src/linux として /usr/src/のディレクトリ下に作業用のディレクトリとして"/linux" のディレクトリを作成し こちらに ドライバ作成用のファイル ( Makefile と rtc-rv8803.c ) をコピーしました。

 ( この時点では /usr/src/linux ディレクトリで
make コマンドを用いても "~へ入ります" "・・・M=$PWD" が無限に繰り返されてしまい まだ何かツールが不足していて次へ進めなくなっている様子でした )



追加で以下の kernel-header をインストールしました。
 ・raspberrypi-kernel-headers (
apt-get install raspberrypi-kernel-headers でインストール)

 カーネルヘッダのインストール後に /usr/src/linux ディレクトリで
make コマンドを実行すると make が実行されて 、ドライバファイルの "rtc-rv8803.ko" も生成されました。






 Linuxドライバの組み込み

作成された "rtc-rv8803.ko" ドライバファイルを必要な場所へ移動します。

modprobe rtc-rv8803

のコマンドを使うと、 "Module rtc-rv8803 not found in directry /lib/modules/4.17.70-v7+ " とエラーが返ってきますので"/lib/modules/4.17.70-v7+/" のディレクトリに ドライバファイルをコピーします ( "rtc-rv8803.ko" ファイルのみ )。(この辺りはご使用の環境によって異なってくると思いますのでご注意下さい)


ここで再度
modprobe rtc-rv8803 のコマンドを使ってもまだエラーになります。これは "/lib/modules/4.17.70-v7+/modules.dep " ファイルに rv8803 が反映されていないためです。
 


RV-8803-C7 を modules.dep ファイルに反映させるために同ディレクトリで

depmod

のコマンドを使います。すると "modules.dep" に rtc-rv8803 が反映され、
modprobe rtc-rv8803 コマンドが通るようになります(ファイルを開くと末尾に rtc-rv8803.ko が登録されていることを確認出来ます)。



ここで

modprobe rtc-rv8803

のコマンドと、

sudo bash
echo rv8803 0x32 > /sys/class/i2c-adapter/i2c-1/new_device

(管理者権限で実行)

のコマンドを送ると hwclock として認識されます。

i2cdetect

のコマンドでi2cリストを確認すると rv8803の表示が <32> から<UU> に変わっていてOSの管理下になったことが確認出来ます。



ここまで出来れば、後は ご使用方法に合わせて諸設定を行って頂ければ RasbpberryPi のhwclock として 非常に高精度で低消費電流のRV-8803-C7 を使用することが出来ます。

,※ また /etc/default/hwclock ファイルの最後の行の以下の部分はコメントアウトを外しておきました( #HTOSYS_DEVICE=rtc0 →先頭の#を削除して HTOSYS_DEVICE=rtc0 として保存 )。

最初にネットワークに接続して、時計の初期値を設定しておけば (
hwclock -w コマンドなどで)その後は RaspberryPi本体の電源が落ちてもその後は時刻情報を正確に保持します(バックアップバッテリを接続している場合)。
実際に使ってみると、時報や電波時計と比較してもほとんど差が出ません。1~2ヶ月またはそれ以上ネットワークにつながない状態をつくらないと差が見えてこなかもしれません。



 RV-8803-C7 を hwclock に設定した後の動き

ハードウェアクロックとして設定すると

demog | grep rv8803

のコマンドで電圧低下の状態を確認することが出来ます。(電池を抜き差しして電圧低下状態を作って上記コマンドで確認した例 )


Voltage low, temperature compensation stoppted
(電圧が規定値を下回り温度補償動作が停止した)

及び

Voltage low, data is invalid
(電圧が規定値を下回ったため データ=時刻情報 が無効です)

のコメントが確認出来ます。
このコメントは <RV-8803-C7> の フラグレジスタ (0Ehアドレス、または1Ehアドレス)を読み込み返されます。このフラグレジスタは値が"1"の時にフラグが立った状態で、"0"と書き込むとクリアされます。ラズパイに RV8803のドライバを組み込んで HWCLOCK として動作させている場合は、新たに時刻情報の書き込みが行われるとドライバの動作でこれらのフラグはクリアされます。

 ドライバインストール後の運用時のコマンド

 ・RV-8803-C7 を HWCLOCK に設定し、RV-8803-C7 の時刻をラズパイに設定する   
 modprobe rtc-rv8803
sudo bash
echo rv8803 0x32 > /sys/class/i2c-adapter/i2c-1/new_device

hwclock -s  

・RV-8803-C7 を HWCLOCK の設定から外す ( I2C経由で直接レジスタを R/W する場合 ) 
 sudo rmmod rtc-rv8803

・ラズパイの時刻(ネットワーク時刻など)を RV-8803-C7に書き込む 
 sudo hwclock -w

・ RV-8803-C7に設定されている時刻を読み出す 
 sudo hwclock -r

 ・RV-8803-C7 の CLK出力を デフォルトの32.768kHz から 1Hz に変更する
 sudo i2cset -y 1 0x32 0x0d 0x08

・1Hzの精度をカウンタで測定して、オフセット値を設定する
+0.952ppm ....sudo i2cset -y 1 0x32 0x2c 0x04
+0.714ppm ....sudo i2cset -y 1 0x32 0x2c 0x03
+0.477ppm ....sudo i2cset -y 1 0x32 0x2c 0x02
+0.238ppm ....sudo i2cset -y 1 0x32 0x2c 0x01
 0.000ppm ....sudo i2cset -y 1 0x32 0x2c 0x00
-0.238ppm ....sudo i2cset -y 1 0x32 0x2c 0x3F
-0.477ppm ....sudo i2cset -y 1 0x32 0x2c 0x3E
-0.714ppm ....sudo i2cset -y 1 0x32 0x2c 0x3D
-0.952ppm ....sudo i2cset -y 1 0x32 0x2c 0x3C
-1.190ppm ....sudo i2cset -y 1 0x32 0x2c 0x3B
-1.428ppm ....sudo i2cset -y 1 0x32 0x2c 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 0x32 0x2c 0x3F


と設定すると 『1.000000Hz』 ちょうどに近い値に設定されます (この値はリセットがかかるまで保持されます。電源断やリセットで解除されます)


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




(免責事項)
当サイト上の情報・資料の掲載には細心の注意を払っておりますが、当サイトに掲載されている情報・資料をご利用されて直接または間接的に生じたいかなる損害についても当社は一切の責任を負うものではありません。



→ リアルタイムクロックモジュールのTOPページへ



Copylight (c) Tamadevice.co.ltd .
※ サイト内のコンテンツの無断転用はご遠慮下さい。

| お問合せ先 | プライバシーポリシー |