USB 主机 UART 接口
此组件允许具有 USB 主机支持(ESP32-S2、ESP32-S3、ESP32-S31、ESP32-P4 或 ESP32-H4)的 ESP32 主机 USB 串口外设设备。它使用 Usb Host 组件作为 USB-OTG 主机与设备交互。
当前支持的设备列在下表中:
| 名称 | VID | PID | 描述 |
|---|---|---|---|
| CDC_ACM | 0x0000 | 0x0000 | USB CDC ACM(抽象控制模型) |
| CH34X | 0x1A86 | 0x55D5 | USB 转串口适配器,多通道 |
| CH340 | 0x1A86 | 0x7523 | USB 转串口适配器,单通道 |
| CP210X | 0x10C4 | 0xEA60 | Silicon Labs USB 转 UART 桥接器 |
| ESP_JTAG | 0x303A | 0x1001 | ESP32 JTAG 接口 |
| FT232 | 0x0403 | 0x6001 | FTDI USB 转串口适配器单端口 |
| FT2232 | 0x0403 | 0x6010 | FTDI USB 转串口适配器双端口 |
| FT4232 | 0x0403 | 0x6011 | FTDI USB 转串口适配器双端口 |
| PL2303 | 0x067B | 0x2303 | Prolific USB 转串口适配器 |
| PL2303GC | 0x067B | 0x23A3 | Prolific PL2303 G 系列(GC) |
| PL2303GB | 0x067B | 0x23B3 | Prolific PL2303 G 系列(GB) |
| PL2303GT | 0x067B | 0x23C3 | Prolific PL2303 G 系列(GT) |
| PL2303GL | 0x067B | 0x23D3 | Prolific PL2303 G 系列(GL) |
| PL2303GE | 0x067B | 0x23E3 | Prolific PL2303 G 系列(GE) |
| PL2303GS | 0x067B | 0x23F3 | Prolific PL2303 G 系列(GS) |
| STM32_VCP | 0x0483 | 0x5740 | STM32 虚拟 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 将匹配任何设备。
通道配置选项
Section titled “通道配置选项”- 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 端点。