JADZ021I January 2017 – August 2026 TMS320F280040-Q1 , TMS320F280040C-Q1 , TMS320F280041 , TMS320F280041-Q1 , TMS320F280041C , TMS320F280041C-Q1 , TMS320F280045 , TMS320F280048-Q1 , TMS320F280048C-Q1 , TMS320F280049 , TMS320F280049-Q1 , TMS320F280049C , TMS320F280049C-Q1
I2C:SDA および SCL のオープン ドレイン出力バッファに関する問題
0、A、B、D
SDA および SCL 出力は、I2C の仕様で求められているオープン ドレイン出力バッファではなく、プッシュプルの 3-state 出力バッファで実装されています。プッシュプルの 3-state 出力バッファは、オープン ドレイン出力のように動作させることも可能ですが、内部のタイミングスキューの問題により、出力が無効になる前に 0 ~ 5ns の間、論理 High を出力してしまう現象が発生します。予期しない High レベル パルスは、SCL または SDA 出力が駆動されている Low 状態からハイ インピーダンス状態へ遷移し、かつ該当する I2C 出力に十分な内部タイミング スキューが存在するときにのみ発生します。
この短い High レベル パルスは、I2C 信号ラインにエネルギーを注入し、その結果、伝送ライン内での複数の反射によって I2C 信号が一定期間リンギングを引き起こす原因となります。このリンギングは、SDA 信号に対しては問題を引き起こさないと考えられます。なぜなら、リンギングは SDA が論理レベルを変化させるタイミングでのみ発生し、受信デバイスがデータをラッチするまでに十分に減衰するためです。このリンギングの振幅が十分に大きい場合、リンギングの最初の数ナノ秒の間に SCL の入力バッファ スイッチングのスレッショルドを複数回クロスする可能性があり、それによってクロックのグリッチが発生するおそれがあります。このリンギングは、最初の 50ns 以内に振幅が減衰すれば問題にはなりません。I2C デバイスはクロックのグリッチを除去するために SCL 入力をフィルタリングする必要があるためです。したがって、PCB 信号パターンを設計して、リンギングの持続時間を 50ns 未満に制限することが重要です。リンギングを抑える 1 つの解決策として、SCL および SDA 端子の近くに直列終端抵抗を挿入し、伝送ラインの反射を減衰させることが挙げられます。
この問題は、スレーブ側が ACK サイクルを開始する際に、予期しない High レベル パルスの継続時間中、SDA 出力がスレーブの SDA 出力と競合状態になる可能性もあります。これは、予期しない High レベル パルスが発生する前に、スレーブがすでに SDA を Low に駆動している可能性があるために発生します。この短時間の競合によって SDA 上に発生するグリッチは、I2C プロトコル上の問題を引き起こすことはありませんが、ピーク電流が両方の I2C デバイスに不要なストレスを与え、電源ノイズの増加につながる可能性があります。したがって、この短時間の競合時に電流を制限するため、SDA 端子付近に直列終端抵抗を配置することが推奨されます。
同様の競合問題は、クロック ストレッチ機能をサポートする I2C スレーブ デバイスに接続されている場合、SCL ラインでも発生する可能性があります。これは、予期しない High レベル パルスが発生する前に、スレーブ側が SCL を Low に駆動しているために発生します。この短時間の競合によって SCL 上に発生するグリッチは、I2C プロトコル上の問題を引き起こすことはありません。これは、I2C デバイスが SCL 入力に対してグリッチ フィルタを適用する必要があるためです。ただし、ピーク電流は、両方の I2C デバイスに不要なストレスを与え、電源ノイズが増加する可能性があります。したがって、この短時間の競合時に電流を制限するため、SCL 端子付近に直列終端抵抗を配置することが推奨されます。
別のマスターが接続されている場合、SCL および SDA 出力における予期しない High レベル パルスが、クロック同期や調停の際に競合を引き起こす可能性があります。上記で説明した直列終端抵抗では、このような使用状況においても競合電流を制限し、I2C プロトコル上の問題を引き起こしません。
SCL および SDA 信号には直列終端抵抗を挿入し、SCL および SDA の端子付近に配置します。SCL および SDA プルアップ抵抗も、SCL および SDA 端子の近くに配置する必要があります。直列終端抵抗とプルアップ抵抗の配置は、図 3-4 に示されているように接続します。
図 3-4 直列終端抵抗とプルアップ抵抗の配置