インテルのみ表示可能 — GUID: ihg1481130617832
Ixiasoft
インテルのみ表示可能 — GUID: ihg1481130617832
Ixiasoft
20.5.5.3. 送信FIFOのオーバーフロー
DMAのバースト長を、DMA要求をトリガーするウォーターマーク・レベルよりも大きい値に設定すると、バースト送信先からの要求に対応する十分なスペースが送信FIFOにない場合に、オーバーフローが発生する可能性があります。そのため、次の計算式に従い、オーバーフローを回避する必要があります。†
DMAバースト長 <= FIFO_DEPTH - IC_DMA_TDLR
ケース2のIC_DMA_TDLR = 48の場合は、バースト要求が行われる時点の送信FIFO内のスペースは、DMAバースト長に等しくなります。そのため、バースト・トランザクションの完了時に送信FIFOがフルになることはありますが、オーバーフローすることはありません。†
よって、最適な動作を実現するには、DMAバースト長を、DMA送信要求をトリガーするFIFOレベルに設定する必要があります。†
DMAバースト長 = FIFO_DEPTH - IC_DMA_TDLR
この計算式に従うことで、ブロック転送に必要なDMAバーストの数を減らし、バスの使用率を高めます。†
転送時に、I2CコントローラーがI2Cシリアル送信ラインで1つもしくは複数のデータアイテムを正常に送信している場合は、DMAバースト転送の終わりに送信FIFOがフルにならないことがあります。†