English
Language : 

LM3S3749 Datasheet, PDF (630/898 Pages) Texas Instruments – Stellaris® LM3S3749 Microcontroller
Universal Serial Bus (USB) Controller
USB0RBIAS pin. Power dissipation in the resistor is low, so a chip resistor of any geometry
may be used.
The Stellaris USB controller provides the ability for the controller to choose between Host controller
and Device controller functionality. The USB controller requires both A and B connectors in the
system to provide Host or Device connectivity. If both connectors are present, the controller provides
external signals to enable or disable power to the USB0VBUS pin on the USB connector when not
in use. The controller can only be used in Host or Device mode and cannot be used in both modes
simultaneously. However, the controller can be manually switched at run time if the system requires
both Host and Device functionality.
Note: When USB is used in the system, the minimum system frequency is 30 MHz.
16.3.1
Operation as a Device
This section describes the Stellaris USB controller's actions when it is being used as a USB Device.
Before the USB controller's operating mode is changed from Device to Host or Host to Device,
software must reset the USB controller by setting the USB0 bit in the Software Reset Control 2
(SRCR2) register (see page 248). IN endpoints, OUT endpoints, entry into and exit from SUSPEND
mode, and recognition of Start of Frame (SOF) are all described.
When in Device mode, IN transactions are controlled by an endpoint’s transmit interface and use
the transmit endpoint registers for the given endpoint. OUT transactions are handled with an
endpoint's receive interface and use the receive endpoint registers for the given endpoint.
When configuring the size of the FIFOs for endpoints, 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 for a USB Device. However,
in most cases the USB Device should use the dedicated control endpoint on the USB controller’s
endpoint 0.
16.3.1.1
Endpoints
When operating as a Device, the USB controller provides two dedicated control endpoints (IN and
OUT) and six configurable endpoints (3 IN and 3 OUT) that can be used for communications with
a Host controller. The endpoint number and direction associated with an endpoint is directly related
to its register designation. For example, when the Host is transmitting to endpoint 1, all configuration
and data is in the endpoint 1 transmit register interface.
Endpoint 0 is a dedicated control endpoint used for all control transactions to endpoint 0 during
enumeration or when any other control requests are made to endpoint 0. Endpoint 0 uses the first
64 bytes of the USB controller's FIFO RAM as a shared memory for both IN and OUT transactions.
The remaining six endpoints can be configured as control, bulk, interrupt, or isochronous endpoints.
They should be treated as three configurable IN and three configurable OUT endpoints. The endpoint
pairs are not required to have the same type for their IN and OUT endpoint configuration. For
example, the OUT portion of an endpoint pair could be a bulk endpoint, while the IN portion of that
630
November 17, 2011
Texas Instruments-Production Data