User manual

Table Of Contents
Zynq-7000 AP SoC Technical Reference Manual www.xilinx.com 420
UG585 (v1.11) September 27, 2016
Chapter 15: USB Host, Device, and OTG Controller
Note: The dQH.Mult field must be set to 00 for Bulk, Interrupt, and Control endpoints.
The dQH.ZLT bit operates as follows on Bulk and Control transfers:
dQH.ZLT = 0, the default value
The zero length termination is active. With the dQH.ZLT option enabled, when the device is
transmitting, the hardware automatically appends a zero length packet when the following
conditions are true:
The packet transmitted equals maximum packet length
The dTD has exhausted the field Total Bytes
After this the dTD will be retired. When the device is receiving, if the last packet length received
equal maximum packet length and the total bytes is 0, it will wait for a zero length packet from the
host to retire the current dTD.
dQH.ZLT = 1
The zero length termination is inactive. With the dQH.ZLT option disabled, when the device is
transmitting, the hardware will not append any zero length packet. When receiving, it will not require
a zero length packet to retire a dTD whose last packet was equal to the maximum packet length
packet. The dTD is retired as soon as total bytes field goes to 0, or a short packet is received.
Each transfer is defined by one dTD, so the zero length termination is for each dTD.
In some software application cases, the logic transfer does not fit into just one dTD, so it does not
make sense to add a zero length termination packet each time a dTD is consumed. On those cases we
recommend to turn off this dQH.ZLT feature and use the DCD to generate the zero length
termination.
Tx dTD Completes
All packets described in the dTD were successfully transmitted. Total bytes in dTD equals 0 when
this occurs.
Table 15-8: USB Device Variable Length Transfer Protocol Examples
Bytes
dTD
Max. Packet
Length
dQH
dTD.ZLT = 0 dTD.ZLT = 1
N P1 P2 P3 N P1 P2 P3
511 256 2 256 256 2 256 256
512 256 3 256 256 0 2 256 256
512 512 2 512 0 1 512