USB on-the-go full-speed (OTG_FS)
•
Reading the receive FIFO
The application must ignore all packet statuses other than IN data packet (bx0010).
•
Bulk and control OUT/SETUP transactions
A typical bulk or control OUT/SETUP pipelined transaction-level operation is shown in
Figure
SETUP transaction operates in the same way but has only one packet. The
assumptions are:
–
–
–
•
Normal bulk and control OUT/SETUP operations
The sequence of operations in (channel 1) is as follows:
a)
b)
c)
d)
e)
1328/1731
Figure 397. Receive FIFO read task
Unmask RXFLVL
interrupt
Read the received
packet from the
Receive FIFO
Yes
398. See channel 1 (ch_1). Two bulk OUT packets are transmitted. A control
The application is attempting to send two maximum-packet-size packets (transfer
size = 1, 024 bytes).
The non-periodic transmit FIFO can hold two packets (128 bytes for FS).
The non-periodic request queue depth = 4.
Initialize channel 1
Write the first packet for channel 1
Along with the last Word write, the core writes an entry to the non-periodic request
queue
As soon as the non-periodic queue becomes non-empty, the core attempts to
send an OUT token in the current frame
Write the second (last) packet for channel 1
DocID018909 Rev 11
Start
No
RXFLVL
interrupt ?
Yes
Mask RXFLVL
Unmask RXFLVL
interrupt
Read
OTG_FS_GRXSTSP
PKTSTS
No
0b0010?
Yes
BCNT > 0?
interrupt
No
ai15674
RM0090
Need help?
Do you have a question about the STM32F405 and is the answer not in the manual?