User manual

Table Of Contents
Zynq-7000 AP SoC Technical Reference Manual www.xilinx.com 424
UG585 (v1.11) September 27, 2016
Chapter 15: USB Host, Device, and OTG Controller
Isochronous Pipe Synchronization
When it is necessary to synchronize an isochronous data pipe to the host, the (micro)frame number
(read the FRINDEX register) can be used as a marker. To cause a packet transfer to occur at a specific
(micro)frame number [N], the DCD should interrupt on SOF during frame N - 1. When the FRINDEX
= N - 1, the DCD must write the prime bit. The device controller primes the isochronous endpoint in
(micro)frame N - 1 so that the device controller executes delivery during (micro)frame N.
Caution: Priming an endpoint towards the end of (micro)frame N - 1 does not guarantee delivery in
(micro)frame N. The delivery might actually occur in (micro)frame N+1 if device controller does not
have enough time to complete the prime before the SOF for packet N is received.
Isochronous Endpoint Bus Response
15.6.5 Control Endpoint Operational Model
All requests to a control endpoint begin with a setup phase followed by an optional data phase and
a required status phase. The device controller always accepts the setup phase unless the setup
lockout is engaged.
Lockout and Tripwire for Setup Packets
The setup lockout can be engage so that future setup packets from the host are ignored by the
controller while the DCD retrieves the current setup packet. Lockout of setup packets ensures that
while the DCD is reading the setup packet stored in the queue head data is not written as it is being
read potentially causing an invalid setup packet.
The setup lockout mechanism can be disabled and a tripwire type semaphore will ensure that the
setup packet payload is extracted from the queue head without being corrupted by an incoming
setup packet. This is the preferred behavior because ignoring repeated setup packets due to long
software interrupt latency would be a compliance issue.
The tripwire semaphore can ensure the proper addition of a new dTD to an active (primed)
endpoint’s linked list. The add dTD tripwire bit, usb.USBCMD [ATDTW] can be set and cleared by
software. This bit can be cleared by hardware when its state machine is in a hazard region for which
adding a dTD to a primed endpoint may go unrecognized.
Table 15-10: USB Device Isochronous Endpoint Bus Response
Token Type
Stall Bit
[TXS]
Endpoint
Not Primed
Endpoint
Primed
Buffer
Underflow
Buffer
Overflow
Endpoint
Not Enabled
Setup STALL STALL STALL N/A N/A BTO
IN NULL Packet NULL Packet
Transmit BS Error N/A BTO
OUT Ignore Ignore
Receive N/A Drop Packet BTO
Ping Ignore Ignore Ignore Ignore Ignore BTO
Invalid Ignore Ignore Ignore Ignore Ignore BTO