USB Transactions
13-78
-
Transactions on endpoints other than zero are ignored if the device is not
configured (addressed state).
-
If some endpoints are not used by the interface currently set, transactions
on these endpoints are not ignored; the local host must set the Halt feature
for the endpoint. This does not happen if the USB host works correctly.
-
If endpoint 0 is halted, per USB 1.1 specification (see USB 1.1 specifica-
tion, section 9.4.5: Get_Status), all requests are stalled except GET_
STATUS, CLEAR_FEATURE, and SET_FEATURE requests.
-
Requests are handled per specification USB 1.1, when specified in this
specification, but many device reactions are not specified by USB 1.1.
13.3.5.6
Note on Control Transfers Data Stage Length
The control transfer data stage length is indicated in setup data packet.
During control reads, if the USB host requests more data than indicated in set-
up packet, an unexpected IN transaction is STALLed, causing STALL hand-
shake 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 local
host will not have enabled the RX FIFO.
During control writes, if the USB host sends more bytes than indicated in setup
packet, the transfer is STALLed. If the USB host sends less 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 local host will not have enabled the TX FIFO.