Datasheet

Table Of Contents
Section 15 Universal Serial Bus Interface (USB)
REJ09B0140-0900 Rev. 9.00 Page 573 of 846
Sep 16, 2010
H8S/2215 Group
15.5.11 Stall Operations
(1) Overview
This section describes stall operations in the USB function module. There are two cases in which
the USB function module stall function is used:
1. When the firmware forcibly stalls an endpoint for some reason
2. When a stall is performed automatically within the USB function module due to a USB
specification violation
The USB function module has internal status bits that hold the status (stall or non-stall) of each
endpoint. When a transaction is sent from the host, the module references these internal status bits
and determines whether to return a stall to the host. These bits cannot be cleared by the
application; they must be cleared with a Clear Feature command from the host.
(2) Forcible Stall by Firmware
The firmware uses UESTL to issue a stall request for the USB function module. When the
firmware wishes to stall a specific endpoint, it sets the corresponding EPnSTL bit (1-1 in figure
15.23). The internal status bits are not changed.
When a transaction is sent from the host for the endpoint for which the EPnSTL bit was set, the
USB function module references the internal status bit, and if this is not set, references the
corresponding EPnSTL bit (1-2 in figure 15.23). If the corresponding EPnSTL bit is not set, the
internal status bit is not changed and the transaction is accepted. If the corresponding EPnSTL bit
is set, the USB function module sets the internal status bit and returns a stall handshake to the host
(1-3 in figure 15.23).
Once an internal status bit is set, it remains set until cleared by a Clear Feature command from the
host, without regard to EPnSTL. Even after a bit is cleared by the Clear Feature command (3-1 in
figure 15.23), the USB function module continues to return a stall handshake while the EPnSTL
bit is set, since the internal status bit is set each time a transaction is executed for the
corresponding endpoint (1-2 in figure 15.23). To clear a stall, therefore, it is necessary for the
corresponding EPnSTL bit to be cleared by the firmware, and also for the internal status bit to be
cleared with a Clear Feature command (2-1 to 2-3 in figure 15.23).