USB Device Controller
1611
SPNU503C – March 2018
Copyright © 2018, Texas Instruments Incorporated
Universal Serial Bus (USB)
Table 29-55. Autodecoded Versus Non-Autodecoded Control Requests
(1) (2) (3) (4)
(continued)
Request
Recipient
Status
CPU Required Action
Device Behavior if
Device Is Not Configured
GET_
DESCRIPTOR
All
Non-
autodecoded
The CPU must write descriptor data
into endpoint 0 FIFO.
Command is passed to the CPU.
SET_
DESCRIPTOR
All
Non-
autodecoded
The CPU must stall the command (via
SYSCON2.STALL_CMD bit) if it does
not support set descriptor requests.
Command is passed to the CPU.
GET/SET
CONFIGURATION
Device
Non-
autodecoded
The CPU must stall the command (via
SYSCON2.STALL_CMD bit) if
configuration number is not correct. If
the request is SET_CONFIG, the CPU
must reset all endpoints, halt endpoints
not used by the default interface
setting, set SYSCON1.SELF_PWR
value if device is self-powered for the
configuration set, and then set
SYSCON2.DEV_CFG bit (if config nb is
not 0), or set SYSCON2.CLR_CFG bit
(if config nb is 0) before allowing status
stage to complete.
The device moves to configured state
(if DEV_CFG set), or moves to
addressed state (if CLR_CFG set) and
a DS_CHG interrupt is asserted to the
CPU.
Command is passed to the CPU.
GET/SET
INTERFACE
Interface
Non-
autodecoded
The CPU must stall the command (via
SYSCON2.STALL_CMD bit) if
interface/setting number is not correct.
If the request is SET_INTER-FACE, the
CPU must reset endpoints used by the
interface and halt endpoints not used
by the interface setting before allowing
status stage to complete.
Command is passed to the CPU.
SYNCH_
FRAME
Endpoint
Non-
autodecoded
The CPU must stall the command if it
does not support SYNCH_FRAME
request, else write requested data in
the endpoint 0 FIFO.
Command is passed to the CPU.
29.3.7.6 Note on Control Transfers Data Stage Length
The control transfer data stage length is indicated in the setup data packet.
During control reads, if the USB host requests more data than indicated in the setup packet, unexpected
IN transaction is STALLed, causing STALL handshake for all remaining transactions of the transfer until
next SETUP. If the USB host requires less data than indicated in the setup packet, the transfer is not
STALLed. However, if the host moves to status stage earlier than expected for a non-autodecoded
request, the OUT status stage is NAKed because the CPU has not enabled the RX FIFO.
During control writes, if the USB host sends more bytes than indicated in the setup packet, the transfer is
STALLed. If the USB host sends fewer bytes than were expected, the request is accepted. But if the USB
host moves to status stage earlier than expected for a non-autodecoded request, the IN status stage is
NAKed because the CPU has not enabled the TX FIFO.
29.3.8 USB Device Initialization
To allow communication between the device and a USB host, the CPU must configure the device by filling
the configuration registers.