硬件环境如下:
乐鑫官方开发板 esp8266-devkitc
板载自动下载电路如下:
开发板入门指南的描述如下:
显然,选择自动下载功能后,rts 就是 auto_rts
此处,esp8266 的自动下载涉及 cp2102 的两个引脚,dtr 和 rts
dtr 引脚是 modem 联络输出信号,数据终端就绪,低有效;
rts 引脚也是 modem 联络输出信号,请求发送,低有效;
注意,所谓 modem 联络信号都是由计算机应用程序控制并定义其用途的
esp8266工作模式
下载模式:芯⽚启动时,若 io0 为低电平,芯⽚会进⼊下载模式;
运⾏模式:芯⽚启动时,若 io0 为⾼电平,芯⽚会进⼊运⾏模式;
上图的逻辑关系如下:
显然,这种逻辑关系下 en 和 io0 不可能同时为 0,
然而,esp8266 进入下载模式却需要如下条件:
那么,问题来了,单靠以上电路 esp8266 无法进入下载模式。
网上找到了一些解释,然而并不能让我信服……可能大多参考了正点原子的自动下载电路原理,但人家的自动下载功能也需要 mcu-isp 软件配合才能实现啊……等等,吐槽之中获得灵感,esp8266 不也是有下载软件的嘛,就算在命令行下不也是有下载脚本的嘛。
显然,下载软件是看不出所以然的。
那么,找到官方 sdk 中的下载脚本源码
esp8266_rtos_sdk/components/esptool_py/esptool/esptool.py
隐藏的好深,看程序的注释其实就差不多了
利用 rts 控制 en 或 nrst,因为它们都是低电平触发芯片复位;
利用 dtr 控制 io0,低电平启动则进入下载模式;
注意,此处 true 为低电平,false 为高电平
程序解析如下:
设置 dtr = 1,rts = 0,此时 q1 导通,q2 截止,en = rts = 0,io0 = 1,芯片掉电复位;
延时 100ms,为了确保 en 为低电平,原因嘛很简单,因为 en 附近有一个 rc 电路,充放电都是需要时间的
例如低电平为 0.25vcc,则由高电平放电至低电平需要的时间可按如下公式计算:
此处,t ≈ 0.29ms,延时 100ms 绰绰有余。
设置 dtr = 0,rts = 1,此时 q1 截止,q2 导通,en = 1,io0 = 0,芯片重新上电,由于 io0 为低电平,芯片进入下载模式;
延时 50ms,为了确保 en 为高电平
同理,
此处,t ≈ 1.39ms,延时 50ms 绰绰有余
设置 dtr = 1,rts = 1,此时 q1 导通,q2 导通,en = 1,io0 = 1,确保下载完成后再复位芯片正常运行;
补充一下,不点击下载按钮的话,实际测试 dtr 和 rts 均为高电平,也就是说不会影响 esp8266 芯片的正常运行。
物联网网关怎样将事物连接上云
佳明手持GPS eTrex 221x
三星布局LED “野心”昭然
关于电动汽车系统中减震器的知识介绍
电流互感器原理_电流互感器的运用
ESP8266自动下载电路分析
新一代iPhone命名为iPhone8?错了,是iPhoneX!
高云半导体受邀德国Embedded World展会将进行两场主题演讲
关于光照培养箱使用说明的详细介绍
1MORE发布首款无线智能辅听耳机
CAN控制器、CAN收发器、CAN驱动器的区别是什么?
建立在智能化与互连技术之上的亚太制造
PS5的上市将决定索尼的未来最赚钱的业务
智能本挑战上网本 微软+英特尔阵营被压制
3M 公司发布 ANSYS 仿真软件材料库
东芝开发出能省电最多85%的行动产品RAM
艾讯科技主板车载电视系统核心解决方案
Orbotech Corus™ 8M全自动双面直接成像(DI)专为高阶HDI和IC载板生产而设计
微波光子信号的产生解析
构建智慧校园,打通教育信息化孤岛