Non-ISO TX handler
(NAK disabled
STAT_FLG.
ACK = 1?
(Data packet
received?)
Write non-ISO TX
FIFO data
More data to send
for this endpoint?
Set
CTRL.SET_FIFO_EN
Application-
specific activity
because data
successfully
sent
End of non-ISO TX
handler
No
Yes
No. Must be STAT_FLG.STALL.
Set CTRL.Cir_HALT
(remove halt condition).
LH initiated
stall and can
remove stall?
Yes
No
Application-
specific actions
to remove stall
Retire the data that
was just sent to the
USB host from the
application’s endpoint
TX buffer.
Yes
TX data that was previously placed in the endpoint’s TX FIFO
remains in the application’s buffer until that data is properly
sent to the USB host and receives an ACK.
to 1.
Caution: If double-buffer is used, the local host must retire
from its buffer the first packet that was written into TX FIFO.
USB Device Controller
1636
SPNU503C – March 2018
Copyright © 2018, Texas Instruments Incorporated
Universal Serial Bus (USB)
29.3.24 Non-ISO, Non-Control IN Endpoint Transmit Interrupt Handler
shows the operations necessary to handle non-ISO, non-control IN endpoint-specific transmit
interrupts. This flowchart shows two TX transaction handshaking interrupts. There is a third interrupt
handshaking possibility when NAK interrupts are enabled, which is not depicted here. Depending on the
application-specific actions needed for various endpoints in the real system, it is possible to use one
routine that is common to all of the non-ISO, non-control transmit endpoints, where the only differences
are in the EP_NUM register value set and in the routine selection of the application TX buffer (see
).
This flowchart does not attempt to document control endpoint 0 transmit interrupts, which are discussed
separately because of the more complex three-stage transfer mechanism used for control reads.
Figure 29-79. Non-Isochronous Non-Control Endpoint Transmit Interrupt Handler