Datasheet

Section 14 Universal Serial Bus (USB)
Rev.7.00 Dec. 24, 2008 Page 519 of 698
REJ09B0074-0700
(3) Automatic Stall by USB Function Module
When a stall setting is made with the Set Feature command, when the information of this
module differs from that returned to the host by the Get Descriptor, or in the event of a USB
specification violation, the USB function module automatically sets the internal status bit for
the corresponding endpoint without regarding to EPnSTL, and returns a stall handshake (1-1 in
figure 14.21).
Once an internal status bit is set, it remains set until cleared by a Clear Feature command from
the host, without regarding to EPnSTL. After a bit is cleared by the Clear Feature command,
EPnSTL is referred (3-1 in figure 14.21). The USB function module continues to return a stall
handshake while the internal status bit is set, since the internal status bit is set even if a
transaction is executed for the corresponding endpoint (2-1 and 2-2 in figure 14.21). To clear a
stall, therefore, the internal status bit must be cleared with a Clear Feature command (3-1 in
figure 14.21). If set by the firmware, EPnSTL should also be cleared (2-1 in figure 14.21).
(1) Transition from normal operation to stall
(2) When transaction is performed whill internal status bit is set
Stall handshake
Transaction request
Stall handshake
(2-2)
Clear Feature command
(3) When Clear Feature is sent before transaction is performed
(3-1)
1. In case of USB
specification violation,
USB function module
stalls endpoint
automatically.
1. Transmit stall
handshake
1. Clear the internal
status bit to 0
2. No change in
EPnSTL bit
1. Receive IN/OUT
token from the host
2. Internal status bit has
been set to 1
3. EPnSTL is not
referred to
4. No change internal
status bit
Normal status restored
Internal status bit
0 1
EPnSTL
0
Internal status bit
1
EPnSTL
0
Internal status bit
1
EPnSTL
0
Internal status bit
1 0
EPnSTL
0
Stall status maintained
USB function module
To (2-1) or (3-1)
(1-1)
(2-1)
Figure 14.21 Automatic Stall by USB Function Module