unstable only.Expand description
§USB On-The-Go (USB OTG)
§Overview
The USB OTG Full-speed (FS) peripheral allows communication with USB devices using either blocking (usb-device) or asynchronous (embassy-usb) APIs.
It can operate as either a USB Host or Device, and supports full-speed (FS) and low-speed (LS) data rates of the USB 2.0 specification.
The blocking driver uses the esp_synopsys_usb_otg crate, which provides
the USB bus implementation and USB peripheral traits.
The asynchronous driver uses the embassy_usb_synopsys_otg crate, which
provides the USB bus and USB device implementations.
The module also relies on other peripheral modules, such as GPIO,
system, and clock control, to configure and enable the USB peripheral.
§Configuration
To use the USB OTG Full-speed peripheral driver, you need to initialize the
peripheral and configure its settings. The Usb struct represents the USB
peripheral and requires the GPIO pins that implement [UsbDp], and
[UsbDm], which define the specific types used for USB pin selection.
The returned Usb instance can be used with the usb-device crate, or it
can be further configured with asynch::Driver to be used with the
embassy-usb crate.
§Examples
Visit the USB Serial example for an example of using the USB OTG peripheral.
§Implementation State
- Low-speed (LS) is not supported.
Modules§
- asynch
- Async functionality