ESP8266_CH340G串口自动下载固件库原理

前言

** 手头有两块ESP8266的开发板,一块是大家比较熟悉的NodeMCU , 另外一块是espressif 官方的开发板,两块开发板在下载程序的时候,有很大的区别,espressif 官方开发板需要手动以拨动开关的方式去reset 相关引脚,使得esp8266进入boot模式,而nodeMCU 则不需要手动去设置,运行下载脚本时,自动会进入boot模式。为了探究其中的奥秘,笔者查阅了相关资料,并且对其原理进行了剖析,整理了这篇文章,以便给大家在进行ESP8266电路设计时提供一定的参考。

ESP8266 BOOT流程

再默认上电情况下GPIO0高,EN高,RST高,GPIO15低
官方资料显示,ESP8266想要进入BOOT模式,必须满足以下条件

1 ) CHIP_EN 引脚 置高

2 ) GPIO0 引脚 置低 (置高则进入从FLASH运行模式)

而在实际设计过程中,CHIP_EN引脚,通常是处于高电平状态.(如果是MCU 控制是否使能WiFi模块, 则建议将CHIP_EN引脚接上拉电阻,使其初始状态为高电平)
ESP8266_CH340G串口自动下载固件库原理

硬件上为了自动下载设计

ESP8266_CH340G串口自动下载固件库原理
下载固件的过程需要用到CH340G,所以就用到DTR 和RTS 引脚,如果利用这两个引脚分别去控制ESP8266的RESET和GPIO0引脚, 在下载过程中按照下载的时序去设置其电平状态,那么就可以实现一键下载。

所以,综上,要从硬件和软件上分别去改造,首先看下硬件上的改造。
ESP8266_CH340G串口自动下载固件库原理
上面的电路中,DTR 和RTS 分别来自UART转USB CH340G芯片,

当 DTR为1, RTS为0时, nRST复位引脚拉低,反之,GPIO0 引脚拉低,逻辑关系如下:
ESP8266_CH340G串口自动下载固件库原理