前回の「REX-USB61mk2で強化された機能(その3)」では、
REX-USB61mk2の添付ソフトウェアのスクリプト実行アプリケーション USB61mk2_Script.exe の機能について紹介しました。
引き続き、REX-USB61mk2添付ソフトウェアのスクリプト実行アプリケーション USB61mk2_Script.exe を紹介します。
今回は、サンプルスクリプトを記述して実際にデバイスを接続しての操作について紹介していきます。
対象とするデバイスは エプソントヨコム製 RTC-8564NB という RTC(Real Time Clock)です。
エプソントヨコム製 RTC-8564NB は、以前のブログ「I2C RTCデバイスにアクセスする」(2014年9月掲載)でも紹介したものです。
1. RTC-8564NBについて
今回は、前回使用しなかったRTCの機能も使用するため、改めてRTCの仕様を説明しますが、
最新情報や詳しい内容についてはエプソンの以下のWebサイトをご覧ください。
http://www5.epsondevice.com/ja/products/i2c/rtc8564nb.html
1-1. RTC-8564NBの仕様
以下がRTC-8564NBの主な仕様です。
水晶振動子 | 32.768KHz水晶振動子(周波数精度調整済み)を内蔵 |
インターフェース方式 | I2C-Busインターフェース(400kHz) |
インターフェース電圧範囲 | 1.8V~5.5V |
計時(保持)電圧範囲 | 1.0V~5.5V / -20℃~+70℃時 |
バックアップ時消費電流 | 275nA / 3.0V(Typ.) |
32.768KHz出力機能 | 出力制御機能付き C-MOS出力 |
主な機能 | 時刻・カレンダ機能、アラーム機能、タイマー機能、電源電圧低下検出機能 |
入出力信号
RTC-8564NBは、以下の入出力信号を持っています。
信号名 | 入出力 | 機能 |
SCL | 入力 | シリアルクロック入力 |
SDA | 双方向 | 双方向データ入出力 |
CLKOUT | 出力 | 出力制御付きの32.768kHzクロック出力端子(C-MOS出力) |
CLKOE | 入力 | FEビット等と組み合わせることでCLKOUT出力状態を制御するための入力端子 |
/INT | 出力 | 割り込み出力端子(N-chオープンドレイン) |
Vdd | – | 電源入力端子 |
GND | – | グランド端子 |
1-2. RTC-8564NBのレジスタ構成
RTC-8564NBは、以下の16個のレジスタを内蔵しています。
Address | Function | Address | Function |
00h | Control1コントロールシジスタ1 | 08h | Yearsカレンダカウンタ[年] |
01h | Control2コントロールシジスタ2 | 09h | Minute Alarmアラームレジスタ[分] |
02h | Seconds時計カウンタ[秒] | 0Ah | Hour Alarmアラームレジスタ[時] |
03h | Munutes時計カウンタ[分] | 0Bh | Dat Alarmアラームレジスタ[日] |
04h | Hours時計カウンタ[時] | 0Ch | Weekay Alarmアラームレジスタ[曜] |
05h | Daysカレンダカウンタ[日] | 0Dh | CLKOUT frequencyCLKOUT出力 設定レジスタ |
06h | Weekdays曜日カウンタ | 0Eh | Timer control定周期タイマ割り込み機能 制御レジスタ |
07h | Weekdaysカレンダカウンタ[月] | 0Fh | Timer定周期タイマ用ダウンカウンタ |
上記レジスタから今回は以下のレジスタを使用して制御します。
コントロールレジスタ1
時計、カレンダを始めとした機能の停止/動作を制御する
Address | Function | Bit7 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 |
00h | Control1 | TEST | 0 | STOP | 0 | TEST | 0 | 0 | 0 |
TESTビット [bit7, bit3] | デバイスメーカーのTEST用で必ず “0” を書き込みます。 | |
STOPビット [bit5] | “1” をセットすると本デバイスのすべての動作が停止します。 “0” をセットすると、動作を再開(停止を解除)します。 |
コントロールレジスタ2
各種割り込みイベント動作の設定や各種割り込みイベントの発生状況の把握を行う
Address | Function | Bit7 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 |
01h | Control2 | 0 | x | 0 | TI/TP | AF | TF | AIE | TIE |
TI/TPビット [bit4] (Interrupt Signal Output Mode Select. Interrupt/Periodic) |
定周期タイマ割り込みイベント発生時の動作モードを指定します。 ”1″ :繰り返しの継続動作。 ”0″ :1回限りの動作。 |
|
AFビット(Alarm Flag) | アラーム割り込みイベントを検出して、結果を保持するフラグビットです。 アラームイベントが発生すると、”0″→”1″ に変化します。 |
|
TFビット(Timer Flag) | 定周期タイマ割り込みイベントを検出して、結果を保持するフラグビットです。 定周期タイマ割り込みイベントが発生すると、”0″→”1″ に変化します。 |
|
AIEビット | 定周期タイマ割り込みイベント発生時(TF, “0”→”1″)の、/INT割り込み信号の動作を設定します。 ”1″ :割り込みイベント発生時に /INT端子から “L”レベルの割り込み信号を発生させることができます。 ”0″ :/INT端子から “L”レベル出力を禁止します。 |
時計カウンタ
[秒][分][時]を計時
Address | Function | Bit7 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 |
02h | Seconds | VL | 40 | 20 | 10 | 8 | 4 | 2 | 1 |
03h | Minutes | x | 40 | 20 | 10 | 8 | 4 | 2 | 1 |
03h | Hours | x | x | 20 | 10 | 8 | 4 | 2 | 1 |
[Seconds]レジスタ | [秒]を計時するカウンタ | |
[Minutes]レジスタ | [分]を計時するカウンタ | |
[Hours]レジスタ | [時]を計時するカウンタ |
時計カウンタのデータ形式はBCD形式で、たとえば[Seconds]レジスタが “0101 1001″なら59秒を意味します。
VLビット | 電圧低下を検出して、結果を保持するフラグビットです。 |
カレンダカウンタ
Address | Function | Bit7 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 |
05h | Days | x | x | 20 | 10 | 8 | 4 | 2 | 1 |
07h | Months / Century | C | x | x | 10 | 8 | 4 | 2 | 1 |
08h | Years | 80 | 40 | 20 | 10 | 8 | 4 | 2 | 1 |
[Days]レジスタ | [日]のカウンタ | |
[Months / Century]レジスタ | [月]のカウンタ | |
[Year]レジスタ | [年]のカウンタ |
カレンダカウンタのデータ形式はBCD形式で、たとえば[Days]レジスタが “0010 0101″なら25日を意味します。
Cビット(Century bit) |
西暦の世紀更新を示すビット 年桁データが99から00にオーバーフトー更新すると、本ビットが “0”→”1″ にセットされます。 |
曜日カウンタ
Address | Function | Bit7 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 |
06h | Weekdays | x | x | x | x | x | 4 | 2 | 1 |
[曜日]を bit0 ~ bit2の3ビットにて示します
アラームレジスタ
アラーム割り込み機能を設定します
Address | Function | Bit7 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 |
09h | Minute Alarm | AE | 40 | 20 | 10 | 8 | 4 | 2 | 1 |
0Ah | Hour Alarm | x | 40 | 20 | 10 | 8 | 4 | 2 | 1 |
0Bh | Day Alarm | x | x | 20 | 10 | 8 | 4 | 2 | 1 |
0Ch | Weekday Alarm | x | x | x | x | x | 4 | 2 | 1 |
以下のレジスタは今回は使用しないため、簡単な機能のみを示しておきます。
Address | レジスタ名 | 機能 |
0Dh | CLKOUT出力設定レジスタ | CLKOUT出力端子のクロック出力を制御します |
0Eh | 定周期タイマ割り込み機能制御レジスタ | 定周期タイマ割り込み機能を制御します |
0Fh | 定周期タイマ用カウントダウンタイマ | 定周期タイマ割り込み機能を使用する際の、カウントダウン初期値(プリセット値)を設定します |
以上がRTC-8564NB の仕様です。
次ページでは、REX-USB61mk2とRTC-8564NBを接続し制御してみます。