【esp32 学习笔记】ESP32各型号模组进入下载模式的引脚配置及其自动下载电路
1.通用带外围(三极管)自动下载电路
不同型号的ESP32模组的自动下载电路都相同,只是RST/EN,Boot引脚的引脚号不同,例如ESP32-C3的 BOOT 脚为IO9, 而ESP32-WROOM-32的 BOOT 脚为IO0.

图 ESP32的自动下载电路
2.进入下载模式的引脚配置
2-1 ESP32 BOOT脚为GPIO0
一般只有自动下载电路是不能在下载模式和运行模式来回变化的,自动下载电路只能调整boot和en脚的电平变化来满足下载时序

上图为esp32和esp8266下载模式和正常运行模式(SPI启动模式)所需的引脚配置.
由上面的下载电路可知,GPIO2没有被配置,为了能启动下载模式,GPIO2要常态为低电平(因为SPI启动模式与GPIO2无关),所以GPIO2要下拉(虽然默认下拉,但外接下拉更保险),
同理,GPIO0要常态高电平才能进入SPI启动模式,要上拉。
因为GPIO0接入自动下载电路,其在进入下载模式时的电平切换是自动的。

如图IO0上拉,IO2下拉
下面列出ESP32-C2(ESP8684),ESP32-C3(ESP8685),ESP32-C6,ESP32-S2 ,ESP32-S3进入下载模式的引脚电平要求:
2-2 ESP32-C2(ESP8684)BOOT脚为GPIO9

2-3 ESP32-C3(ESP8685)BOOT脚为GPIO9

2-4 ESP32-C6 BOOT脚为GPIO9

2-5 ESP32-S2 BOOT脚为GPIO0

2-6 ESP32-S3 BOOT脚为GPIO0

3. 扩展:免外围电路(无需三极管和电阻)ESP32/ESP8266系列单片机串口一键下载方案:CH340x 和 CH343P
一、概述
CH340X、CH343、CH342等USB转串口芯片支持免外围电路ESP32/ESP8266等单片机串口一键下载功能,对此类支持多模式启动的单片机,无需外围三极管等逻辑控制电路,将芯片提供的输出信号脚直连MCU的BOOT控制引脚(GPIO0)与CHIP_PU芯片使能引脚(EN)即可实现MCU BOOT和APP模式的控制切换和固件下载。


二、方案特点
- 电路精简可靠,串口上电、掉电、打开、关闭等操作均不影响MCU运行模式。传统一键下载电路需要2个三极管配合使用以保持BOOT常态低电平以及防止串口软件开关时MCU误复位或误进BOOT下载模式。
- ESP系列单片机原有下载软件可直接使用,无需更改。
- 支持自动下载。利用USB的热插拔特性和CH343PT库,可在软件端实现USB设备插入后自动下载。
- 提供QFN16、ESSOP10、SOP16等封装,还可定制封装。
- CH340X支持5V耐压和防向内电流倒灌。
- CH343支持串口IO独立供电,可支持5V/3.3V/2.5V/1.8V等串口通讯,支持防向内电流倒灌。待机模式下最低功耗仅2uA。
三、下载原理及电路说明
ESP系列MCU启动模式:
|
GPIO0 (默认上拉) |
GPIO2 (默认下拉) |
说明 |
|
0 |
0 |
下载启动模式 |
|
1 |
X |
FLASH启动模式 |
MCU为低电平复位,硬件上需要满足MCU复位后自动进入“串口下载”模式。下载时序示意图:

