Information

5. When the microprocessor processes the TOK_DNE interrupt, it reads from the status
register all the information needed to process the endpoint.
6. At this point, the microprocessor allocates a new BD so additional USB data can be
transmitted or received for that endpoint, and then processes the last BD.
The following figure shows a timeline of how a typical USB token is processed after the
BDT is read and OWN=1.
SETUP TOKEN DATA ACK
USB RST SOF
IN TOKEN
DATA ACK
OUT TOKEN DATA ACK
USB_RST
Interrupt Generated
USB Host Function
TOK_DNE
Interrupt Generated
SOF Interrupt Generated
TOK_DNE
Interrupt Generated
TOK_DNE
Interrupt Generated
Figure 42-4. USB Token Transaction
The USB has two sources for the DMA overrun error:
Memory Latency
The memory latency on the BVCI initiator interface may be too high and cause the
receive FIFO to overflow. This is predominantly a hardware performance issue,
usually caused by transient memory access issues.
Oversized Packets
The packet received may be larger than the negotiated MaxPacket size. Typically, this
is caused by a software bug. For DMA overrun errors due to oversized data packets,
the USB specification is ambiguous. It assumes correct software drivers on both sides.
NAKing the packet can result in retransmission of the already oversized packet data.
Therefore, in response to oversized packets, the USB core continues ACKing the
packet for non-isochronous transfers.
Table 42-5. USB Responses to DMA Overrun Errors
Errors due to Memory Latency Errors due to Oversized Packets
Non-Acknowledgment (NAK) or Bus Timeout (BTO) — See
bit 4 in "Error Interrupt Status Register (ERR_STAT)" as
appropriate for the class of transaction.
Continues acknowledging (ACKing) the packet for non-
isochronous transfers.
Table continues on the next page...
Programmers Interface
K20 Sub-Family Reference Manual, Rev. 6, Nov 2011
1056 Freescale Semiconductor, Inc.