English
Language : 

K60P100M100SF2RM Datasheet, PDF (1242/1809 Pages) Freescale Semiconductor, Inc – K60 Sub-Family Reference Manual
Programmers Interface
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.
USB RST
SOF
USB_RST
Interrupt Generated
SETUP TOKEN
SOF Interrupt Generated
DATA
ACK
IN TOKEN
DATA
ACK
TOK_DNE
Interrupt Generated
OUT TOKEN
DATA
ACK
TOK_DNE
Interrupt Generated
USB Host
Function
Figure 45-4. USB Token Transaction
TOK_DNE
Interrupt Generated
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 45-5. USB Responses to DMA Overrun Errors
Errors due to Memory Latency
Non-Acknowledgment (NAK) or Bus Timeout (BTO) — See
bit 4 in "Error Interrupt Status Register (ERR_STAT)" as
appropriate for the class of transaction.
Errors due to Oversized Packets
Continues acknowledging (ACKing) the packet for non-
isochronous transfers.
Table continues on the next page...
1242
K60 Sub-Family Reference Manual, Rev. 6, Nov 2011
Freescale Semiconductor, Inc.