2月 092016
 
2. RTC-8564NBとの接続

今回も、RTC-8564NBが8ピンDIP用基板に実装された市販のリアルタイムクロックモジュールを使用します。

REX-USB61mk2とは、RTC-8564NBの信号線のVDD, SCL, SDA, Vdd, /INT, GND のみを接続します。
今回は、アラーム割込みを使用するため /INT 信号を接続します。
CLKOUT, CLKOE の信号は今回使用しません。

usb61mk2_rei11

リアルタイムクロックモジュールの端子番号

RTCmodule

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

処理の流れは以下のとおりです。

ScriptFlowChart

3-2. スクリプトファイルの読み込み

保存されているスクリプトファイルを読み込みます

1. [スクリプトファイル読み込み]ボタンをクリックします。
2. スクリプトファイル [USB61mk2_I2Cスクリプト例(RTC-8564NB)(20150313).txt]を選択します。

ScriptUty-0101

読み込まれたスクリプトは、[スクリプト表示・編集エリア]に表示されます。
左側に行番号が表示されます。

ScriptUty-0302

3-3. スクリプトファイルの実行

[実行開始]ボタンを押して、[スクリプト表示・編集エリア]のスクリプトを実行します。

ScriptUty-0303

スクリプトの実行が開始されると[一時停止]ボタン有効に、[実行開始]ボタンが無効に変わります。
そして、最初にスクリプトの文法チェックが行われます。

スクリプトの文法チェックでエラーがなければ、スクリプトコマンドが順番に実行されます。
スクリプト実行の終了後および一時停止の状態になるとレスポンスが表示されます。

レスポンス表示画面

ScriptUty05-02

スクリプトが一時停止した場合は、レジスタ表示やダンプ表示による確認が行えます。

レジスタ表示画面

ScriptUty06

ダンプ表示画面

ScriptUty07

また、今回のスクリプトではアラーム割り込みを検出してダイアログ表示を行うため
最後に以下のメッセージが画面に表示されます。

ScriptDialog-0102

スクリプトの行番号表示の下にダイアログメッセージが表示されます。
このダイアログメッセージでは、アラーム割り込みの検出によってレジスタR0にセットされた割り込み検出結果が0x01(タイムアウト発生)であることを示しています。

次ページでは、サンプルスクリプトの詳細内容について見ていきます。

次頁[3]へ続く…

 返信する

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

(必須)

(必須)

*