USB on-the-go full-speed (OTG_FS)
RM0090
1330/1731
DocID018909 Rev 11
if (
XFRC
)
{
Reset Error Count
Mask
ACK
De-allocate Channel
}
else if (
STALL
)
{
Transfer Done = 1
Unmask
CHH
Disable Channel
}
else if (
NAK
or
TXERR
)
{
Rewind Buffer Pointers
Unmask
CHH
Disable Channel
if (
TXERR
)
{
Increment Error Count
Unmask
ACK
}
else
{
Reset Error Count
}
}
else if (
CHH
)
{
Mask
CHH
if (Transfer Done or (Error_count == 3))
{
De-allocate Channel
}
else
{
Re-initialize Channel
}
}
else if (
ACK
)
{
Reset Error Count
Mask
ACK
}
The application is expected to write the data packets into the transmit FIFO as and
when the space is available in the transmit FIFO and the Request queue. The
application can make use of the NPTXFE interrupt in OTG_FS_GINTSTS to find the
transmit FIFO space.
b) Bulk/Control
IN
Unmask (TXERR/XFRC/BBERR/STALL/DTERR)
if (
XFRC
)