#usb #嵌入式 #no-std

no-std esp-synopsys-usb-otg

为Synopsys USB OTG IP核实现'usb-device'接口

5个版本

0.4.2 2024年7月5日
0.4.1 2024年4月16日
0.4.0 2023年12月11日
0.3.2 2023年7月14日
0.3.1 2022年11月2日

#122硬件支持

Download history 1854/week @ 2024-05-04 1719/week @ 2024-05-11 2541/week @ 2024-05-18 2839/week @ 2024-05-25 2049/week @ 2024-06-01 2254/week @ 2024-06-08 2004/week @ 2024-06-15 2338/week @ 2024-06-22 2427/week @ 2024-06-29 2294/week @ 2024-07-06 3202/week @ 2024-07-13 3851/week @ 2024-07-20 3382/week @ 2024-07-27 3922/week @ 2024-08-03 4509/week @ 2024-08-10 3197/week @ 2024-08-17

15,944 每月下载量
用于 3 个crates(2个直接)

MIT 许可证

420KB
8K SLoC

crates.io crates.io

这是synopsys-usb-otg的分支,增加了对ESP32-Sx的支持 - 当目标不是ESP32-Sx时,请使用https://github.com/stm32-rs/synopsys-usb-otg

synopsys-usb-otg

usb-device 为Synopsys USB OTG IP核实现。

该项目是伟大工作的继承,由@mvirkkunen开始。

支持的微控制器

  • STM32F429xx (OTG_FS和OTG_HS在FS模式)
  • STM32F401xx
  • STM32F446xx (OTG_FS和OTG_HS在FS模式)
  • STM32F723xx (OTG_FS和OTG_HS带有内部HS PHY)
  • STM32H7xxxx (OTG1_HS和OTG2_HS在FS模式,以及OTG1_HS带有外部HS PHY)
  • 以及其他...

使用方法

此驱动程序旨在通过设备hal库使用。此类hal库应为相应的USB外设对象实现UsbPeripheral。此trait声明了可能因设备系列而异的所有外设属性。此外,hal应将fshs功能传递给synopsys-usb-otg库以定义外设类型

  • fs - 用于全速外设
  • hs - 用于高速外设

目前只能选择一个外设类型。

ULPI收发器延迟

一些ULPI PHY,如Microchip USB334x系列,在HS Chirp启动和后续发送命令之间需要延迟,否则HS Chirp不会执行,设备将以FS模式枚举。一些USB Link IP,如STM32H7系列中的那些,支持向受影响的PHY添加此延迟。启用xcvrdly功能以添加此延迟。

示例

请参阅usb-otg-workspace仓库中的不同设备特定示例。

依赖关系

~1.5MB
~29K SLoC