2月 092016
 

前回の「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 frequency
CLKOUT出力 設定レジスタ
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を接続し制御してみます。

次頁[2]へ続く…

 返信する

以下のHTML タグと属性が利用できます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(必須)

(必須)

*