インテルのみ表示可能 — GUID: myu1481130518621
Ixiasoft
インテルのみ表示可能 — GUID: myu1481130518621
Ixiasoft
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 †
必要なバースト・トランザクションの数は、ブロックサイズをバーストあたりのデータアイテム数で割った値に等しくなります。
ブロック・トランザクション・サイズ/DMAバースト長 = 960/192 = 5
DMAブロック転送内のバースト・トランザクションの数は5ですが、ウォーターマーク・レベルであるDMATDLRが極めて低いため、送信FIFOバッファーにデータが残されていない際にSPIシリアル送信ラインでデータの送信が必要になる可能性が高くなります。これは送信アンダーフローの状態です。これは、FIFOバッファーが空になる前にDMA要求を処理する時間がDMAになかったことにより発生します。