サイト内検索

I2C バスの通信エラーを改善する方法

FPGA 搭載基板上で、メモリーや電源シーケンス管理用で複数のデバイスを接続する際に、I2C バスを使用しているかと思います。システムによっては、基板間で I2C バスを使用するような場合も出てきています。

I2C バスは、2線式でシンプル!

I2C バスは、2本のシングルクロック (SCL) とシングルデータ (SDA) ライン配線のみで、デバイス間の情報のやり取りができます。

シンプルな方式であるため、通信装置で使われる SMBus、PMBus、ATCA の IPMB バスなどでも使用されることが多くなっています。

シンプルだがトラブルに注意!

I2C バスは、「2線式でシンプルで低速通信なので設計が簡単!」と考えがちです。

しかし、通信が上手くできない状況に陥ることも少なくありません。

特に、通信装置などでバックプレーンとの接続が必要になった場合や、IO カード間を長い配線で接続して通信をおこなうような場合にはトラブルの可能性が高くなります。

通信エラーの原因は?

通信エラーは、配線容量が I2C バスの規定を逸脱していることが原因である可能性が高いです。I2C バスの規格では、最大配線容量を 400pF と規定しています。

バックプレーンとの接続や、IO カード間の長い配線の場合、I2C の規格を逸脱するほどの配線容量となり、図1 のように立ち上がり波形がなまってしまい通信エラーが発生するので注意が必要です。

Article header library 127585 pic01  2
図1:立ち上がり波形

プルアップ抵抗の調整で対策できる?

通常、立ち上がり波形がなまっている場合は、プルアップ電流を大きくして(プルアップ抵抗を小さくして)配線容量が大きくてもドライブできるよう対策します。

しかし、プルアップ電流を大きくし過ぎると、副作用として Low レベルが上昇(プルアップ電流x寄生抵抗分)し、VOLの規定を逸脱する可能性が出てくるので注意が必要です。

では、プルアップ抵抗の調整により、通信エラーを回避できない場合は、どのように対策すべきでしょうか?

Article header library 127585 pic02  1
図2:I/O基板間の接続

通信エラーを改善するソリューション

通信装置のようにバックプレーンとの接続が必要になった場合や、基板間をフラットケーブルで接続して I2C バス通信をおこなうような寄生容量が原因で通信エラーを回避できない場合はどうしたら良いのでしょうか?

寄生容量が規格に準拠しない場合の回避策として、アナログ・デバイセズ社の I2C バス・バッファー製品を使用します。

Article header library 127585 pic03  1
図3:I2Cバス・バッファー LTC4315

LTC4315 は、Rise Time Accelerator 機能を持っているため、なまっている立ち上がり波形を改善することが可能です。

図3のように、LTC4315 をコントローラーボード上に置くことで、バックプレーンに接続している場合でも正常に通信することが可能になります。

LTC4315 は、基板間(デバイス間)に大きな寄生容量ができてしまった場合の問題を解決する、I2C バス通信に必須の製品です。


商品の購入はこちら

LTC4313IDD-1#PBF
LTC4315IMS#PBF
LTM2883IY-5S#PBF

お問い合わせ

本記事に関してご質問がありましたら、以下よりお問い合わせください。

アナログ・デバイセズ メーカー情報Topへ

アナログ・デバイセズ メーカー情報Topに戻りたい方は、以下をクリックしてください。