Data Stage (Control-OUT): The application first analyzes command data from the host in the
setup stage, and determines the subsequent data stage direction. If the result of command data
analysis is that the data stage is OUT-transfer, the application waits for data from the host, and
after data is received (USBIFR0/EP0oTS = 1), reads data from the FIFO. Next, the application
writes 1 to the EP0o read complete bit, empties the receive FIFO, and waits for reception of the
next data.
The end of the data stage is identified when the host transmits an IN token and the status stage is
entered.
OUT token reception
to USBTRG/EP0s
Data reception from host
Set EP0o reception
(USBIFR0/EP0o TS = 1)
OUT token reception
to USBTRG/EP0o
USB function
1 written
No
RDFN?
NACK
Yes
ACK
Interrupt request
complete flag
1 written
No
RDFN?
NACK
Yes
Figure 20.7 Data Stage (Control-OUT) Operation
Section 20 USB Function Module
Application
Clear EP0o reception
complete flag
(USBIFR0/EP0o TS = 0)
Read data from USBEP0o
receive data size register
(USBEPSZ0o)
Read data from USBEP0o
data register (USBEPDR0o)
Write 1 to EP0o read
complete bit
(USBTRG/EP0o RDFN = 1)
Rev. 4.00 Sep. 14, 2005 Page 771 of 982
REJ09B0023-0400