我已经使用 ESP32-PICO 套件一段时间了,并且总是通过提供的 USB 端口将其连接到 PC。上传包括自动重置在内的新固件在这里从来都不是问题。现在,为了准备仅使用 ESP32-WROOM 模块的定制
PCB,我自己构建了这样一个复位和启动
电路。我使用了一个暴露 DTR 和 RTS 线路的 FTDI232 模块,并构建了 PICO 套件示意图中所示的双晶体管电路。我还跟踪了这些信号,并为 EN 和 IO0 添加了两个接地电容器。
此设置通常适用于 ESP-IDF(使用 PlatformIO)。我注意到 pio 串行监视器(与任何其他终端应用程序一样)在连接时激活 DTR 和 RTS 线,因此我在关闭监视器时观察到重置。pio 串行监视器有防止这种情况发生的选项,而 PuTTY 没有。此外,在将 USB 串行模块连接到 PC 后,DTR 和 RTS 线仍会跳动一小会儿。
我知道晶体管在常见情况下应避免意外重置。但它不是很稳定,仍然需要自定义终端应用程序配置。这一切让我相信整个电路只是一个狡猾的 hack,可以在开发过程中更轻松地上传固件。毕竟,所有这些基于 ESP 的模块都被称为“开发工具包”,这可能意味着它们不应该按原样用于最终产品设计中。
我目前正在设计两种不同的产品设备。一种主要通过 USB 使用(用于与主机供电和
通信,以后也可能仅用于使用蓝牙通信供电),另一种通常没有任何 USB 连接。这两种设备不应该经常需要固件上传。