ESP-12F 是一款集成了 ESP8266EX 芯片的模块,在 ESP-12F 上 GPIO0 引脚 在 EN 引脚上升沿(从低电平到高电平)时,如果 GPIO0 引脚为低电平,ESP-12F 将进入下载模式。
在电子设备中,EN 引脚(Enable Pin),也称为使能引脚,是一个控制信号引脚,用于控制芯片或模块的使能状态。当 EN 引脚为高电平时,芯片或模块处于工作状态;当 EN 引脚为低电平时,芯片或模块处于待机或关断状态。
所以可以用 USB 转 TTL 串口芯片通过控制 GPIO0 和 EN 引脚的电平,来实现自动下载固件和进入运行模式,而不需要增加一个下载按键。
USB 转 TTL 串口芯片
USB 转 TTL 串口芯片通常有 DTR, RTS, TXD, RXD 等引脚,其中 DTR 和 RTS 引脚则可以用来控制 ESP12F 的 GPIO0 和 EN 引脚。TXD 和 RXD 用于串口通信,下载固件时传输固件数据。
DTR: Data Terminal Ready,数据终端就绪,用于控制数据终端设备是否准备好接收数据,当 DTR 为高电平时,表示数据终端设备准备好接收数据。
RTS: Request To Send,请求发送,用于控制数据终端设备发送数据的请求,当 RTS 为高电平时,表示数据终端设备请求发送数据。
TXD: Transmit Data,发送数据,用于发送数据。
RXD: Receive Data,接收数据,用于接收数据。
自动下载电路
以 USB 转 TTL 串口芯片 CH340C 为例 GPIO0 和 EN 与 DTR 和 RTS 的连接方式如下:
- EN 和 GPIO0 通过两个上拉电阻连接到 VCC,默认为高电平
- EN 连接一个电容,让 EN 引脚在电平变化时有一个延时
- EN 连接到 NPN 三极管 Q1 的发射极
- DTR 连接到 Q1 的基极
- RTS 连接到 Q1 的发射极,和 DTR 共同控制 EN 的电平
- GPIO0 连接到 NPN 三极管 Q2 的发射极
- RTS 连接到 Q2 的基极
- DTR 连接到 Q2 的发射极,和 RTS 共同控制 GPIO0 的电平
自动下载过程中电路的状态变化
初始状态 DTR 和 RTS、EN 和 GPIO0 均为高电平
- Q1 和 Q2 导通
- ESP-12F 处于运行模式
当我们用 esptool 开时下载固件时,esptool 会先拉低串口芯片的 RTS
- Q1: 维持导通
- EN: 通过 Q1 连接到低电平的 RTS,被拉为低电平
- Q2: 因为连接到 Q2 的基极的 RTS 为低电平,不导通
- GPIO0: 维持高电平
EN 会在电容放完电之后被拉低,ESP-12F 停止工作。
然后 esptool 会拉低 DTR, 拉高 RTS
- Q1: 不导通
- Q2: 导通
- GPIO0: 通过 Q2 连接到低电平的 DTR,被拉为低电平
- EN: 通过 Q1 连接到高电平的 RTS,给电容充电的同时,逐渐拉为高电平
此时 ESP-12F 进入下载模式
esptool 会让串口芯片发送固件
参考
广告
本文由我在制作 E-ink Todo List 墨水屏待办 DIY 的 PCB 板时总结的,我还写了一篇《墨水屏 Todo List 制作教程》。
👋 E-ink Todo List 墨水屏待办 DIY 的 PCB 现已上架售卖 😇,此 PCB 板可代替教程中的开发板和屏幕转接板。爱好 DIY 的朋友们可以下单购买制作。
E-ink Todo List 墨水屏待办的成品正在起来的路上!!!
下面是 PCB 板的购买途径。
EsonWong 的微信小店
![E-ink Todo List PCB](/asset/e-ink-todo-list-pcb.jpeg)