The Concerto™ USB controller comes with an integrated PHY for minimum system cost and ease of connection, so unlike the Ethernet portion which just has the MAC, the USB does have the integrated physical layer, as well. One thing to note is that the module requires a 60 MHz input clock, which can be generated with the second PLL. The clock source can be either the crystal clock input pin or an X1 input oscillator clock directly. The USB interface has its own PLL and hence is independent of system clock ratios used for the rest of the device and it is not dependent on the clock divider ratios that the M3 and the C28x core are. The USB operates as both full speed or low speed functioning controllers during point-to-point communications, USB host device or other On-the-Go functions. This controller complies with USB 2.0 standards, including the suspend and resume signaling, and with On-the-Go standards for session request protocol, or SRP, by supporting both the session request protocol and host negotiation protocol. Session request protocol allows devices on the B side of the cable to request the A side device to turn on the voltage bus. In addition, the USB controller provides support for connecting two non-on-the-go peripherals or host controllers. The controller can be configured to act as either a dedicated host or a device, in which case USB zero voltage bus and USB zero ID signals can be used as GPIOs. The USB features thirty two endpoints, including two hardwired for control transfers; one endpoint for in and one endpoint for out plus thirty endpoints. This actually ends up being fifteen configurable in endpoints and fifteen configurable out endpoints and are defined by firmware along with dynamic, sizeable FIFO support for multiple packet queuing. 4 kB of memory is dedicated to endpoint memory. One endpoint may be defined as double buffered with 1023 bytes isochronous packet size. Software controlled connect and disconnect allows flexibility during the USB device start up, and µDMA access to the FIFO allows minimum interference from system software. The USB peripheral provides an interface connected to the µDMA controller with separate channels for three transmit endpoints and three receive endpoints.

