リアルタイムクロックRTC-4543SA /WSN366 ボード (2)

pic366-1

CQカチャduinoとWSN366ボードを使ってRTC-4543を実際に動かしてみます。上図はWSN366にボタン電池CR2032を実装したところです。

●WSN366

このボードはRTC-4543ICとバックアップ用のボタン電池(CR2032)を実装したブレッドボード用の小型基板です。高さが増えますが、ボタン電池を縦に実装するため、25mm×25mmの基板面積に収まっています。

秋月電子のRTC-4543のDIP基板を使用することもできますが、本体電源OFF時のRTCバックアップ動作をさせる場合は電池などのバックアップ電源を用意する必要があります。

回路図など基板の詳細はこちらを参照ください。→ WSN366 RTC-4543SAボード

●配線図

サンプルプログラムを作動させるための配線例を下図に示します。シリアル通信に使用するディジタルポートは任意ですが、今回は下図のようにしました。この図ではWSN283は省略されていますが、シリアル通信を使うために実際はWSN283(USB/電源部)を接続しておく必要があります。

配線図 WSN282+WSN366

RTC-4543_WSN366-1

ここではCQカチャduino(WSN282/WSN283)とWSN366 RTC-4543SAボードを使っています。Arduino、他社Arduino互換機や秋月電子製RTC-4543 DIP基板を使用する場合は信号名を合わせればそのまま使えます。

pic366-2

●プログラム概要

とりあえず、固定の日時を設定して、それがRTCへ設定されるか、また、正常に時計として働いているか、Arduino本体の電源を切ってもRTCばバックアップ動作できるかを試します。

設定内容はシリアルで読み出して確認します。そのために、CQカチャduinoのWSN283(USB/電源部)も必要です。

●FDTビットの扱い

FDTビットはRTCの電源電圧低下(または電源がOFFになったか)を示すビットで、このビットが”1″にセットされているときは、RTCに保存されている日時は無効と判断できます。

今回は最初に固定の日時を設定しますが、最初にFDTビットを読み出して、このビットが”1″のときは固定日時を設定し、”0″の場合は既に設定済として再設定しません。

従ってArduino本体をリセットしたり、電源を切っても、バックアップ用電池を接続していれば時計は作動し続け、Arduino本体が再起動したときに現在日時が復帰します。

●54ビット日時データの書き込み

データは8ビットまたは4ビットずつ処理するようにしました。全部で54ビットある、秒、分、時、曜、日、月、年のデータは、順に8ビットが3回、次に4ビットが1回、更に8ビットが3回というように扱います。

8ビット書き込みに”put8Bit()”、4ビット書き込みに”put4Bit()”という関数を用意し、これを順に並べることにより、各項目の数値をBCDコードで書き込みます。

●54ビット日時データの読み出し

読み出しの場合も書き込みと同様、秒、分、時、曜、日、月、年のデータは、順に8ビットが3回、次に4ビットが1回、更に8ビットが3回というように扱います。

8ビット読み出しに”get8Bit()”、4ビット読み出しに”get4Bit()”という関数を用意し、これを順に並べることにより、各項目の数値をBCDコードで読み出します。

コメントは受け付けていません。