Universal Serial Bus (USB)
MCF5272 ColdFire Integrated Microprocessor User’s Manual, Rev. 3
Freescale Semiconductor
12-5
12.2.1.4
Endpoint Controllers
The MCF5272 has eight independent endpoint controllers that manage data transfer between the on-chip
CPU and the USB host for each endpoint. These controllers provide event notification to the user and
manage the IN and OUT FIFO dual-port RAM buffers.
The USB endpoint configuration registers (USBEPOCFGn or USBEPICFGn) are used to configure each
endpoint to support either control, interrupt, bulk, or isochronous transfers.
USB always uses endpoint 0 as a control pipe, so it must be configured for control transfer mode.
Additional control pipes can be provided by other endpoints.
A total of 1024 bytes of dual-port RAM are available for transmit and receive FIFO buffers. This RAM is
partitioned to provide 512 bytes for each direction. The user is responsible for configuring the FIFO for
each endpoint. This configuration is flexible within the following constraints:
FIFO size must be an integral power of 2
FIFO size must be at least twice the maximum packet size
FIFO starting address must be aligned on a boundary defined by the FIFO size.
For example, an endpoint with a maximum packet size of 32 bytes can have a FIFO size of 64, 128, or 256
bytes and a starting address of 0, 64, 128, 192, 256, etc.
12.2.1.5
USB Request Processor
The MCF5272 USB request processor automatically processes all of the USB standard requests listed in
Table 12-1 except for SYNC_FRAME and the optional SET_DESCRIPTOR request. The SYNC_FRAME request is passed to the user as a vendor-specific request. The USB module responds with a request error when the
SET
_DESCRIPTOR request is issued. These standard requests are defined in Chapter 9 of the USB
Specification. See beginning of Page
12-1. Table 12-1. USB Device Requests
Device Request
USB Request Processor Action
clear_feature
Request processor clears the feature specified by the feature selector parameter. Currently, remote
wakeup and endpoint halt are the only features defined by the USB specification. If the feature to be
cleared is remote wakeup, the USB block disables the remote wakeup functionality. If the feature to be
cleared is endpoint halt, the request processor activates the selected endpoint. The user is notified
when the remote wakeup is disabled or an endpoint halt is cleared.
get_configuration
Returns the current configuration as set by a previous SET_CONFIGURATION request. No user
notification is provided. No user action required.
get_descriptor
Reads the specified device or configuration descriptor from the configuration RAM and transfers it to
the host. Requests for a configuration descriptor returns all of the descriptors associated with a given
configuration including interface, endpoint, and class-specific descriptors. This request fails if the
configuration RAM has not been initialized. No user notification is provided.
The optional requests for string descriptors are not handled automatically by the request processor.
GET
_DESCRIPTOR requests for string descriptors are passed to the user as a vendor specific request.
The string descriptors must be stored in external memory and not the configuration RAM.
get_interface
Returns the selected alternate setting for the specified interface. No user notification is provided.