User manual

Table Of Contents
Zynq-7000 AP SoC Technical Reference Manual www.xilinx.com 421
UG585 (v1.11) September 27, 2016
Chapter 15: USB Host, Device, and OTG Controller
Rx dTD Completes
All packets described in dTD were successfully received. Total bytes in dTD equals 0 when this
occurs.
A short packet (number of bytes < maximum packet length) was received. This is a successful
transfer completion; the DCD must check Total Bytes in dTD to determine the number of bytes
that are remaining. From the total bytes remaining in the dTD, the DCD can compute the actual
bytes received.
A long packet was received (number of bytes > maximum packet size) OR (total bytes received >
total bytes specified). This is an error condition. The device controller will discard the remaining
packet, and set the Buffer Error bit in the dTD. In addition, the endpoint will be flushed and the
USBERR interrupt will become active.
On the successful completion of the packet(s) described by the dTD, the active bit in the dTD will be
cleared and the next pointer will be followed when the Terminate bit is clear. When the Terminate bit
is set, the device controller will flush the endpoint/direction and cease operations for that
endpoint/direction.
On the unsuccessful completion of a packet (see long packet above), the dQH is left pointing to the
dTD that was in error. In order to recover from this error condition, the DCD must properly reinitialize
the dQH by clearing the active bit and update the next dTD pointer before attempting to re-prime
the endpoint.
Note: All packet level errors such as a missing handshake or CRC error are retried automatically by
the device controller.
There is no required interaction with the DCD for handling such errors.
Interrupt and Bulk Endpoint Bus Response
The shaded column in Table 15-9 is the normal operating mode.
Table 15-9: USB Device Interrupt and Bulk Endpoint Bus Response
Packet
Identifier
Stall Bit
[TXS]
Endpoint
Not Primed
Endpoint
Primed
Buffer
Underflow
Buffer
Overflow
Endpoint
Not Enabled
Setup Ignore Ignore Ignore N/A N/A BTO
IN STALL NAK Transmit BS Error N/A BTO
OUT STALL NAK
Receive and
then
NYET/ACK
N/A NAK BTO
Ping STALL NAK
ACK N/A N/A BTO