
UM10375
All information provided in this document is subject to legal disclaimers.
© NXP B.V. 2011. All rights reserved.
User manual
Rev. 3 — 14 June 2011
165 of 368
NXP Semiconductors
UM10375
Chapter 10: LPC13xx USB device controller
For OUT isochronous endpoints, the data will always be written irrespective of the buffer
status. For IN isochronous endpoints, the data available in the buffer will be sent only if the
buffer is validated; otherwise, an empty packet will be sent.
There will not be any interrupt generated specific to isochronous endpoints other than the
frame interrupt.
It is assumed that the Isochronous pipe is open at the reception of a request "Set Interface
(alternate setting > 0)". This request is sent to the interface to which the isochronous
endpoint belongs.
This means that the device is expecting the first isochronous transfer within the
millisecond.
10.13.5 Automatic stall feature
The USB block includes a Hardware STALL mechanism. H/W STALL will occur in
the following control transactions:
•
Data stage consists of INs, the status is a single OUT transaction with an empty
packet sent by the host.
•
Data stage consists of OUTs, the status is a single IN transaction, for which the device
respond with an empty packet.
•
Setup stage followed by a Status stage consisting of an IN transaction, for which the
device respond with empty packet.
A STALL will
not
occur in the following situations:
•
Data stage consists of OUTs, the status is a single IN transaction, for which the device
respond with a non-empty packet.
•
Setup stage followed by a Status stage consisting of an IN transaction, for which the
device respond with a non-empty packet.
10.14 Double-buffered endpoint operation
The Bulk and Isochronous endpoints of the USB Device Controller are double-buffered to
increase data throughput.
For the following discussion, the endpoint buffer currently accessible to the CPU for
reading or writing is said to be the active buffer.
10.14.1 Bulk endpoints
For Bulk endpoints, the active endpoint buffer is switched by the SIE Clear Buffer or
Validate Buffer commands.
The following example illustrates how double-buffering works for a Bulk OUT endpoint in
Slave mode:
Assume that both buffer 1 (B_1) and buffer 2 (B_2) are empty, and that the active buffer is
B_1.