跳转到内容

USB 主机接口

ESP32-S2、ESP32-S3、ESP32-S31、ESP32-P4 和 ESP32-H4 上的 USB 主机接口用于连接 USB 外设设备。可以配置多个 设备,但一次只能连接一个。默认情况下设备必须 直接连接到 ESP32,但可以通过将 enable_hubs 选项设置为 true 来更改。

此组件被 usb_uart 组件使用,以允许 ESP32 连接到 USB 串口设备。也可以 在此组件中直接配置设备,但这除了调试目的外没有应用。

# 示例配置条目
usb_host:
enable_hubs: true
max_transfer_requests: 32 # 用于 USB UART 在 115200+ 波特的高吞吐量设备
devices:
- id: device_0
vid: 0x1725
pid: 0x1234
# ESP32-P4 配合 USB 高速(512 字节 MPS)
usb_host:
max_packet_size: 512
  • id (可选, ID): 用于此组件的 id。
  • enable_hubs (可选, boolean): 是否包含对 hub 的支持。默认为 false。
  • max_transfer_requests (可选, int): 最大并发 USB 传输请求数。范围:1-32。默认为 16。如果看到 “All X transfer slots in use” 错误,请增加此值以用于高吞吐量设备(例如 115200+ 波特的 USB UART)。
  • max_packet_size (可选, int): 最大 USB 数据包大小(字节)。默认为 64(USB 全速)。有效选项值为 64、128、256、512 和 1024。适用于 USB-HS 设备,例如 ESP32-P4。
  • devices (可选, list): 要配置的设备列表。
  • id (可选, ID): 分配给设备的 id。
  • vid (必选, int): 设备的供应商 ID。使用 0 作为通配符。
  • pid (必选, int): 设备的产品 ID。使用 0 作为通配符。

将 vid 和 pid 都设置为 0 将匹配任何设备。

如果配置了设备且连接的设备与配置匹配,该设备将 连接到 ESP32,并会在 DEBUG 级别出现日志条目。如果日志级别设置为 VERBOSE, 则将转储设备的配置描述符。设备将保持连接状态,直到 断开连接或 ESP32 重置。

如果插入的设备与任何已配置的设备不匹配,该设备将被断开 并在 DEBUG 级别出现日志条目。