注:图中EN为复位引脚(RST),GPIO为BOOT引脚(BOOT)
进行一键下载时,计算机端下载软件打开串口,
- S1: 先设置DTR#(IO0-BOOT)为低电平、设置RTS#(EN-RST)为低电平、再高电平,MCU自动复位进入BOOT下载程序。
- S2: 下载完成后,需恢复DTR#(BOOT)为高电平、设置RTS#(RESET)为低电平、再高电平,MCU自动复位后正常运行应用程序。
注:
- CH340X芯片,5#脚和6#脚之间串接3~5.6KΩ电阻时#6脚会自动切换为推挽输出的DTR#功能,引脚默认为强高电平,由应用程序设置DTR引脚输出高低电平。
- CH340X的串口电压由芯片VCC供电电压决定,CH343的串口电压由芯片VIO供电电压决定,使用时需注意电压匹配。
- 需配合CH341SER V3.7及以上版本驱动使用。
四、疑问

下载软件:

4. 扩展:采用UMH3N
自动下载电路

R3与R4,作用是分压与限流。防止三极管烧坏。
RST和IO0与NPN型三极管集电极连接,并通过上拉电阻连接到VCC,这里的上拉电阻和VCC,它们是存在于ESP8266引脚内部的。
这里电阻和三极管的组合可以使用一个集成芯片:UMH3N。图如下。

IO0连接的是ESP8266的GPIO0端口,该引脚功能为烧录固件或者运行模式控制端口。
ESP8266如何进入下载模式呢?概括来说下面两句话:
1.在复位上升沿时,GPIO0为1,则进入FLASH运行模式,此时内部程序正常运行。
2.在复位上升沿时,GPIO0为0,则进入BOOT模式,此时可通过串口下载程序。
分析RTS和DTR是如何影响IO0与RST的:
RTS=1,DTR=1。Q1截止,Q2截止。IO0、RST悬空,默认高电平。
RTS=0,DTR=0。Q1截止,Q2截止。IO0、RST悬空,默认高电平。
RTS=0,DTR=1。Q2导通,Q1截止。RST=0,IO0=1;
RTS=1,DTR=0。Q1导通,Q2截止。RST=1,IO0=0;
这里需要知道的是RTS和DTR状态可由程序决定。
// 自动下载代码
// 这里用变量Download表明程序下载按钮的状态
if( Download ) //下载动作为真
(
DTR = 1;
RTS = 0;
// 此时RST = 0,GPIO0 = 1
// 触发复位
Delay();
DTR = 0;
RTS = 1;
// 此时RST = 1,GPIO0 = 0
// RST通常会接电容,他的跳变延迟一会儿,就检测到了GPIO = 0;
// 即上跳变发生,GPIO = 0进入烧录。
Delay();
// 延时确保跳变的发生
DTR = 1;
// RST与GPIO悬空,不受自动下载电路影响
)
DownloadCode();
// 向MCU发送烧录程序
// 下载是否完成,电脑上的软件会提示
5. 扩展:STC15自动下载电路
原理:
当我们在stc官方烧录软件点击下载时,烧录软件会以最低波特率(默认2400)连续发送0x7f,同时ch340的DTR和RTS引脚会拉低,直到单片机冷启动或者烧录软件检测超时。

原理分析
- 模块上电稳定后没有下载命令时,DTR/RTS输出高电平,电容C11右端为高电平,NPN三极管Q2导通,pmos管Q1(si2301cds)导通,目标单片机上电。
- 当stc烧录软件发出下载信号时,DTR/RTS拉低,左右两端均为高电平的C11左端被拉低。因为电容两端电压不能突变,所以当电容左端电压突变瞬间,电容相当于短路,右端被拉低,pmos截止,目标单片机掉电。
- 短暂掉电后,DTR/RTS 恢复高电平,同时C11右端恢复为高电平,目标单片机上电并检测到stc烧录软件的下载信号后下载程序。
参考文章
1. ESP32各型号模组进入下载模式的引脚配置及其自动下载电路:https://blog.csdn.net/WCH_TechGroup/article/details/124319456
2. 《免外围电路ESP32/ESP8266系列单片机串口一键下载》:https://blog.csdn.net/qq_62361151/article/details/130102202

浙公网安备 33010602011771号