【I2Cのシステム接続構成】
I2C通信は2種類の信号で通信が可能で、SCLとSDAの2本の信号となています。
このときの接続関係を図で示すと下図のようになり、複数のデバイスがバス構成で接続
できるよう、オープンドレインかオープンコレクタの出力回路となっています。
【プルアップ抵抗の決め方】
上図でのプルアップ抵抗値はいくつか良いのでしょうか。これを決める方法には、
下記のパラメータが関係します。
(1) 電源電圧(Vdd)
電源電圧はプルアップ抵抗の最小値を制限します。
これには各ドライバのシンク電流が最大3mAという制限があるので、On電圧
が0.4Vmaxとすれば、下記条件が必要です。
Rp > (Vdd−0.4)/3mA
例えばVdd=5Vとすれば Rp > 1.5kΩ となります。
(2) バスの浮遊容量
浮遊容量とプルアップ抵抗で形成する時定数で、パルスの立ち上がり時間を
決めるので、これでプルアップ抵抗の最大値が決まります。
立ち上がり時間は下記が最大値として規定されています。
《単位nsec》
通信速度 立上がり時間 立下り時間
・100kbps 1000 300
・400kbps 300 300
・1.7Mbps 80 80 (400pF)
・3.4Mbps 40 40 (100pF)
例えば100pFで300nsecとすれば
Rp < 300nsec/100pF = 3kΩ となります。
(3) 接続されたデバイスの数と入力電流
入力電流の加算による電圧降下を上記電圧配分に加える必要がある。
しかし入力電流はわずかなことが多いので省略しても大きな問題は無い。
結局これらから、電源が5Vで100kbpsまたは400kbpsの時には2kΩ〜5kΩが
最適値ということになります。