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

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

19.5.6.3. 送信FIFOバッファーのオーバーフロー

DMAトランザクションのバースト長を、DMA要求をトリガーするウォーターマーク・レベルよりも大きい値に設定すると、バースト送信先からの要求に対応する十分なスペースが送信FIFOバッファーにない場合に、オーバーフローが発生する可能性があります。そのため、次の計算式に従い、オーバーフローを回避する必要があります。†

DMAバースト長 <= FIFO_DEPTH - DMATDLR

例2の送信ウォーターマーク・レベル = 192の場合は、バースト要求が行われる時点の送信FIFOバッファー内のスペースは、DMAバースト長に等しくなります。そのため、バースト・トランザクションの完了時に送信FIFOバッファーがフルになることはありますが、オーバーフローすることはありません。

よって、最適な動作を実現するには、DMAバースト長を、送信DMA要求をトリガーするFIFOバッファーのレベルに設定する必要があります。すなわち、次のとおりです。†

DMAバースト長 = FIFO_DEPTH - DMATDLR

この計算式に従うことで、ブロック転送に必要なDMAバーストの数を減らし、バスの使用率を高めます。†

転送時に、SPIコントローラーがシリアル送信ラインで1つまたは複数のデータアイテムを正常に送信している場合は、DMAバースト転送の終わりに送信FIFOバッファーがフルにならないことがあります。†