■ 高精度RTC <RV-8803-C7> を搭載し RaspberryPi(※) で使いやすい形状の評価ボード
 
  Microcrystal では 複数の機種でLinux用のドライバを ウェブサイト から提供しています。
 (ダウンロードの際に免責事項への同意が必要になります)

 こちらを用いて シングルボードコンピュータとして有名な RaspberryPi (※)に Hwclock として RV-8803-C7 を組み込むテストを行いました。

  ※ RaspberryPi はRaspberryPi 財団の商標です。


水晶振動子内蔵リアルタイムクロックモジュール
<RV-8803-C7> の概要 
周波数精度  ±1.5ppm以内(0〜+50℃) かつ ±3.0ppm以内(-40〜+85℃)
 かつ±7.0ppm以内(-40〜+105℃)
電源電圧  +1.5〜+5.5V
インターフェー   I2C (2線)
消費電流  0.25μA Typ. (@+3.0V, 温度補償動作, Timekeeping時 )
その他 アラーム、タイマ機能、うるう年自動補正など 

                 ※ Time Keepin時 でも温度補償動作を持続し 0.25μA Typ.. の超低消費電流で高精度で時刻を保持します。



※ 弊社ではRaspberryPi 及び Linux についてのサポートは行っておりませが、
  実際に上述の Linux用ドライバを 組み込んだテストでのご参考情報として以下記します。
  なおテスト作業者はRaspberryPi 及び Linux については初心者ですので、必ずしもこの方法が最善ではないことも
  考えられますので、そのあたりご賢察頂ければ幸いです。

  上述の Linuxドライバのダウンロードセットの中に 簡単な設定の手順(英文)があり、そちらに沿ってテストを行っています。


 使用した 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ヶ月またはそれ以上ネットワークにつながない状態をつくらないと差が見えてこなかもしれません。


★ 11月より RV-8803-C7 と バックアップバッテリを搭載し、RaspberryPi の開発環境で使いやすい形状の
  RV-8803-C7 RasPi評価基板 を 多摩デバイスから提供開始予定です。

(RaspberryPi のPin 1,3,5,7,9にピンヘッダーで接続します。裏面にリチウム一次電池を搭載しています)


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


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

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

| お問合せ先 | プライバシーポリシー
| サイトマップ |