RM0008
f)
g)
h)
i)
j)
k)
l)
m) In response to the CHH interrupt, de-allocate the channel for other transfers.
n)
•
Control transactions
Setup, Data, and Status stages of a control transfer must be performed as three
separate transfers. Setup-, Data- or Status-stage OUT transactions are performed
similarly to the bulk OUT transactions explained previously. Data- or Status-stage IN
transactions are performed similarly to the bulk IN transactions explained previously.
For all three stages, the application is expected to set the EPTYP field in
OTG_FS_HCCHAR1 to Control. During the Setup stage, the application is expected to
set the PID field in OTG_FS_HCTSIZ1 to SETUP.
•
Interrupt OUT transactions
A typical interrupt OUT operation is shown in
–
–
–
The sequence of operations is as follows:
a)
b)
c)
d)
e)
f)
The core generates the RXFLVL interrupt for the transfer completion status entry
in the receive FIFO.
The application must read and ignore the receive packet status when the receive
packet status is not an IN data packet (PKTSTS in GRXSTSR ≠ 0b0010).
The core generates the XFRC interrupt as soon as the receive packet status is
read.
In response to the XFRC interrupt, disable the channel and stop writing the
OTG_FS_HCCHAR2 register for further requests. The core writes a channel
disable request to the non-periodic request queue as soon as the
OTG_FS_HCCHAR2 register is written.
The core generates the RXFLVL interrupt as soon as the halt status is written to
the receive FIFO.
Read and ignore the receive packet status.
The core generates a CHH interrupt as soon as the halt status is popped from the
receive FIFO.
Handling non-ACK responses
The application is attempting to send one packet in every frame (up to 1 maximum
packet size), starting with the odd frame (transfer size = 1 024 bytes)
The periodic transmit FIFO can hold one packet (1 KB)
Periodic request queue depth = 4
Initialize and enable channel 1. The application must set the ODDFRM bit in
OTG_FS_HCCHAR1.
Write the first packet for channel 1.
Along with the last Word write of each packet, the OTG_FS host writes an entry to
the periodic request queue.
The OTG_FS host attempts to send an OUT token in the next (odd) frame.
The OTG_FS host generates an XFRC interrupt as soon as the last packet is
transmitted successfully.
In response to the XFRC interrupt, reinitialize the channel for the next transfer.
DocID13902 Rev 15
USB on-the-go full-speed (OTG_FS)
Figure
316. The assumptions are:
922/1128
957
Need help?
Do you have a question about the STM32F101 series and is the answer not in the manual?
Questions and answers