User manual

Table Of Contents
Zynq-7000 AP SoC Technical Reference Manual www.xilinx.com 431
UG585 (v1.11) September 27, 2016
Chapter 15: USB Host, Device, and OTG Controller
Example 2: Send two packets
If dQH.multiplier = 3; Max packet size = 8; Total Bytes = 15; dQH.Mult = 2,
then two packets are sent: Data1 (8) +Data0 (7).
Buffer Pointer Pages
The buffer pointers are aligned to 4KB boundaries. The total byes and buffer pointers are discussed
in section Total Bytes to Transfer Parameter.
Total Bytes to Transfer Parameter
The Total Bytes bit field specifies the total number of bytes to be moved with the transfer descriptor.
This field is decremented by the number of bytes actually moved during the transaction and only on
the successful completion of the transaction. This bit field applies to:
qTD for host mode, refer to section 15.12.5 Queue Element Transfer Descriptor (qTD).
dTD for device mode, refer to section 15.7.2 Endpoint Transfer Descriptor (dTD).
The maximum value that the DCD may store in the field is 5 times 4 KB (5000h). This is the maximum
number of bytes that 5 page pointers can reference. Although it is possible to create a transfer up to
20 KB this assumes the 1st offset into the first page is 0. When the offset cannot be predetermined,
crossing past the 5th page can be guaranteed by limiting the total bytes to 16 KB. Therefore, the
maximum recommended transfer is 16 KB (4000h).
Device Mode Note
If the value of the Total Bytes bit field is 0 when the device controller fetches this transfer descriptor
(and the active bit is set), the reaction of the device controller depends on the setting of the dQH.ZLT
bit. Refer to section 15.6.3 Interrupt and Bulk Endpoint Operational Model.
It is not a requirement for that Total Bytes To Transfer be an even multiple of Maximum Packet
Length. If the DCD builds such a transfer descriptor for a transfer, the last transaction will always
be less that Maximum Packet Length.
15.8 Programming Guide for Device Controller
The function of the device controller is to transfer a request in the memory image to and from the
USB. The device controller programs and primes the endpoints based on the application protocol.
The controller executes a set of linked list transfer descriptors, pointed to by a queue head that the
device controller executes to perform the requested data transfers. The following sections explain
the use of the device controller from the DCD point-of-view and further describe how specific USB
bus events relate to status changes in the device controller’s registers.