Freescale Semiconductor MCF5329 Reference Manual page 507

Devices supported: mcf5327; mcf5328; mcf53281; mcf5329
Table of Contents

Advertisement

MULT is a two-bit field in the device queue head. Isochronous endpoints do
not use the variable length packet protocol.
NAK responses are not used. Instead, zero length packets are sent in response to an IN request to
unprimed endpoints. For unprimed RX endpoints, the response to an OUT transaction is to ignore
the packet within the device controller.
Prime requests always schedule the transfer described in the dTD for the next (micro)frame. If
ISO-dTD remains active after that frame, ISO-dTD holds ready until executed or canceled by the
DCD.
The USB OTG in host mode 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 managing 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 becomes primed only after a SOF is received. After the DCD writes the
prime bit, the prime bit clears as usual to indicate to software that the device controller completed a
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 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. After an ISO transaction is started in a (micro)frame, it retires 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 frame after the transfer failed to complete wholly, and the device controller retires the
current ISO-dTD and move to the next ISO-dTD.
Fulfillment errors are only caused due to partially completed packets. If no activity occurs to a primed
ISO-dTD, the transaction stays primed indefinitely. This means it is up to software must 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 managing. 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
Freescale Semiconductor
NOTE
MCF5329 Reference Manual, Rev 3
Universal Serial Bus Interface – On-The-Go Module
21-65

Advertisement

Table of Contents
loading

Table of Contents