DocID018909 Rev 11 1329/1731
RM0090 USB on-the-go full-speed (OTG_FS)
1368
f) The core generates the XFRC interrupt as soon as the last transaction is
completed successfully
g) In response to the XFRC interrupt, de-allocate the channel for other transfers
h) Handling non-ACK responses
Figure 398. Normal bulk/control OUT/SETUP and bulk/control IN transactions
The channel-specific interrupt service routine for bulk and control OUT/SETUP
transactions is shown in the following code samples.
• Interrupt service routine for bulk/control OUT/SETUP and bulk/control IN
transactions
a) Bulk/Control OUT/SETUP
Unmask (NAK/TXERR/STALL/XFRC)
A
C
K
HostApplication DeviceAHB USB
O
U
T
D
A
T
A
0
M
P
S
1
MPS
1
MPS
write_tx _fifo
(ch_1)
init_reg(ch_1)
set _ch_en
(ch_2)
init_reg(ch_2)
write_tx _fifo
(ch_1)
set _ch_en
(ch_2)
ch_2
ch_2
ch_1
ch_1
De-allocate
(ch_1)
I
N
ch_2
ch_2
ch_2
ch_1
A
C
K
O
U
T
set _ch_en
(ch_2)
Non-Periodic Request
Queu e
Assume that this queue
can hold 4 entries.
4
1
6
A
C
K
D
A
T
A
0
I
N
A
C
K
read_rx_sts
read_rx_fifo
1
MPS
set _ch_en
(ch_2)
1
MPS
read_rx_stsre
ad_rx_fifo
read_rx_sts
Disable
(ch_2)
1
2
3
4
5
6
7
De-allocate
(ch_2)
CHH interruptr
ch_2
2
3
5
7
8
9
12
13
read_rx_sts
10
11
D
A
T
A
1
M
P
S
D
A
T
A
1
ai15675
RXFLVL interrupt
XFRC interrupt
RXFLVL interrupt
RXFLVL interrupt
RXFLVL interrupt
XFRC interrupt