AR# 60695

Zynq-7000 SoC、I2C - リピート スタートの際に I2C でアービトレーションが実行されない

説明

リピート スタートの際に I2C でアービトレーションが実行されません。

ソリューション

I2C コントローラーをマルチマスター バスのマスターとして使用すると、このコントローラーで別のマスター I2C コントローラーがリピート スタートのために SDA を Low に駆動したことが検出されません。 

次のすべての条件が満たされている場合、この I2C コントローラーがバス上のトランザクションを破損することがあります。

  • もう 1 つのマスターが同時にトランザクションを開始する。
     
  • もう 1 つのマスターが同じスレーブをアドレス指定している。
     
  • もう 1 つのマスターが同じトランザクション (読み出しまたは書き込み) を選択している。
    書き込みの場合、もう 1 つのマスターが同じデータを駆動する。
    読み出しの場合、もう 1 つのマスターが同時に ACK を送信する。
     
  • もう 1 つのマスターが、同じ量のデータを読み出しまたは書き込む。
     
  • トランザクションの最後で、もう 1 つのマスターがリピート スタートを発行する。

 

 
影響

深刻な問題です。
上記に説明した状況下では、I2C コントローラーがもう 1 つのマスター I2C コントローラーからのリピート スタートを検出せず、もう 1 つのマスター I2C コントローラーのトランザクション中に SDA を Low に駆動することがあります。


ただし、このような状況が発生するのは非常にまれです。
 
回避策:

HOLD ビットを常に 0 にクリアすることにより、リピート スタートをディスエーブルにします。
 
対象となる構成:

マルチマスター バスで I2C コントローラーをマスターとして使用するすべての Zynq デバイス。
 
対象となるデバイス リビジョン:

すべて。修正予定はありません。(Xilinx Answer 47916) - 「Zynq-7000 SoC デバイス - シリコン リビジョン間の相違点」を参照してください。
 
解決策:                

これはサードパーティのエラッタです。修正予定はありません。

アンサー レコード リファレンス

マスター アンサー レコード

Answer Number アンサータイトル 問題の発生したバージョン 修正バージョン
47916 Zynq-7000 SoC デバイス - シリコン リビジョン間の相違点 N/A N/A
AR# 60695
日付 05/28/2018
ステータス アクティブ
種類 デザイン アドバイザリ
デバイス