DS28E17によるI2C通信距離の延長

要約

システムが必要とするI2Cバスの距離は次第に増大しています。この記事では、DS28E17を使用して、コストを削減しながらI2Cデバイスの距離を延長する方法を説明します。

はじめに

I2Cバスの最大距離は、容量性負荷によって決まります。標準的なアプリケーションでは、長さは標準モードで数メートルに制限されます。これは、最大400pFのバス容量に対してI2Cバス仕様(Rev. 6:2014年4月4日)に記載された立上り時間の要件を満たすシステムを構築する必要があるためです。最大許容バス容量以上で動作させてより長い距離を実現するため、I2Cバス仕様は、より低速での動作、より高い駆動出力を持つデバイスの使用、バスバッファによるバスの複数セグメントへの分割、またはスイッチドプルアップ回路の使用を認めています。これらの手法は表面的には実用性があるように見えますが、長距離の要件に適合しないか、またはコストが大幅に増大するかのいずれかです。これらに代わるものとして、1-Wire-I2CマスターブリッジのDS28E17を使用する方法があります。

仕組み

1-Wire-I2CマスターブリッジのDS28E17は、図1に示すように、1-Wire®プロトコルを利用するという異なる手法を使います。このプロコトルはより大きなバス容量を許容することができるため、距離を延長することができます。単線ツイストペアを1-Wireバスとグランドリターンに使用することで、ソリューションコストが低く抑えられます。

図1.標準アプリケーション回路

図1.標準アプリケーション回路

試験

少数の簡素な回路の基礎を使用することによって、図1の回路のバス容量を調べることができます。以下に基本的な手順を示します。

  1. システム内の個々の要素の容量を決定します。

    • CAT5Eケーブルの1m当り容量:52pF/m
    • 近端の入力容量(つまり、µCまたはDS2484):10pF
    • 遠端の入力容量(つまり、DS28E17):15pF
  2. 使用するケーブル長について、システムの総1-Wireバス容量を計算します。
  3. CBUS = (1m当りのCCABLE × 長さ) + CNear End + CFar End
    CBUS = (52pF × 100m) + 10pF + 15pF
    CBUS = 5.23nF 
       
  4. 1-Wireマスターの容量駆動能力を決定します(つまり、µCまたはDS2484)。これは、バス容量による影響が最も大きいローからハイへの遷移(つまり、立上りエッジ)について決定する必要があります。ハイからローへの遷移(つまり、立下りエッジ)は、常に1-Wireマスターによって適正なプルダウンで駆動されるため(つまり、8mA以下)、通常は無視することができます。

    • 立上り時間の最大値が許容されるようにタイムスロットのタイミング制限を設定します。

      1. ファームウェアで設定するtRL = tW1Lの値:5µs
      2. ファームウェアで設定するtMSRの値:15µs
    • µCの容量駆動能力:

      1. RPUPの値:680Ω
      2. 2つの時定数に対する立上り時間を決定します(2τまたはVCCの86.5%)。これはDS28E17の長いケーブルに対する標準速度読取りタイムスロットの要件と、µCのVIHmaxパラメータによって設定されます(たとえば、ほとんどのシステムでは通常はVCC x 0.6~VCC x 0.85の範囲)。

      式1.

      式2.

    • 1次RC回路の近似を使用して、µCによるシステムの最大容量駆動能力を求めます。
    • 式3.

      式4.

    • DS2484は、アクティブプルアップ(ローインピーダンストランジスタ)を使用するオプションを備えているため、より高度な容量駆動能力があります。DS28E17との通信を行うときは、常にこのオプションを使用してください。ベンチテストの結果では、1-Wireを標準速度に設定した場合、CBUSmaxの上限は3.3Vで15nFです。
  5. 1-Wireバス容量が1-Wireマスターの容量駆動能力を上回っていないことを確認します。

    • µCの確認:CBUS < CBUSmax (つまり、5.23nF < 7.35nF)
    • DS2484の確認:CBUS < CBUSmax (つまり、5.23nF < 15nF)
  6. 1-Wireマスターのファームウェアで、1-Wireの回復時間(tREC)を長いライン用に調整します。

    • µCのファームウェアの設定:tREC..FW ≈ 2τ + tRECmin (つまり、15µs = 2 x 5µs + 5µs)
    • DS2484のファームウェアの設定:tREC..FWτ + tRECmin (つまり、10µs = 5µs + 5µs)

まとめ

このアプリケーションノートでは、I2Cバスを延長するための代替手法を提供しています。また、DS28E17を使用する長いラインのアプリケーションでバス容量を確認するための基本的な計算式および設計原理も提供しています。