乐鑫 ESP USB Bridge 项目介绍
ESP USB Bridge (https://github.com/espressif/esp-usb-bridge) 是一个 ESP-IDF (https://github.com/espressif/esp-idf) 项目,能够利用 ESP32-S2 (https://www.espressif.com/zh-hans/products/socs/esp32-s2) 或 ESP32-S3 (https://www.espressif.com.cn/zh-hans/products/socs/esp32-s3) 在计算机 (PC) 和目标微控制器 (MCU) 之间建立桥接,从而替代 USB 转 UART /JTAG 桥接芯片(例如 CP210x)。
以下是 ESP USB Bridge 的概念框图:

ESP USB Bridge 创建了一个复合 USB 设备,可以通过 USB 电缆被计算机访问。以下是其主要应用场景:
串口桥接:开发者可以运行 esptool (https://github.com/espressif/esptool) 或其他串口终端程序连接到 ESP USB Bridge CDC 功能提供的串口上。通过它实现 PC 和目标 MCU 之间的双向通信。
JTAG 桥接:可以在 PC 上运行 openocd-esp32 (https://github.com/espressif/openocd-esp32),与 ESP USB Bridge JTAG 功能相连,作为 PC 和 MCU 之间的桥梁,实现两者之间的双向 JTAG 通信。
大容量存储设备:可以通过 PC 的文件浏览器访问 ESP USB Bridge MSC 功能创建的磁盘,把 UF2 格式的二进制文件复制到这个磁盘后,将使用它们来烧录目标 MCU。目前,ESP USB Bridge 支持烧录各种乐鑫微控制器。
注意,上述 readme 文件仅使用 ESP32-S2 作为示例,ESP USB Bridge 也支持 ESP32-S3。

如何编译项目
用户需要使用 ESP-IDF v4.3 (https://github.com/espressif/esp-idf/tree/v4.3) 或更新版本编译该项目。
使用 idf.py menuconfig 改变默认配置。项目的具体设置在“桥接配置”的子菜单中;
使用 idf.py build 构建项目的二进制文件;
使用 idf.py -p PORT flash monitor 将烧录 ESP32-S2 并打开终端程序进行监控。注意,PORT 是指由连接到 ESP32-S2 串口的 USB 转 UART 芯片所创建的串口,不是 ESP32-S2 直接提供的 USB 接口,这个串口只能用于烧录。此后,ESP USB Bridge 即可通过 USB 接口工作。

开发板
原理图 (https://github.com/espressif/esp-usb-bridge/blob/master/images/schematics.pdf) 中展示了一个将 ESP32-S2 (ESP USB Bridge) 与目标 MCU (ESP32) 相连的简单开发板。项目的默认配置已使用此特定设置进行了测试。
ESP USB Bridge 也可以用于生产和烧录其他类似的开发板。引脚编号、供应商 ID、产品 ID,以及任何其他设置都可以在 idf.py menuconfig 中进行修改。
请注意,每块开发板都应有自己的供应商 ID 和产品 ID。您可以在乐鑫 USB Vendor PID 仓库 (https://github.com/espressif/usb-pids) 注册产品 ID。
请前往 GitHub (https://github.com/espressif/esp-usb-bridge) 获取更多关于 ESP USB Bridge 的细节。