I2Cはシリアル通信のバス形態で2本の信号線を使用して行う。
マスター(主人)がスレーブ(下僕)に対して基準クロックを送り、クロックに同期して双方向通信をする。(マスターは複数あってもよい)
接続できる機器数は線間容量がなんとかF以下ならOKとかだったはずでアマチュアレベルなら気にする必要は無い。
I2Cはフィリップス社の統一規格があるので配線方式から通信方式まですべて同じ。つまりI2C対応機器であればどれでも接続できるという
また、通信クロックの周波数はいくつか分類されてて
スタンダード・・・100kHz
ファストモード・・・400KHz
(他にも遅いやつ速いやつとある)
基本はスタンダードモードさえわかってればいいと思う
また、通信クロックの周波数はいくつか分類されてて
スタンダード・・・100kHz
ファストモード・・・400KHz
(他にも遅いやつ速いやつとある)
基本はスタンダードモードさえわかってればいいと思う
I2Cは図のような感じで構築する
I2C機器はSDA、SCLともにオープンコレクタもしくはオープンドレイン出力となっていて、アクティブローである。つまり何も無い状態では信号線のレベルはHということ。
(アクティブローだけどレベルは見たまんまで呼びます。)
(アクティブローだけどレベルは見たまんまで呼びます。)
各通信のタイミングチャートは以下を参考
SCL(クロック)がHのときにSDA(データ)をLにするとスタートストップ信号になる
じゃあ、パルスはいつ出すのか。
→それは通信をしているあいだだけ
ACKはどんな波形や。
→データを送ったあとに1ビット分だけLになる
じゃあ、パルスはいつ出すのか。
→それは通信をしているあいだだけ
ACKはどんな波形や。
→データを送ったあとに1ビット分だけLになる