Functional Description
1679
SLAU723A – October 2017 – Revised October 2018
Copyright © 2017–2018, Texas Instruments Incorporated
Universal Serial Bus (USB) Controller
When the SOFTCONN bit is cleared, the PHY is put into non-driving mode, USB0DP and USB0DM are in
a tri-state condition, and the USB controller appears to other devices on the USB bus as if it has been
disconnected. The non-driving mode is the default so the USB controller appears disconnected until the
SOFTCONN bit has been set. The application software can then choose when to set the PHY into its
normal mode. Systems with a lengthy initialization procedure may use this to ensure that initialization is
complete, and the system is ready to perform enumeration before connecting to the USB bus. Once the
SOFTCONN bit has been set, the USB controller can be disconnected by clearing this bit.
NOTE:
The USB controller does not generate an interrupt when the device is connected to the host.
However, an interrupt is generated when the host terminates a session.
27.3.2 Operation as a Host
When the USB controller is operating in host mode, it can either be used for point-to-point
communications with another USB device or, when attached to a hub, for communication with multiple
devices. Before the operating mode of the USB controller is changed from host-to-device or device-to-
host, software must reset the USB controller by setting the USB0 bit in the USB Software Reset (SRUSB)
register. Full-speed and low-speed USB devices are supported, both for point-to-point communication and
for operation through a hub. The USB controller automatically carries out the necessary transaction
translation needed to allow a low-speed or full-speed device to be used with a USB 2.0 hub. Control, bulk,
isochronous, and interrupt transactions are supported. This section describes the USB controller's actions
when it is being used as a USB host. Configuration of IN endpoints, OUT endpoints, entry into and exit
from SUSPEND mode, and RESET are all described.
When in host mode, IN transactions are controlled by an endpoint's receive interface. All IN transactions
use the receive endpoint registers and all OUT endpoints use the transmit endpoint registers for a given
endpoint. As in device mode, the FIFOs for endpoints should take into account the maximum packet size
for an endpoint.
•
Bulk
Bulk endpoints should be the size of the maximum packet (up to 64 bytes) or twice the maximum
packet size if double buffering is used (described further in the following section).
•
Interrupt
Interrupt endpoints should be the size of the maximum packet (up to 64 bytes) or twice the maximum
packet size if double buffering is used.
•
Isochronous
Isochronous endpoints are more flexible and can be up to 1023 bytes.
•
Control
It is also possible to specify a separate control endpoint to communicate with a device. However, in
most cases the USB controller should use the dedicated control endpoint to communicate with an
endpoint 0 of a device.
27.3.2.1 Endpoints
The endpoint registers are used to control the USB endpoint interfaces which communicate with devices
that are connected. The endpoints consist of a dedicated control IN endpoint, a dedicated control OUT
endpoint, seven configurable OUT endpoints, and seven configurable IN endpoints.
The dedicated control interface can only be used for control transactions to endpoint 0 of devices. These
control transactions are used during enumeration or other control functions that communicate using
endpoint 0 of devices. This control endpoint shares the first 64 bytes of the USB controller's FIFO RAM for
IN and OUT transactions. The remaining IN and OUT interfaces can be configured to communicate with
control, bulk, interrupt, or isochronous device endpoints.