2018.11現在、第3版になっています。こちらからどうぞ。
===
第1版から変更した箇所は下線で示す。
===
1.名称:
I2C-COM
2.文字:
0|1|2|3|4|5|6|7|8|9|A|B|C|D|E|F|S|P|R|W|T|K|N|a|b|c|d|e|f|s|p|r|w|t|k|n
の36文字。その他は全て区切り記号として使われる。
3.数値文字:
0|1|2|3|4|5|6|7|8|9|A|B|C|D|E|F|a|b|c|d|e|f
の22文字。
4.バイト:
数値文字2桁で表す。範囲は0x00~0xFFである。
5.スレーブアドレス:
7bitを数値文字2桁で表す。範囲は0x00~0x7Fである。
6.制御文字:
S|P|R|W|T|K|N|s|p|r|w|t|k|n
の14文字。以下にそれぞれの機能を説明する。
前提として、1つのトランザクション(ひとまとまりの流れ)はS|sで始まりP|pで終わる。その途中に再度S|sがあってもよい。
S|s
・I2C信号線上にSTART条件を出す。リプライはない。エラーもない。
P|p
・I2C信号線上にSTOP条件を出す。リプライはない。エラーもない。
K|k
・I2C信号線上でslaveから8bit受信した後ACK条件を出す。8bit受信できなかったらタイムアウトエラーになる。(タイムアウトになる条件は後日)
N|k
・I2C信号線上でslaveから8bit受信した後NACK条件を出す。8bit受信できなかったらタイムアウトエラーになる。(タイムアウトになる条件は後日)
R|r
・スレーブアドレスが後に続く。Pを出すまでデータの向きはslave -> masterである。slaveからACKが返らないとタイムアウトエラーになる。(タイムアウトになる条件は後日)
例)R29
W|w
・スレーブアドレスが後に続く。Pを出すまでデータの向きはmaster -> slaveである。slaveからACKが返らないとタイムアウトエラーになる。(タイムアウトになる条件は後日)
例)W29
T|t
・バイトが後に続く。Pを出すまでデータの向きはmaster -> slaveである。slaveからACKが返らないとタイムアウトエラーになる。(タイムアウトになる条件は後日)
例)T8A
※以上の1文字、もしくは後に続く数値2文字を含む3文字、のコマンドは、後に続く区切り文字が入力された時点で実行する。