使用 ESP 开发板作为 USB-UART 桥接器
ESP 开发板通常具有板载 USB 接口,要么集成在芯片内部(例如 ESP32-S 系列),要么通过板载 USB-UART 桥接芯片实现。然而,一些非用于开发目的的 ESP 设备并不具备此功能,仅暴露 UART0 引脚(TX 和 RX)用于刷写。
通常情况下,你会使用专用的 USB-UART 接口板来完成此操作,但如果没有怎么办呢?在这种”紧急”情况下,可以使用具有 USB-UART 桥接芯片的开发板来刷写另一台设备。这是通过将 ESP 芯片保持在复位状态来实现的,这样它就不会干扰桥接芯片的操作。
这不需要在开发板上刷写任何固件,也不会改变已刷写在开发板上的任何内容——它纯粹是一种使用串行接口芯片的方式。
在本指南中,我们将具有可用 USB-UART 桥接芯片的开发板称为刷写板。
请确保你已经阅读了物理设备连接,以正确理解刷写开发板的功能。

你需要进行以下电气连接:
NOTE
-
大多数 ESP32 S 和 C 系列开发板没有独立的 USB-UART 芯片——它们内置在 ESP 中。有关 ESP32-S 系列的说明,请参见下文。
-
两块板上的 5V 连接可能标记为
5V或VIN。某些板可能没有 5V 连接,仅需 3.3V。 -
除了从刷写板为目标板供电外,也可以使用独立的电源,只需确保所有接地引脚连接在一起即可。
- 将刷写开发板上的
EN和GND连接在一起 - 刷写开发板上的
+5.0V或3V3分别连接到目标设备的VIN或3V3 - 刷写开发板的
GND(地)连接到目标设备的GND - 刷写开发板的
TX连接到目标设备的TX - 刷写开发板的
RX连接到目标设备的RX
将 EN 与 GND 连接(拉低)在刷写板上可防止刷写模块上的 ESP 芯片启动并干扰串行线路。
NOTE
-
如果该板之前未加载过 ESPHome,你可能需要将
IO0引脚拉低(即连接到GND)以强制该板进入刷写模式。 这必须在供电之前完成。 -
不要将目标设备的 3V3 连接到带有 3V3 LDO 的 VIN,因为这可能导致电压过低。
连接完成后,通过 USB 将刷写板插入计算机,然后按照你计划的方式刷写目标板。
使 ESP32-S 系列开发板充当 USB-UART 桥接器
Section titled “使 ESP32-S 系列开发板充当 USB-UART 桥接器”使用 ESP32-S2/S3 开发板的用户可以查看 https://github.com/espressif/esp-usb-bridge 作为替代方案。但请注意,它需要先使用 ESP-IDF 刷写你的 S2/S3 板,使其充当 USB-UART 桥接器。在 SDKconfig 中,请确保验证 TxD/RxD 信号的 GPIO 引脚。
使用 ESP32-S 开发板刷写目标设备所需的连接如下:
- 刷写开发板上的
VU/VUSB/5V或3V3分别连接到目标设备的VIN或3V3 - 刷写开发板的
GND(地)连接到目标设备的GND - 刷写开发板的
TxD连接到目标设备的RX - 刷写开发板的
RxD连接到目标设备的TX
因为我们使用的是 ESP 的内部 UART,所以 TX 和 RX 线应交叉连接。这与前面提到的带有外部 USB-UART 桥接芯片的开发板不同。
NOTE
因为我们已将 ESP32-S 系列板设置为充当 USB-UART 桥接器,所以在其上刷写其他二进制文件将不起作用,因为暴露的 COM 端口对应的是 USB-UART 桥接器。 为此,你需要首先手动将其置于 DOWNLOAD 模式。 (按住 RESET 并轻按 BOOT 按钮)