RM0090
Mask ACK
Unmask CHH
Disable Channel
if (STALL)
}
else
if (NAK or TXERR)
else
else
The application is expected to write the data packets into the transmit FIFO when the
space is available in the transmit FIFO and the Request queue up to the count
specified in the MCNT field before switching to another channel. The application uses
the NPTXFE interrupt in OTG_HS_GINTSTS to find the transmit FIFO space.
b)
Unmask (NAK/TXERR/XFRC/BBERR/STALL/FRMOR/DTERR)
if (XFRC)
{
Reset Error Count
Mask ACK
if (OTG_HS_HCTSIZx.PKTCNT == 0)
{
De-allocate Channel
}
else
{
{
Transfer Done = 1
}
{
Rewind Buffer Pointers
Reset Error Count
Mask ACK
Unmask CHH
Disable Channel
}
if (CHH)
{
Mask CHH
if (Transfer Done or (Error_count == 3))
{
De-allocate Channel
}
else
{
Re-initialize Channel (in next b_interval - 1 Frame)
}
}
if (ACK)
{
Reset Error Count
Mask ACK
}
Interrupt IN
USB on-the-go high-speed (OTG_HS)
RM0090 Rev 18
1503/1749
1543
Need help?
Do you have a question about the STM32F405 and is the answer not in the manual?
Questions and answers