USB Transactions
13-70
13.3.5.2
Autodecoded Control Read Transfers
Autodecoded control reads include the standard device request to get the end-
point and device status. These control read transfers access information that
is kept in registers inside the USB module, so local host code is not involved
in filling the read data into the TX FIFO.
The USB module returns the currently selected endpoint’s status information
(depending on the index value in the setup stage data packet) during the data
phase of the single IN transaction of the data stage and provides ACK as the
handshake for the status stage handshake phase. The local host receives no
interrupt.
Autodecoded Control Read Transfer Handshaking
The USB function module automatically provides ACK handshaking for all
transactions of all stages of autodecoded control read transfers, except if a
corrupted token packet is received, which is ignored by the USB module. The
FIFO_En and Stall_Cmd bits have no effect on the handshaking. If the status
packet has a DATA0 PID instead of a DATA1 PID, status is STALLed and no
interrupt is asserted to the local host. If the setup packet has a DATA1 PID
instead of a DATA0 PID, setup transaction is ignored (error).
Autodecoded Control Read Transfer Error Conditions
If the token phase or the data phase of a setup stage transaction has an error
(bad CRC, PID check or bit stuffing error), the USB block ignores the transac-
tion. The USB block does not provide ACK handshaking in this case.
Data errors during the data stage of autodecoded control write transfers are
handled in the standard way—any data stage transaction from the host in
which a data error occurs is ignored.
It is possible that the USB host sends a get endpoint/device status request with
a bad parameter. If the autodecode mechanism senses a bad parameter in the
setup stage data phase, the autodecode mechanism causes a STALL hand-
shake to be signaled during the data phase of the data stage and during the
status stage.