Enter non-ISO
endpoint-specific ISR
Return from non-ISO
endpoint-specifc ISR
No
IRQ_SRC.
EPn_RX = 1?
TX handler
from EPn_STAT.
EPn_RX_IT_SRC.
Write 1 to
IRQ_SRC.EPn_RX to
clear the IT.
Write EP_NUM register:
- EP_NUM.EP_NUM = ENDP_NB
- EP_NUM.EP_DIR = 0
- EP_NUM.EP_SEL = 1
- EP_NUM.SETUP_SEL = 0
Yes
Read ENDP_NB value
EPn_TX_IT_src
Write EP_NUM register:
- EP_NUM.EP_Num = ENDP_NB
- EP_NUM.EP_DIR = 1
- EP_NUM.EP_SEL = 1
- EP_NUM.SETUP_SEL = 0
RX handler
Write EP_NUM register:
- EP_NUM.EP_Num = ENDP_NB
- EP_NUM.EP_Dir = 1
- EP_NUM.EP_Sel = 0
- EP_NUM.Setup_Sel = 0
Write 1 to
IRQ_SRC.EPn_TX to
clear the IT.
Must be
IRQ_SRC.EPn_TX
Flag Fifo not full
and DB
= 1?
Write CTRL register:
-CTRL.SET_FIFO_EN = 1.
Yes
No
Write EP_NUM register:
- EP_NUM.EP_NUM = ENDP_NB
- EP_NUM.EP_DIR = 0
- EP_NUM.EP_SEL = 0
- EP_NUM.SETUP_SEL = 0
Read ENDP_NB value
from EPn_STAT.
USB Device Controller
1633
SPNU503C – March 2018
Copyright © 2018, Texas Instruments Incorporated
Universal Serial Bus (USB)
Figure 29-76. Non-ISO Endpoint-Specific (Except EP 0) ISR Flowchart
29.3.23 Non-ISO, Non-Control OUT Endpoint Receive Interrupt Handler
shows the operations necessary to handle non-ISO, non-control OUT endpoint-specific
receive interrupts. This flowchart shows two different RX 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 receive endpoints, where the
only differences are in the EP_NUM register value set and the selection of the proper application RX data
buffer in the read non-ISO RX FIFO data routine (see
).
This flowchart does not attempt to document control endpoint 0 receive interrupts, which are discussed
separately because of the more complex three-stage transfer mechanism used for control writes.