DMA Operation
13-123
USB Function Module
Figure 13–43. Non-Isochronous TX DMA Done Interrupt Handler
Non-ISO TX DMA
done handler
No
Yes
Start new DMA transfer
of 1024 EP buffer size.
XSWLn = XSWLn – 1
EOTn = 1?
Yes
XSWLn = 0?
Inform the
application that
the TX DMA
transfer is
completed.
No
FBTn = 0?
Yes
No
Initiate new DMA transfer:
TXDMAn.TXn_TSC = 0,
TXDMAn.TXn_EOT = 0,
TXDMAn.TXn_Start = 1
FBTn = 0
Needed for next pass
Start new DMA transfer
of FBTn EP buffer size.
Needed for next pass
Start new DMA transfer
of EOTBn bytes
(could be null packet).
End of non-ISO
TX DMA handler
Set
IRQ_SRC.TXn_Done = 1
to clear the IT.
Read the endpoint umber
n in DMAN_STAT.
DMAn_TX_IT_src
register.
Initiate new DMA transfer:
TXDMAn.TXn_TSC = FBTn,
TXDMAn.TXn_EOT = 0,
TXDMAn.TXn_Start = 1
Initiate new DMA transfer:
TXDMAn.TXn_TSC = EOTBn,
TXDMAn.TXn_EOT = 1,
TXDMAn.TXn_Start = 1