インテル® Agilex™ ハード・プロセッサー・システムのテクニカル・リファレンス・マニュアル

ID 683567
日付 1/19/2023
Public
ドキュメント目次

19.5.6.2.1. 例1: 送信FIFOのウォーターマーク・レベル = 64

以下のように仮定し、この例を検討します。†

DMAバースト長 = FIFO_DEPTH - DMATDLR

この場合、DMAバースト内で転送されるデータアイテムの数は、送信FIFOバッファーの空きスペースに等しくなります。

次の内容を考察します。

  • 送信FIFOのウォーターマーク・レベル = DMATDLR = 64 †
  • DMAバースト長 = FIFO_DEPTH - DMATDLR = 192 †
  • SPI送信におけるFIFO_DEPTH = 256 †
  • ブロック・トランザクション・サイズ = 960 †
図 96. 送信FIFOのウォーターマーク・レベル = 64

必要なバースト・トランザクションの数は、ブロックサイズをバーストあたりのデータアイテム数で割った値に等しくなります。

ブロック・トランザクション・サイズ/DMAバースト長 = 960/192 = 5

DMAブロック転送内のバースト・トランザクションの数は5ですが、ウォーターマーク・レベルであるDMATDLRが極めて低いため、送信FIFOバッファーにデータが残されていない際にSPIシリアル送信ラインでデータの送信が必要になる可能性が高くなります。これは送信アンダーフローの状態です。これは、FIFOバッファーが空になる前にDMA要求を処理する時間がDMAになかったことにより発生します。