USB on-the-go high-speed (OTG_HS)
RM0090
1498/1731
DocID018909 Rev 11
service these interrupts, since the core takes care of rewinding the buffer pointers
and re-initializing the Channel without application intervention.
d) The core automatically issues a ping token.
e) When the device returns an ACK, the core continues with the transfer. Optionally,
the application can utilize these interrupts, in which case the NAK or NYET
interrupt is masked by the application.
The core does not generate a separate interrupt when NAK or NYET is received by the
host functionality.
•
Bulk and control IN transactions in DMA mode
The sequence of operations is as follows:
a) Initialize and enable the used channel (channel x) as explained in
.
b) The OTG_HS host writes an IN request to the request queue as soon as the
channel receives the grant from the arbiter (arbitration is performed in a round-
robin fashion).
c) The OTG_HS host starts writing the received data to the system memory as soon
as the last byte is received with no errors.
d) When the last packet is received, the OTG_HS host sets an internal flag to remove
any extra IN requests from the request queue.
e) The OTG_HS host flushes the extra requests.
f)
The final request to disable channel x is written to the request queue. At this point,
channel 2 is internally masked for further arbitration.
g) The OTG_HS host generates the CHH interrupt as soon as the disable request
comes to the top of the queue.
h) In response to the CHH interrupt, de-allocate the channel for other transfers.
•
Interrupt OUT transactions in DMA mode
a) Initialize and enable channel x as explained in
Section : Channel initialization
b) The OTG_HS host starts fetching the first packet as soon the channel is enabled
and writes the OUT request along with the last DWORD fetch. In high-bandwidth