
ML671000 User’s Manual
Chapter 11 Universal Serial Bus Device Controller (USBC)
11-36
11.3.
Paired FIFO buffers Operation
Endpoints 2 and 3 has paried FIFO buffers. If either FIFO buffer is transferring data, the other is
automatically accessible for data transfers with the CPU or DMA controller.
11.3.1. Bulk (Interrupt) Transfers
1.
Receiving
Figure 11-49 shows FIFO buffer operation for a receive operation. (a) shows storage to FIFO_2
completing after read from FIFO_1 is complete; (b), before.
For a Bulk receive transfer, the FIFO buffers switch roles when a data receive operation completes
with no data remaining to be read from the other FIFO buffer.
(b) shows how the USB device controller returns a NAK for the data packet C OUT transaction
because both FIFO_1 and FIFO_2 contain receive data and thus cannot accept any more.
When data storage is complete for the FIFO buffer (FIFO_2) not currently being read, reading all
data from the FIFO buffer (FIFO_1) being read and resetting the receive packet ready bit does not
reset that bit.
OUT token
packet
ACK
Data packet B
OUT token
packet
ACK
Data packet A
Bus sequence
Data packet A stored
Read possible
Read data packet A
Storage possible
Storage
possible
FIFO_1 state
Storage possible
Data packet B stored
Read possible
FIFO_2 state
OUT token
packet
Data packet C
Data packet C stored
Receive packet ready
bit
Reset receive packet ready bit to
indicate end of packet A readout
Transfer request signal
(DREQ)
Assert
Read data packet B
Reset receive packet ready bit to
indicate end of packet B readout
Read not possible (no data)
Read complete
(a) Storage to FIFO_2 completing AFTER read from FIFO_1 is complete
Reset receive packet ready bit to
indicate end of packet B readout
OUT token
packet
ACK
Data packet B
OUT token
packet
ACK
Data packet A
Bus sequence
Data packet A stored
Read possible
Read data packet A
Storage possible
Storage
possible
FIFO_1 state
Storage possible
Data packet B
stored
Read possible
FIFO_2 state
OUT token
packet
Data packet D
Data packet D stored
Read data packet B
Receive packet ready
bit
Reset receive packet ready bit to
indicate end of packet A readout
Transfer request signal
(DREQ)
Assert
OUT token
packet
NAK
Data packet C
Read complete
Read not possible (no data)
Storage complete
(b) Storage to FIFO_2 completing BEFORE read from FIFO_1 is complete
Figure 11-49: Dual Queue Operation for Bulk Transfer Receive