Setup Data (8 bytes)
Endpoint0 data
Endpoint1 RX data
Endpoint2 RX data
Endpoint15 RX data
Endpoint1 TX data
Endpoint2 TX data
Endpoint15 TX data
EP0_PTR
EP2_RX_PTR
EP0_SIZE
EP1_RX_SIZE or
2*EP1_RX_SIZE (if
double buffering or ISO)
EP1_RX_PTR
EP3_RX_PTR
EP15_RX_PTR
EP1_TX_PTR
EP2_TX_PTR
EP3_TX_PTR
EP15_TX_PTR
EP2_RX_SIZE or
2*EP2_RS_SIZE (if
EP15_RX_SIZE or
2*EP15_RX_SIZE (if
EP1_TX_SIZE or
2*EP1_TX_SIZE (if
EP2_TX_SIZE or
2*EP2_TX_SIZE (if
EP15_TX_SIZE or
2*EP15_TX_SIZE (if
double buffering or ISO)
double buffering or ISO)
double buffering or ISO)
double buffering or ISO)
double buffering or ISO)
USB Device Controller
1612
SPNU503C – March 2018
Copyright © 2018, Texas Instruments Incorporated
Universal Serial Bus (USB)
For each endpoint, the CPU must write on the dedicated register:
•
Endpoint size
•
Whether double-buffering is allowed for endpoint or not
•
Endpoint type (ISO or non-ISO)
•
Address of the pointer
System software must choose how to allocate the 2040 available bytes of USB device controller RAM to
the USB endpoints. Receive endpoint size and type are configured using the EP1_RX through EP15_RX
registers. Transmit endpoint size and type are configured using the EP1_TX through EP15_TX registers.
shows an example of the RAM organization, obtained by following the flowchart shown in
.
Figure 29-57. Example of RAM Organization