マイクロテクニカ製品サポートFAQ
[一覧] [1つ前に戻る] [マニュアル及び各種ダウンロードページへ]
I2C通信に関するロジックアナライザのデータとC言語サンプル
MSC-MOD10をI2C通信で制御する場合の、サンプルとロジックアナライザのデータを示します。

■電源投入時の状態

http://www.microtechnica.tv/support/manual/msc-mod10/i2c_1st.jpg

電源投入時にMSC-MOD10からは、マニュアルにありますとおり、下記の文字列を送ってきます。

GHI Electronics, LLC
----------------------
Boot Loader 2.03
uALFAT(TM) 2.15
!00

電源投入時はDATARDYピンがHになっていると思いますが、それは、上記の文字列を出力するため、出力データがあることを通知しています。
最初にスレーブアドレスとして0xA4を送っています。マスター側が受信するので、Address+1としてRにしています。(濃い緑色R)
Sは、スタートコンディションです。SCLがHで、SDAがLになったところからスタートコンディションです。

データの0x0Dは、最初のCRです。画面下は2バイト目でスペースの0x20です。(GHI・・・という文字列のGの前の部分に1つスペースがあります)同様にして、!00(CR)まで受信します。

■コマンドをホスト側から送信する場合

http://www.microtechnica.tv/support/manual/msc-mod10/i2c_2nd.jpg

マスター側からV(CR)コマンドを送信して、バージョン情報をスレーブ(MOD10)から受信した例です。
画面上はマスター側からの送信です。R/Wは、0にしてWとしています。0x56と0x0Dを送信します。
MOD10からの戻り値は下側です。戻り値の文字列は、uALFAT2.15 なので、最初の1バイト目のuとして0x75が、2バイト目のAとして0x41がスレーブからマスターへ送られてきています。
全データを取得すると、DATARDYピンはLになります。

■C言語サンプルプログラム
下記にC言語のサンプルプログラム例を示します。

http://www.microtechnica.tv/support/manual/msc-mod10/877A_i2c.c

(PIC16F877Aで制御した場合のサンプルです)

C言語のプロクラムをご覧頂けば分かるとおり、DATARDY(PORTC.0に接続)が1の間は、データを受信しつづけます。
オリジナル - FAQみたいです - 猫でいいです