USB on-the-go full-speed (OTG_FS)
RM0090
1334/1731
DocID018909 Rev 11
Figure 400. Normal interrupt OUT/IN transactions
•
Interrupt service routine for interrupt OUT/IN transactions
a) Interrupt
OUT
Unmask (NAK/TXERR/STALL/XFRC/FRMOR)
if (
XFRC
)
{
Reset Error Count
Mask
ACK
De-allocate Channel
}
else
if (
STALL
or
FRMOR
)
{
Mask
ACK
Unmask
CHH
Host
Application
Device
AHB
USB
OUT
DATA0
M PS
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)
IN
OUT
DATA1
MPS
Periodic Request Queue
Assume that this queue
can hold 4 entries.
1
5
DATA0
IN
RXFLVL interrupt
1
MPS
read_rx_sts
read_rx_fifo
read_rx_sts
1
2
3
4
6
2
3
6
7
8
9
Odd
(micro)
frame
Even
(micro)
frame
init _reg(ch_1)
set_ch_en
(ch_2)
init_reg(ch _2)
write_tx_fifo
(ch_1)
init _reg(ch_1)
1
MPS
DATA1
5
4
ACK
ACK
ACK
ch_1
ch_2
ch_2
ch_1
ai15676
RXFLVL interrupt
XFRC interrupt
XFRC interrupt
XFRC interrupt