跳转到内容

使用 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 连接可能标记为 5VVIN。某些开发板可能没有 5V 连接,需要仅使用 3.3V。

  • 与其从刷写板为目标板供电,也可以使用单独的电源,只需确保所有地线引脚连接在一起。

  • 将刷写开发板上的 ENGND 连接在一起
  • 刷写开发板上的 +5.0V3V3 分别连接到目标设备的 VIN3V3
  • 刷写开发板的 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/5V3V3 分别连接到目标设备的 VIN3V3
  • 刷写开发板的 GND 或地线连接到目标设备的 GND
  • 刷写开发板的 TxD 连接到目标设备的 RX
  • 刷写开发板的 RxD 连接到目标设备的 TX

因为我们使用的是 ESP 的内部 UART,TX 和 RX 线应该交叉。 这与上述带有外部 USB_UART 桥接芯片的开发板相反。

NOTE

因为我们已经使 ESP32-S 系列开发板充当 USB_UART 桥接器,在其上刷写另一个二进制文件将无法工作,因为暴露的 COM 端口对应于 USB_UART 桥接器。 为此,您需要首先手动将其置于 DOWNLOAD 模式。 (通过按住 RESET 并点击 BOOT 按钮)