27.3.1.5.1 Stalled Control Transfer
The USB controller automatically issues a STALL handshake to a control transfer under the following conditions:
- The host sends more data during an OUT data phase of a control transfer than was specified in the device request during the SETUP phase. This condition is detected by the USB controller when the host sends an OUT token (instead of an IN token) after the last OUT packet has been unloaded and the DATAEND bit in the USB Control and Status Endpoint 0 Low (USBCSRL0) register has been set.
- The host requests more data during an IN data phase of a control transfer than was specified in the device request during the SETUP phase. This condition is detected by the USB controller when the host sends an IN token (instead of an OUT token) after the CPU has cleared TXRDY and set DATAEND in response to the ACK issued by the host to what should have been the last packet.
- The host sends more than USBRXMAXPn bytes of data with an OUT data token.
- The host sends more than a zero length data packet for the OUT STATUS phase.