USB Transactions
13-72
Specific Local Host Required Actions
If the device receives a valid set endpoint halt feature request, it must set the
appropriate Set_Halt control bit.
If the device receives a valid clear endpoint halt feature request, it must set the
appropriate Reset_EP bit to clear halt condition, set FIFO flags, and reset data
PID to DATA0 for the endpoint. If specified endpoint number is 0, the local host
has only to set the Clr_Halt bit to clear halt condition.
If the device receives a valid set configuration request, it must reset all end-
points by setting the Reset_EP control bits, set the Self_Pwr bit to the appropri-
ate value, and set halt conditions for endpoints not used by the default inter-
face set for the configuration. If the device was addressed when the set config-
uration was received, the local host must write 1 to the Dev_Cfg bit to allow
the device to move into the configured state (the CFG bit set). If the device was
configured when the set configuration was received, and new configuration
value is 0, the local host must write 1 to the Clr_Cfg bit to allow the device to
move back into the addressed state (the CFG bit cleared).
If the device receives a valid set interface request, it must reset all endpoints
used by the interface set by setting the Reset_EP control bits and must set the
halt conditions for endpoints not used by this interface.
Other local host required actions are specific to the request and not detailed
in this document.
Non-Autodecoded Control Write Transfer Handshaking
Setup stage transactions that are valid are signaled ACK. Transactions with
invalid setup stage token or data packets are ignored and receive no hand-
shake packet from the USB module. No interrupt is generated.
Data stage handshaking for non-autodecoded control write transfers is depen-
dant on the endpoint 0’s FIFO_En, EP_Halted, and Stall_Cmd bits. The local
host may delay completion of any transaction of the data stage by signaling
NAK (via the Set_FIFO_En bit not set). The USB specification requires that
once a STALL is signaled in a control transfer, it must be signaled on that end-
point until the next setup token is received. Either the Stall_Cmd or the
Set_Halt (reflected in the EP_Halted register bit) register bits provide this func-
tionality. Also note that the EP_Halted bit does not reflect the forced STALL
caused by the Stall_Cmd bit; it retains its previous value.