跳转至

USB 与 CherryUSB

对于具备受支持 USB 硬件的 SF32 器件和开发板,SiFli-SDK 文档及示例展示了 CherryUSB 集成。请针对具体芯片、开发板和 SDK 版本确认支持的 USB 角色与类,并将 USB 作为完整软件栈设计和验证,而非仅视为硬件功能。

USB 开发涉及固件、描述符、主机操作系统、供电与功耗表现以及生产工具。设备在开发者笔记本上枚举成功一次,并不算完成。

应用场景

  • USB CDC 串口。
  • HID 设备。
  • MSC 存储。
  • USB Audio 麦克风/扬声器。
  • MTP。
  • USB Host:连接 CDC、HID、MSC、UVC 和 UAC 类外设(以 SDK 和开发板支持为前提)。

实用流程

  1. 确认开发板引出了所需 USB 接口和电源路径。
  2. 从最接近需求的 SDK USB 示例开始。
  3. 在 Windows、macOS 和 Linux 上测试枚举。
  4. 验证挂起/恢复以及拔插 USB 线缆时的行为。
  5. 记录 VID/PID、描述符和预期使用的驱动。

测试内容

  • 先在设备断电时连接 USB,再给设备上电;并测试设备运行时插入或拔出 USB 线缆。
  • 连接状态下复位。
  • 主机睡眠/唤醒。
  • 传输过程中断开线缆。
  • Windows、macOS 和 Linux 枚举。
  • 启用多个类别(Class)时的复合设备行为。
  • 告知用户:仅供电、不含数据线芯的 USB 线缆不支持数据通信。

描述符检查表

  • VID/PID 的归属明确。
  • USB 产品描述字符串已定稿,或已纳入版本管理。
  • 已定义序列号行为。
  • 类别(Class)/子类(Subclass)/协议(Protocol)的取值与目标主机驱动匹配。
  • 固件升级前后,复合接口保持稳定。

SDK 示例

SiFli-SDK 官方 CherryUSB 示例索引将 USB Device 和 USB Host 示例分开组织。先按产品需要确定 USB 角色和设备类别,再从相应示例入手;其描述符、电源和主机兼容性检查也应落实到产品实现中。

表:适用于 SF32LB58x 的 SiFli-SDK CherryUSB 示例
USB 角色 示例 适用起点
设备(Device) USB 麦克风 USB Audio Class 1 麦克风
设备(Device) USB 麦克风和扬声器 USB Audio Class 1 双向音频
设备(Device) CDC ACM USB 通信设备
设备(Device) CDC ACM UART USB 转 UART 桥接
设备(Device) CDC + HID + MSC USB 复合设备
设备(Device) HID 鼠标 USB HID 指针设备
设备(Device) NOR Flash MSC 以 NOR Flash 为后端的 USB 大容量存储设备
设备(Device) RAM Disk MSC 以 RAM 为后端的 USB 大容量存储设备
设备(Device) 双 RAM Disk MSC 以 RAM 为后端的两个逻辑单元
设备(Device) SD/eMMC MSC 以 SD 卡或 eMMC 为后端的 USB 大容量存储设备
设备(Device) MTP(DFS + RAM 磁盘) 媒体传输协议(Media Transfer Protocol,MTP)设备
主机(Host) CDC ACM Host 与 CDC ACM 外设通信
主机(Host) HID Host 连接并读取 HID 外设
主机(Host) MSC Host 连接 USB 大容量存储外设
主机(Host) UVC + UAC Host 连接 USB 视频类和音频类外设

最后更新: