Architecture
1671
SPRUH82C – April 2013 – Revised September 2016
Copyright © 2013–2016, Texas Instruments Incorporated
Universal Serial Bus 2.0 (USB) Controller
Step 4 (CDMA completes the packet transfer for Receive):
1. After the entire packet has been received, the CDMA writes the packet descriptor to main memory.
2. The CDMA then writes the packet descriptor to the RXCQ specified in the Queue Manager / Queue
Number fields in the RX Global Configuration Register.
3. The Queue Manager then indicates the status of the RXCQ to the CPU via an interrupt.
4. The CPU can then process the received packet by popping the received packet information from the
RXCQ and accessing the packet’s data from main memory.
34.2.8.13 Interrupt Handling
lists the interrupts generated by the USB controller.
Table 34-27. Interrupts Generated by the USB Controller
Interrupt
Description
Tx Endpoint [4-0]
Tx endpoint ready or error condition. For endpoints 4 to 0. (Rx and Tx for endpoint 0)
Rx Endpoint [4-1]
Rx endpoint ready or error condition. For endpoints 4 to 1. (Endpoint 0 has interrupt status in
Tx interrupt)
USB Core[8-0]
Interrupts for 9 USB conditions
Whenever any of these interrupt conditions are generated, the host processor is interrupted. The software
needs to read the different interrupt status registers (discussed in later section) to determine the source of
the interrupt.
The nine USB interrupt conditions are listed in
.
Table 34-28. USB Interrupt Conditions
Interrupt
Description
USB[8]
DRVVBUS level change
USB[7]
VBus voltage < VBus Valid Threshold (VBus error)
USB[6]
SRP detected
USB[5]
Device Disconnected (Valid in Host Mode)
USB[4]
Device Connected (Valid in Host Mode)
USB[3]
SOF started
USB[2]
Reset Signaling detected (In Peripheral Mode)
Babble detected (In Host Mode)
USB[1]
Resume signaling detected
USB[0]
Suspend Signaling detected
34.2.8.13.1 USB Core Interrupts
Interrupt status can be determined using the INTSRCR (interrupt source) register. This register is non-
masked. To clear the interrupt source, set the corresponding interrupt bit in INTCLRR register. For
debugging purposes, interrupt can be set manually through INTSETR register.
The interrupt controller provides the option of masking the interrupts. A mask can be set using
INTMSKSETR register and can be cleared by setting the corresponding bit in the INTMSKCLRR register.
The mask can be read from INTMSKR register. The masked interrupt status is determined using the
INTMASKEDR register.
The host processor software should write to the End Of Interrupt Register (EOIR) to acknowledge the
completion of an interrupt.