跳转到内容

USB 主机 UART 接口

此组件允许具有 USB 主机支持(ESP32-S2、ESP32-S3、ESP32-S31、ESP32-P4 或 ESP32-H4)的 ESP32 主机 USB 串口外设设备。它使用 Usb Host 组件作为 USB-OTG 主机与设备交互。

当前支持的设备列在下表中:

名称VIDPID描述
CDC_ACM0x00000x0000USB CDC ACM(抽象控制模型)
CH34X0x1A860x55D5USB 转串口适配器,多通道
CH3400x1A860x7523USB 转串口适配器,单通道
CP210X0x10C40xEA60Silicon Labs USB 转 UART 桥接器
ESP_JTAG0x303A0x1001ESP32 JTAG 接口
FT2320x04030x6001FTDI USB 转串口适配器单端口
FT22320x04030x6010FTDI USB 转串口适配器双端口
FT42320x04030x6011FTDI USB 转串口适配器双端口
PL23030x067B0x2303Prolific USB 转串口适配器
PL2303GC0x067B0x23A3Prolific PL2303 G 系列(GC)
PL2303GB0x067B0x23B3Prolific PL2303 G 系列(GB)
PL2303GT0x067B0x23C3Prolific PL2303 G 系列(GT)
PL2303GL0x067B0x23D3Prolific PL2303 G 系列(GL)
PL2303GE0x067B0x23E3Prolific PL2303 G 系列(GE)
PL2303GS0x067B0x23F3Prolific PL2303 G 系列(GS)
STM32_VCP0x04830x5740STM32 虚拟 COM 端口

请注意,4 通道设备在 ESP32-S3 上由于 硬件限制一次只能使用 3 个通道。ESP32-P4 不受此限制影响,可以使用全部 4 个通道。

# 示例最小配置条目
usb_uart:
- type: cp210x
channels:
- id: uch_1
baud_rate: 9600
buffer_size: 1024
  • id (可选, ID): 用于此组件的 id。
  • type (必选, string): 要连接的 USB 串口设备类型。可选 ft23xx、ch34x、ch340、esp_jtag、stm32_vcp、cdc_acm、cp210x、pl2303、pl2303gc、pl2303gb、pl2303gt、pl2303gl、pl2303ge、pl2303gs。
  • channels (必选, list): 要配置的通道列表。
  • vid (可选, int): 设备的供应商 ID。使用 0 作为通配符。每种类型都有一个默认 VID,如果设置了此选项则会被覆盖。
  • pid (可选, int): 设备的产品 ID。使用 0 作为通配符。每种类型都有一个默认 PID,如果设置了此选项则会被覆盖。

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

  • id (可选, ID): 分配给通道的 id。此 id 可以在任何需要 uart 组件的地方使用。
  • baud_rate (必选, int): 通道要使用的波特率。对于 stm32_vcp、esp_jtag 和 cdc_acm 类型是可选的。
  • buffer_size (可选, int): 通道要使用的缓冲区大小。默认为 256 字节。
  • stop_bits (可选, float): 要使用的停止位数。默认为 1。其他选项为 1.5 和 2。
  • data_bits (可选, int): 要使用的数据位数,范围 5-8。默认为 8。
  • parity (可选, string): 要使用的校验。可选 NONE、EVEN、ODD、MARK 和 SPACE。默认为 NONE。
  • dummy_receiver (可选, boolean): 如果设置为 true,通道将消耗任何接收到的数据。这对于调试很有用。默认为 false。
  • debug (可选, boolean): 如果设置为 true,通道将记录所有发送和接收的数据。默认为 false。
  • debug_prefix (可选, string): 添加到每个调试日志行前面的字符串,用于此通道。 当多个通道启用了调试时,有助于在日志中区分它们的输出。默认为 ""。
  • flush_timeout (可选, Time): 调用 flush() 时等待 USB 输出队列排空的最大时间。如果队列在此时间内未排空,flush() 返回 TIMEOUT 结果。默认为 100ms。

cdc_acm 类型是通用的 USB CDC ACM(抽象控制模型)设备。这是一种用于串行通信的常见 USB 设备类。 此驱动程序不严格强制 CDC-ACM 配置规范,因此可能与未正确实现该规范的设备一起工作。它期望找到单个中断端点、单个 bulk in 端点和单个 bulk out 端点。