2. RTC-8564NBとの接続
今回も、RTC-8564NBが8ピンDIP用基板に実装された市販のリアルタイムクロックモジュールを使用します。
REX-USB61mk2とは、RTC-8564NBの信号線のVDD, SCL, SDA, Vdd, /INT, GND のみを接続します。
今回は、アラーム割込みを使用するため /INT 信号を接続します。
CLKOUT, CLKOE の信号は今回使用しません。
リアルタイムクロックモジュールの端子番号
3. RTC-8564NBの制御の確認
RTC-8564NBとの接続ができたら、USB61mk2_Scriptを起動してサンプルスクリプトを使って実際に制御してみます。
3-1. サンプルスクリプトについて
サンプルスクリプトはテキストファイルとして以下の名前で保存されているものを使います。
ファイル名 [ USB61mk2_I2Cスクリプト例(RTC-8564NB)(20150313).txt ]
このサンプルスクリプトは、以下の処理を行います。
最初に、I2Cバス、I2Cデバイスの初期化、時刻の設定を行います。
そして、アラーム時刻を設定して、アラームからの割り込みを有効にします。
最後に、アラーム割り込みを検出したらメッセージを表示して処理を終了します。
サンプルスクリプトの内容
###############################################################################
#
# REX-USB61mk2 USB-SPI/I2C Converter
# Device Controle Utility スクリプトデモストレーション Rev1.0
#
# EPSON TOYOKOM製 RTC-8564NB I2C制御スクリプト
#
# Copyright (C) 2015 RATOC Systems,Inc.
###############################################################################
# Converterモードを設定
MODE=I2C # I2Cモード
# I2Cの周波数設定
FREQUENCY=400 # 周波数を400KHzに設定
# デバイス電源供給設定
POWER=ON3 # 外部電源出力3.3V
WAIT=10 # 電源安定時間待ち(1秒)
# I2C信号線のプルアップ制御
PULLUP=ON # SCL、SDAラインプルアップ
# デバイスアドレスモード設定&デバイスアドレス設定
ADDRESSMODE=7 # アドレスモード7ビット
ADDRESS=51h # スレーブアドレス50h
# スタート時にダイアログメッセージを表示します
SET R0=0
MSGOK "RTC-8564NBに時刻を設定します。"
# 日付及び時刻の設定を行います 2015年3月13日(金曜日) 16時25分31秒 とします
WRITE 00h # コントロールレジスタ1を指定する
WRITE 20h # コントロールレジスター1 時計を停止する
WRITE 00h # コントロールレジスター2 割り込みイベントを停止する
WRITE 31h, 25h, 16h # 時計カウンター 秒、分、時をセットする
WRITE 13h, 05h, 03h, 15h # カレンダー 日、曜日、月、年をセットする
# アラームの時刻の設定を行いますアラームは 13日(金曜日) 16時26分 とします
WRITE_AND_STOP 26h, 16h, 13h, 05h # アラームレジスタ 分、時、日、曜日をセットする
# アラーム割り込みを検出するDIOの設定を行います
# アラーム用割り込み端子はDIOポートの0とする
DIODIR=00h # DIO端子をすべて入力にします
DIOINT=01h,03h # DIOポート0を割り込み検出可能とし、High→Low変化で有効とする
# アラーム割り込みを有効にします
WRITE_AND_STOP 00h, 00h, 02h # コントロールレジスタ0のSTOPビットに0を設定し時計を開始
# コントロールレジスタ1のAIEビットに1を設定し割り込み信号を許可する
# 時を刻んでいるか1秒毎に3回読み出し確認する
REPEAT 3
{
WRITE 02h
READ_AND_STOP 7
WAIT = 10
}
# アラーム割り込みを待ちます
WAITINT = 60000, R0 # アラーム割り込みが発生するまで待つ(60秒のタイムアウト)
# アラーム割り込みが発生したらダイアログメッセージを表示します
MSGOK "アラームが発生しました。",R0 # メッセージ表示(R0レジスタの値も表示)
# デバイス電源供給設定
POWER=OFF # 外部電源出力0V
END
処理の流れは以下のとおりです。
3-2. スクリプトファイルの読み込み
保存されているスクリプトファイルを読み込みます
1. [スクリプトファイル読み込み]ボタンをクリックします。
2. スクリプトファイル [USB61mk2_I2Cスクリプト例(RTC-8564NB)(20150313).txt]を選択します。
読み込まれたスクリプトは、[スクリプト表示・編集エリア]に表示されます。
左側に行番号が表示されます。
3-3. スクリプトファイルの実行
[実行開始]ボタンを押して、[スクリプト表示・編集エリア]のスクリプトを実行します。
スクリプトの実行が開始されると[一時停止]ボタン有効に、[実行開始]ボタンが無効に変わります。
そして、最初にスクリプトの文法チェックが行われます。
スクリプトの文法チェックでエラーがなければ、スクリプトコマンドが順番に実行されます。
スクリプト実行の終了後および一時停止の状態になるとレスポンスが表示されます。
レスポンス表示画面
スクリプトが一時停止した場合は、レジスタ表示やダンプ表示による確認が行えます。
レジスタ表示画面
ダンプ表示画面
また、今回のスクリプトではアラーム割り込みを検出してダイアログ表示を行うため
最後に以下のメッセージが画面に表示されます。
スクリプトの行番号表示の下にダイアログメッセージが表示されます。
このダイアログメッセージでは、アラーム割り込みの検出によってレジスタR0にセットされた割り込み検出結果が0x01(タイムアウト発生)であることを示しています。
次ページでは、サンプルスクリプトの詳細内容について見ていきます。