UM10503
All information provided in this document is subject to legal disclaimers.
© NXP B.V. 2012. All rights reserved.
User manual
Rev. 1.3 — 6 July 2012
573 of 1269
NXP Semiconductors
UM10503
Chapter 23: LPC43xx USB0 Host/Device/OTG controller
An EHCI compatible host controller uses the periodic frame list to schedule data
exchanges to Isochronous endpoints. The operational model for device mode does not
use such a data structure. Instead, the same dTD used for Control/Bulk/Interrupt
endpoints is also used for isochronous endpoints. The difference is in the handling of the
dTD.
The first difference between bulk and ISO-endpoints is that priming an ISO-endpoint is a
delayed operation such that an endpoint will become primed only after a SOF is received.
After the DCD writes the prime bit, the prime bit will be cleared as usual to indicate to
software that the device controller completed priming the dTD for transfer. Internal to the
design, the device controller hardware masks that prime start until the next frame
boundary. This behavior is hidden from the DCD but occurs so that the device controller
can match the dTD to a specific (micro) frame.
Another difference with isochronous endpoints is that the transaction must wholly
complete in a (micro) frame. Once an ISO transaction is started in a (micro) frame it will
retire the corresponding dTD when MULT transactions occur or the device controller finds
a fulfillment condition. The transaction error bit set in the status field indicates a fulfillment
error condition. When a fulfillment error occurs the device controller will force-retire the
ISO-dTD and move to the next ISO-dTD.
It is important to note that fulfillment errors are only caused due to partially completed
packets. If no activity occurs to a primed ISO-dTD, the transaction will stay primed
indefinitely. This means it is up to software discard transmit ISO-dTDs that pile up from a
failure of the host to move the data. Finally, the last difference with ISO packets is in the
data level error handling. When a CRC error occurs on a received packet, the packet is
not retried similar to bulk and control endpoints. Instead, the CRC is noted by setting the
Transaction Error bit and the data is stored as usual for the application software to sort
out.
TX packet retired
•
MULT counter reaches zero.
•
Fulfillment Error [Transaction Error bit is set].
•
# Packets Occurred > 0 AND # Packets Occurred < MULT.
Remark:
For TX-ISO, MULT Counter can be loaded with a lesser value in the dTD
Multiplier Override field. If the Multiplier Override is zero, the MULT Counter is initialized to
the Multiplier in the QH.
RX packet retired
•
MULT counter reaches zero.
•
Non-MDATA Data PID is received.
Remark:
Exit criteria only valid in hardware version 2.3 or later. Previous to hardware
version 2.3, any PID sequence that did not match the MULT field exactly would be
flagged as a transaction error due to PID mismatch or fulfillment error.
•
Overflow Error:
–
Packet received is > maximum packet length. [Buffer Error bit is set].
–
Packet received exceeds total bytes allocated in dTD. [Buffer Error bit is set].
•
Fulfillment error [Transaction Error bit is set]: