11-62 SA-1100
Developer’s Manual
Peripheral Control Module
Figure 11-21. Control Transaction Formats
Control transfers are assembled by the host by first sending a control transaction to tell the UDC
what type of control transfer is taking place (control read or control write), followed by two or
more bulk data transactions. The control transaction, by default, uses a DATA0 transfer, and each
subsequent bulk data transaction toggles between DATA1 and DATA0 transfers. For a control write
to an endpoint, OUT transactions are used. For control reads, IN transactions are used. The transfer
direction of the last bulk data transaction is reversed. It is used to report status and functions as a
handshake. The last bulk data transaction always uses a DATA1 transfer by default (even if the
previous bulk transaction used DATA1). For a control write, the last transaction is an IN from the
UDC to the host, and for a control read, the last transaction is an OUT from the host to the UDC.
11.8.1.6 UDC Device Requests
The UDC’s control, status, and data registers are used only to control and monitor the transmit and
receive FIFOs for endpoints 1 and 2. All other UDC configuration and status reporting is controlled
by the host via the USB bus using device requests that are sent as control transactions to endpoint
0. Each setup packet to endpoint 0 is 8 bytes long and specifies:
• Data transfer direction: host to device, device to host
• Data transfer type: standard, class, vendor
• Data recipient: device, interface, endpoint, other
• Number of bytes to transfer
• Index or offset
• Value: used to pass a variable-sized data parameter
• Device request
Action Token Packet Data Packet Handshake Packet
UDC successfully received control from host SETUP DATA0 ACK
UDC temporarily unable to receive data SETUP DATA0 NAK
UDC endpoint needs host intervention SETUP DATA0 STALL
UDC detected PID, CRC, or bit stuff error SETUP DATA0
None
Packets from UDC to host are boldface