ISO OUT Token
Data
Successful data transfer from USB Host
No handshake occurs. EP RX FIFO contains received data after data packet
completes. No interrupt occurs.
Indicates a packet received by the device
Indicates a packet sent by the device
SOF Token
Reception of SOF causes SOF interrupt.
Note: An SOF interrupt is generated even if the SOF packet is corrupted.
SOF Interrupt
LH code for SOF interrupt service routine must fill all isochronous in EP TX FIFOs
with new transmit data and pull new receive data from all Isochronous Out EP RX
FIFOs.
USB Device Controller
1601
SPNU503C – March 2018
Copyright © 2018, Texas Instruments Incorporated
Universal Serial Bus (USB)
Figure 29-53. Isochronous OUT Transaction Phases and Interrupts
29.3.5.1 Isochronous OUT Endpoint Handshaking
Because isochronous endpoint transactions have no handshake packets, the STAT_FLG.STALL,
STAT_FLG.NAK, and STAT_FLG.ACK bits for isochronous endpoints always return 0. Because there is
no handshake, the endpoint-specific interrupt for isochronous endpoints is not used.
29.3.5.2 Isochronous OUT Transaction Error Conditions
If the CPU fails to read all of the data in the ISO OUT endpoint foreground FIFO by the time the
foreground and background FIFOs are switched (at the next SOF), the endpoint FIFO that is being
switched to the background is flushed, and the STAT_FLG.DATA_FLUSH bit is asserted for the duration
of the next frame.
There is no special indication for the case in which the USB host does not provide a transaction to an ISO
OUT endpoint during a frame, but once the FIFO that was background in that frame is foreground, the
FIFO is empty (a 0-length data ISO OUT transaction also results in an empty FIFO and cannot be
distinguished from a missed ISO OUT transaction).
If an ISO OUT transaction occurs with data error (CRC, PID check, or bit stuffing), the RX FIFO is empty
at the next SOF interrupt, and the STAT_FLG.ISO_ERR bit is asserted for the duration of the next frame.
29.3.5.3 Isochronous OUT Endpoint FIFO Error Conditions
The CPU must never read more data than the value given by RXFSTAT.RXF_COUNT.
If the USB host sends more data than the FIFO can contain, the FIFO is cleared and the
STAT_FLG.ISO_ERR is set at the next SOF interrupt. A properly configured USB system does not do this.
NOTE:
Both foreground and background isochronous FIFOs are cleared when the CTRL.CLR_EP
bit is set.