跳转到内容

使用 ESP 开发板作为 USB-UART 桥接器

ESP 开发板通常具有板载 USB 接口,要么集成在芯片内部(例如 ESP32-S 系列),要么通过板载 USB-UART 桥接芯片实现。然而,一些非用于开发目的的 ESP 设备并不具备此功能,仅暴露 UART0 引脚(TX 和 RX)用于刷写。

通常情况下,你会使用专用的 USB-UART 接口板来完成此操作,但如果没有怎么办呢?在这种”紧急”情况下,可以使用具有 USB-UART 桥接芯片的开发板来刷写另一台设备。这是通过将 ESP 芯片保持在复位状态来实现的,这样它就不会干扰桥接芯片的操作。

这不需要在开发板上刷写任何固件,也不会改变已刷写在开发板上的任何内容——它纯粹是一种使用串行接口芯片的方式。

在本指南中,我们将具有可用 USB-UART 桥接芯片的开发板称为刷写板。

请确保你已经阅读了物理设备连接,以正确理解刷写开发板的功能。

ESP 刷写目标连接示意图

你需要进行以下电气连接:

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 按钮)