Implement full SSD1306 OLED display support: - Splash screen on boot (1.5s) with project name, version, board - Dashboard showing radio state, config, counters, RSSI/SNR - RSSI history sparkline (64-sample ring buffer, 2px-wide bars) - DisplayOn/DisplayOff host commands routed via dedicated channel - Pure render functions against generic DrawTarget (no hardware coupling) - Display on/off control bypasses radio task entirely Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
45 lines
2.1 KiB
Markdown
45 lines
2.1 KiB
Markdown
[](https://crates.io/crates/esp-synopsys-usb-otg)
|
|
[](https://crates.io/crates/esp-synopsys-usb-otg)
|
|
|
|
# This is a fork of [synopsys-usb-otg](https://crates.io/crates/synopsys-usb-otg) with support for ESP32-Sx added - please use https://github.com/stm32-rs/synopsys-usb-otg when not targeting ESP32-Sx
|
|
|
|
# `synopsys-usb-otg`
|
|
|
|
> [usb-device](https://github.com/mvirkkunen/usb-device) implementation for Synopsys USB OTG IP cores.
|
|
|
|
This project is a successor to the [great work](https://github.com/mvirkkunen/stm32f103xx-usb)
|
|
started by [@mvirkkunen](https://github.com/mvirkkunen).
|
|
|
|
## Supported microcontrollers
|
|
|
|
* `STM32F429xx` (OTG_FS and OTG_HS in FS mode)
|
|
* `STM32F401xx`
|
|
* `STM32F446xx` (OTG_FS and OTG_HS in FS mode)
|
|
* `STM32F723xx` (OTG_FS and OTG_HS with internal HS PHY)
|
|
* `STM32H7xxxx` (OTG1_HS and OTG2_HS in FS mode, and OTG1_HS with external HS PHY)
|
|
* And others...
|
|
|
|
|
|
## Usage
|
|
|
|
This driver is intended for use through a device hal library.
|
|
Such hal library should implement `UsbPeripheral` for the corresponding USB peripheral object.
|
|
This trait declares all the peripheral properties that may vary from one device family to the other.
|
|
Additionally, hal should pass `fs` of `hs` feature to the `synopsys-usb-otg` library to
|
|
define a peripheral type:
|
|
* `fs` - for FullSpeed peripherals
|
|
* `hs` - for HighSpeed peripherals
|
|
|
|
Only one peripheral type can be selected at the moment.
|
|
|
|
### ULPI Transciever Delay
|
|
|
|
Some ULPI PHYs like the Microchip USB334x series require a delay between the ULPI register write that initiates
|
|
the HS Chirp and the subsequent transmit command, otherwise the HS Chirp does not get executed and the deivce
|
|
enumerates in FS mode. Some USB Link IP like those in the STM32H7 series support adding this delay to work with the
|
|
affected PHYs. Enable the `xcvrdly` feature to add this delay.
|
|
|
|
## Examples
|
|
|
|
See the [usb-otg-workspace](https://github.com/Disasm/usb-otg-workspace) repo for different device-specific examples.
|