6.5.6.3 Universal Serial Bus (USB)
USB is a serial bus standard designed to allow connection and disconnection of peripherals using a standardized interface without rebooting the system.
One USB controller supports high-speed and full-speed multiple-point communications and complies with the USB 2.0 standard for high-speed function. The USB controller can have three configurations: USB device, USB host, and USB OTG (negotiated on-the-go as host or device when connected to other USB-enabled systems). Support for full-speed communication is provided by using the integrated USB PHY or optionally, a high-speed ULPI can communicate to an external PHY.
The USB module has the following features:
- Complies with USB-IF (Implementer's Forum) certification standards
- USB 2.0 high-speed (480 Mbps) operation with the integrated ULPI communicating with an external PHY
- Link power-management support that uses link-state awareness to reduce power usage
- Four transfer types: control, interrupt, bulk, and isochronous
- 16 endpoints
- 1 dedicated control IN endpoint and 1 dedicated control OUT endpoint
- 7 configurable IN endpoints and 7 configurable OUT endpoints
- 4KB of dedicated endpoint memory: one endpoint may be defined for double-buffered 1023-byte isochronous packet size
- VBUS droop detection and interrupt
- Integrated USB DMA with bus master capability
- Up to eight RX endpoint channels and up to eight TX endpoint channels are available.
- Each channel can be separately programmed to operate in different modes.
- Incremental burst transfers of 4, 8, 16, or unspecified length supported