#usb #gd32 #嵌入式

无 std gd32-synopsys-usb-otg

针对Synopsys USB OTG IP核心的'usb-device'实现 -- gd32补丁

1个不稳定版本

0.4.1 2024年8月3日

#812硬件支持

Download history 129/week @ 2024-08-03 7/week @ 2024-08-10

136 每月下载次数
用于 gd32c1x3-hal

MIT 协议

405KB
8K SLoC

crates.io crates.io Build Status

这是一个补丁包,允许GD32VFxxx和GD32C1x3设备拥有功能性的USB

一旦上游 合并相关PR。 将会被弃用

synopsys-usb-otg

usb-device 针对Synopsys USB OTG IP核心的实现。

本项目是@mvirkkunen 开创的出色工作的继承。

支持的微控制器

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

使用方法

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

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

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

ULPI收发器延迟

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

示例

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

依赖项

~1.5MB
~29K SLoC