Eson Wong's Blog

编程笔记,投资记录, 读书总结, 生活心得

0%

ESP8266EX 自动下载电路

ESP-12F 自动下载电路

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 的电平

自动下载过程中电路的状态变化

  1. 初始状态 DTR 和 RTS、EN 和 GPIO0 均为高电平

    • Q1 和 Q2 导通
    • ESP-12F 处于运行模式

    运行模式

  2. 当我们用 esptool 开时下载固件时,esptool 会先拉低串口芯片的 RTS

    • Q1: 维持导通
    • EN: 通过 Q1 连接到低电平的 RTS,被拉为低电平
    • Q2: 因为连接到 Q2 的基极的 RTS 为低电平,不导通
    • GPIO0: 维持高电平

    ESP-12F 停止工作

    EN 会在电容放完电之后被拉低,ESP-12F 停止工作。

  3. 然后 esptool 会拉低 DTR, 拉高 RTS

    • Q1: 不导通
    • Q2: 导通
    • GPIO0: 通过 Q2 连接到低电平的 DTR,被拉为低电平
    • EN: 通过 Q1 连接到高电平的 RTS,给电容充电的同时,逐渐拉为高电平

    ESP-12F 进入下载模式

    此时 ESP-12F 进入下载模式

  4. 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
请我喝杯咖啡吧!

欢迎关注我的其它发布渠道