2021年09月11日

I2C Bus Accelarator検証

以前に紹介したGrove等で使用されるI2Cを延長する方法について、実際に少し検証してみました。

一般的にI2Cはマイコン周辺の機器との通信を想定しているため、数メートルといった距離の通信を想定していません。Grove規格ではハブやケーブルを接続して、数mまでケーブルを延長すると波形が鈍って通信エラーが多発します。このような場合にI2CバスバッファICで差動信号に変換して、延長先で再度、差動信号をI2Cに変換する方法があります。数10m以上延長する場合に非常に有効な方法ですが、数m程度の延長で変換アダプタを使用するのは少し大がかりです。その際に便利な部品、バスアクセラレータLTC4311を紹介します。


バスアクセラレータLTC4311は、400pFのI2C仕様を上回るバス負荷条件で
データ伝送速度と信頼性を向上させるアクティブ・プルアップです。

• I2Cバス立ち上がり遷移時間を改善
• I2Cバス上に複数のデバイスを接続する場合にデータの完全性を保証
• 広い電源電圧範囲:1.6V〜5.5V
• “L”状態のノイズマージンを改善
• 最大400kHz動作

簡単に言えば、配線が長くなってクロックや信号が鈍ってしまうところをHigh、Lowをバシッと決めてくれるデバイスです。

通信ケーブル1m、波形の鈍りが分かりやすいように意図的に大きなプルアップ抵抗20kΩを接続し、HS3001温度湿度センサをI2Cデバイスとして使用した場合の波形を比べてみました。


LTC4311_3.jpg
100kHzクロックでLTC4311未使用の場合です。赤線がデータ、黄線がクロックです。1mなので通信できますが、立ち上がりが少し鈍っています。

LTC4311_4.jpg
100kHzクロックでLTC4311使用の場合です。赤線がデータ、黄線がクロックです。I2CバスラインにLTC4311を挿入するだけで立ち上がりの鈍りが解消されています。

ケーブルが長い場合やケーブルの種類によっては通常、波形の鈍りが大きくなり、正常に0と1を送信できなくなり、通信エラーが多発します。アクティブ・プルアップによって波形の鈍りを解消することでより長いケーブルでの伝送ができるようになります。今回は検証していませんが、I2C駆動電流を大きく流せないようなデバイスやマイコンの場合に波形が鈍って通信できない場合にも有効だと思います。

部品単体では効果を確認できたため、I2Cバスアクセラレータ基板の設計をしてみたいと思います。
posted by Crescent at 00:00| Comment(0) | 電子部品 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。