Atmel ARM-Based Evaluation Kit for SAM4S16C, 32-Bit ARM® Cortex® Microcontroller ATSAM4S-WPIR-RD ATSAM4S-WPIR-RD Data Sheet

Product codes
ATSAM4S-WPIR-RD
Page of 1231
SAM4S Series [DATASHEET]
Atmel-11100G-ATARM-SAM4S-Datasheet_27-May-14
1014
40.6.2.4 Stall Handshake
A stall handshake can be used in one of two distinct occasions. (For more information on the stall handshake, refer 
to Chapter 8 of the Universal Serial Bus Specification, Rev 2.0.)
A functional stall is used when the halt feature associated with the endpoint is set. (Refer to Chapter 9 of the 
Universal Serial Bus Specification, Rev 2.0, 
for more information on the halt feature.)
To abort the current request, a protocol stall is used, but uniquely with control transfer.
The following procedure generates a stall packet:
1. The microcontroller sets the FORCESTALL flag in the UDP_CSRx endpoint’s register.
2. The host receives the stall packet.
3. The microcontroller is notified that the device has sent the stall by polling the STALLSENT to be set. An 
endpoint interrupt is pending while STALLSENT is set. The microcontroller must clear STALLSENT to clear 
the interrupt.
When a setup transaction is received after a stall handshake, STALLSENT must be cleared in order to prevent 
interrupts due to STALLSENT being set.
Figure 40-12. Stall Handshake (Data IN Transfer) 
Figure 40-13. Stall Handshake (Data OUT Transfer) 
Data IN 
Stall PID
PID
USB Bus
Packets
Cleared by Firmware
Set by Firmware
FORCESTALL 
STALLSENT
Set by
USB Device
Cleared by Firmware
Interrupt Pending
Data OUT PID  
Stall PID
 
Data OUT
USB Bus
Packets
Cleared by Firmware
Set by Firmware
FORCESTALL 
STALLSENT
Set by USB Device
Interrupt Pending