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

ESP开发板通常带有板载USB接口,可能是集成在芯片中(例如ESP32-S系列)或通过板载USB-UART桥芯片实现。 然而,一些基于ESP的设备如果不是为开发设计的,可能不会考虑这一点,并且仅暴露UART0引脚(TX和RX)用于烧录目的。

通常情况下,你会使用一个专用的USB-UART接口板来完成这个任务,但如果没有这样的设备怎么办? 在这种情况下,可以使用一个带有USB-UART桥芯片的开发板来烧录另一个设备。这是通过将ESP芯片置于复位状态实现的,这样它就不会干扰桥芯片的操作。

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

在本指南中,我们将带有功能性USB_UART桥芯片的开发板称为烧录板。

确保你已经阅读了物理连接到您的设备,以便正确理解你的烧录开发板的功能。

Image
ESP烧录目标的连接图

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

ℹ️ Note

  • 大多数ESP32 S和C系列开发板带有独立的USB-UART芯片——它们将USB-UART集成在ESP中。有关ESP32-S系列的说明,请参见下文。

  • 两个板上的5V连接可能标记为5VVIN。有些板可能没有5V连接,并且只需要3.3V。

  • 除了从烧录板为目标板供电外,还可以使用单独的电源,只需确保所有地线引脚都连接在一起。

  • 在烧录开发板上将ENGND连接在一起
  • 烧录开发板上的+5.0V3V3分别连接到目标设备的VIN3V3
  • 烧录开发板的地线或地线连接到目标设备的地线
  • 烧录开发板的TX连接到目标设备的TX
  • 烧录开发板的RX连接到目标设备的RX

通过将EN连接到烧录板的地线来拉低EN,可以防止烧录模块上的ESP芯片启动并污染串行线路。

ℹ️ Note

  • 如果板之前没有加载ESPHome,可能需要将IO0引脚拉低(即连接到GND),以强制板进入烧录模式。 这必须在通电之前完成。

  • 不要用3V3 LDO将3V3连接到目标设备的VIN,因为这可能导致电压骤降。

一旦连接完成,通过USB将烧录板连接到计算机,并使用你打算使用的任何方法继续烧录目标板。

使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
  • 烧录开发板的地线或地线连接到目标设备的地线
  • 烧录开发板的TxD连接到目标设备的RX
  • 烧录开发板的RxD连接到目标设备的TX

由于我们使用ESP的内部UART,TX和RX线路应该是交叉连接的。 这与之前提到的带有外部USB_UART桥芯片的开发板形成对比。

ℹ️ Note

由于我们已经使我们的ESP32-S系列板充当USB_UART桥,因此在该板上烧录另一个二进制文件将不起作用,因为暴露的COM端口对应于USB_UART桥。 为此,你需要首先手动将其置于DOWNLOAD模式。(通过按住RESET并轻按BOOT按钮)

参考资料见