SPI/QSPI の RxFIFO の「not empty status」ビットをアップデートするときに遅延があります。
このため、RxFIFO にデータがないのにもかかわらずソフトウェアではまだデータがあるものと間違って判断され、RxFIFO がアンダーランになります。
これが原因で無効なデータが読み出されます。
この状況を回避するには、ソフトウェアで「not empty status」ビットを 2 回読み出す必要があります。
これでコントローラーに時間の余裕ができ、ステータス ビットをアップデートすることができます。
この動作は SPI コントローラー ソフトウェアで検出されていますが、Quad-SPI コントローラー ソフトウェアでは検出されていません。
影響: 深刻な問題ではありません。FIFO のアンダーランが発生する可能性があり、無効なデータが読み出されます。
回避策: ステータス レジスタを 2 回読み出し、2 回目の「not empty status」ビットの値を使用します。
対象となるコンフィギュレーション: SPI または Quad-SPI コントローラーを使用するシステム
対象となるデバイス リビジョン: 修正予定なし。(Xilinx Answer 47916) - 「Zynq-7000 SoC デバイス - シリコン リビジョン間の相違点」を参照してください。
ステータス レジスタを 2 回読み出し、2 回目の「not empty status」ビットの値を使用してください。
Answer Number | アンサータイトル | 問題の発生したバージョン | 修正バージョン |
---|---|---|---|
47916 | Zynq-7000 AP SoC デバイス - シリコン リビジョン間の相違点 | N/A | N/A |
AR# 47575 | |
---|---|
日付 | 06/13/2018 |
ステータス | アクティブ |
種類 | デザイン アドバイザリ |
デバイス |