AR# 47575

Zynq-7000 SoC、SPI/QSPI - RxFIFO の「not empty status」が時間内にアップデートされない

説明

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 SoC デバイス - シリコン リビジョン間の相違点 N/A N/A
AR# 47575
日付 06/13/2018
ステータス アクティブ
種類 デザイン アドバイザリ
デバイス