HS_USB 2.0 device
RM0082
474/844
Doc ID 018672 Rev 1
Figure 43.
Out transaction flow in DMA mode
High-bandwidth isochronous (ISO) transfers
In case of out packets (that is, coming from USB Host), each descriptor stores one
maximum packet size of data. The data PID associated with the packet is available in the
PID field, bits [15:14], of the out data memory buffer status (
). If the microframe contains three packets, data and the corresponding data PID
are stored in three descriptors.
In case of in packets (transmitted to the USB Host), the application creates data of one
maximum packet size per descriptor. If the application must send three packets in the
microframe, the application must then create three descriptors. Data PID information must
be provided in the PID field, bits [15:14], of the in data memory buffer (
).
23.4.4 Slave-only
mode
In slave-only implementation, the application acts as an AHB master to read data from or to
write data to the memory-mapped subsystem FIFOs, and the UDC-AHB subsystem
operates as a AHB slave for both data and CSRs transfers.
The USB host initiates USB traffic and the application responds to all the USB host’s
commands. In this mode, the UDC-AHB subsystem can only be used in device-type
applications, and before any operation the application must completely configure the
necessary CSRs. All data transfers are interrupt-driven, except iso-in and interrupt-in
transfers, which are periodic.
The slave-only mode is typically implemented either in applications with limited complexity
software, or when the subsystem has a dedicated master for data processing.
RxFIFO
available?
Idle
OUT
Transaction
Write the OUT
Data in the
RxFIFO
Wait for
Status
Success
or ISO
Yes
No
Ye
s
ISO
Transfer?
No
Send
NAK
Got Status
Flush the
data
No
Yes
Confirm
data
Get
Descriptor
Yes
No
No
DMA
Enabled?
Generate
BNA INTR
Buffer
Initialized?
Yes
Transfer
OUT data To
host memory
Transfer
done
Update
descriptor
status and
generate INTR