Software Interface
MCF548x Reference Manual, Rev. 3
Freescale Semiconductor 29-55

29.4.3.8 Isochronous Operations

Isochronous operations are a special case of USB traffic. Instead of guaranteeing delivery with unbounded
latency, isochronous traffic flows over the bus at a guaranteed rate with no error checking.
29.4.3.8.1 Isochronous Transfer Summary
The USB host guarantees an endpoint at most 3 isochronous packets per microframe (or 24 packets per
frame or 24 MBytes per second). Isochronous packets may range from 0 bytes to 1023 bytes. Please refer
to the USB specification for more information on isochronous transfer.
Given that isochronous packets may be as large as 1023 bytes, it may not be practical to implement large
FIFOs for each endpoint. Instead, the software drivers are responsible for keeping the FIFOs serviced.
Each time an IN or OUT request is received on an isochronous endpoint, the software drivers must ensure
that the correct amount of data can be transferred without allowing the FIFO to go empty. If the FIFO goes
empty during an isochronous packet transfer, the host will terminate the packet immediately and the device
loses its time slot until the next USB frame.
In order to allow the driver software to maintain synchronization with the USB host, the USB maintains a
register which holds the current USB frame number. The start of frame maskable interrupt (USBISR[SOF]
and USBIMR[SOF]) along with the frame number register (FRMNUMR) may be used for this
synchronization.