USB Device Controller
1590
SPNU503C – March 2018
Copyright © 2018, Texas Instruments Incorporated
Universal Serial Bus (USB)
Table 29-53. Receive Endpoint n Configuration Register (EPn_RX) Field Descriptions (continued)
Bit
Field
Value
Description
13-12
EPn_RX_SIZE
The receive endpoint n size field contains the endpoint n FIFO size value. Status flags
(STAT_FLG.NON_ISO_FIFO_EMPTY, STAT_FLG.NON_ISO_FIFO_FULL, STAT_FLG.
ISO_FIFO_EMPTY, and STAT_FLG.ISO_FIFO_FULL) and overrun and underrun
conditions are based on this value for all OUT transactions to endpoint n.
Non-ISO (bits 13-12):
0
8 bytes
1h
16 bytes
2h
32 bytes
3h
64 bytes
ISO (bits 14-12):
0
8 bytes
1h
16 bytes
2h
32 bytes
3h
64 bytes
4h
128 bytes
5h
256 bytes
6h
512 bytes
7h
1023 bytes
Note: For ISO endpoints, a size of 1023 bytes takes up the whole memory and prevents
programming with a 2K-byte USB device controller.
Values after USB device controller hardware reset or USB reset are unchanged (which
means that values are unknown until first write access).
11
EPn_RX_ISO
The receive ISO endpoint n field must be set if the receive endpoint n type is isochronous in
the desired device configuration. If not set, the endpoint type is bulk or interrupt (the
hardware does not distinguish bulk type from interrupt).
0
Receive endpoint n type is bulk or interrupt.
1
Receive endpoint n type is isochronous.
Values after USB device controller hardware reset or USB reset are unchanged.
10-0
EPn_RX_PTR
The receive endpoint n pointer field contains the address of the receive endpoint n pointer.
Value 0x000 is not permitted (reserved for setup FIFO).
Note: For ISO endpoints or for non-ISO endpoints that allow double-buffering, 2 × RX buffer
size must be reserved for ping-pong.
0
Address = BASE (not permitted)
1h
Address = BASE + 8 bytes
2h
Address = BASE + 16 bytes
3h
Address = BASE + 24 bytes
:
:
FFh
Address = BASE + 2040 bytes
Values after USB device controller hardware reset or USB reset are unchanged (which
means that values are unknown until first write access).
Note: Pointer value must be set to a value < FFh, because the memory size is 2K bytes and
a pointer coded value = FFh corresponds to 2040 bytes. Addressing upper bytes results in
memory overlap.