USB Device Controller
1565
SPNU503C – March 2018
Copyright © 2018, Texas Instruments Incorporated
Universal Serial Bus (USB)
29.3.1.4 Control Register (CTRL)
This set-only register controls the FIFO and status of the selected endpoint. A read access to this register
always returns 0.
Endpoint 0 setup FIFO is always enabled and ready to accept setup data. No control register CTRL is
implemented for this FIFO because the USB device controller cannot control it.
Figure 29-31. Control Register (CTRL) [address = FCF78A06h]
15
8
Reserved
R-0
7
6
5
3
2
1
0
CLR_HALT
SET_HALT
Reserved
SET_FIFO_EN
CLR_EP
RESET_EP
RW-0
RW-0
R-0
RW-0
RW-0
RW-0
LEGEND: R/W = Read/Write; R = Read only; -
n
= value at reset
Table 29-34. Control Register (CTRL) Field Descriptions
Bit
Field
Value
Description
15-8
Reserved
0
Reserved
7
CLR_HALT
The clear halt endpoint (non-ISO) bit only concerns non-ISO endpoints—used by the USB device
controller to clear an endpoint halt condition:
0
No action
1
Clear halt condition
Always read 0.
6
SET_HALT
The set halt endpoint (non-ISO) only concerns non-ISO endpoints—used by the USB device
controller to halt the selected endpoint.
The halted endpoint returns STALL handshakes to the USB host. The USB device controller can
disable the endpoint interrupt if it does not want to be informed of STALL handshakes.
Note: If the endpoint to halt is used by a DMA channel, the USB device controller must disable the
DMA channel before setting halt condition for this endpoint.
0
No action
1
Halt endpoint
Always read 0.
5-3
Reserved
0
Reserved. Reads return zeros, writes have no effect.
2
SET_FIFO_EN
The set FIFO enable (non-ISO) bit only concerns non-ISO endpoints. If the selected endpoint
direction is IN, the USB device controller uses this bit to enable the USB device to transmit data
from the FIFO at the next valid IN token. If the selected endpoint direction is OUT, the USB device
controller uses this bit to enable the USB device to receive data from the USB host at the next valid
OUT transaction. If not, setting the device returns a NAK handshake. ISO endpoints FIFO are
always enabled.
Note: The USB device controller must never enable endpoint 0 FIFO out of control transfers. For
bulk and interrupt endpoints, FIFO must never be enabled when the halt feature is set or when RX
FIFO is not empty. Furthermore, during EP interrupts handling, the USB device controller must
have cleared the interrupt bit before setting CTRL.SET_FIFO_EN bit (to avoid masked ACK
interrupts).
0
No action
1
FIFO enabled
Always read 0.
1
CLR_EP
Clear endpoint: the USB device controller sets this bit to clear the selected endpoint FIFO pointers
and flags. This bit resets the FIFO pointers, the FIFO empty status bit is set, and the FIFO enable
bit and other FIFO flags are cleared upon completion of the FIFO reset. It also clears the previous
transaction handshake status. For ISO endpoints or non-ISO double-buffered endpoints, both
foreground and background FIFO are cleared.
0
No action
1
Clear endpoint
Always read 0.