关于ESP826601S与串口USB TO TTL的固件烧入和通信
最近观看完了stm32入门教程视频,但是学完大部分之后感觉能力尚有欠缺,决定动手找找项目来做,真不巧找了个有用到ESP826601S的WiFi模块芯片,由于没有课前准备没有买回来专门用的WiFi固件烧录器,于是看见ESP826601S上的TX和RX引脚回想起串口相关知识,能否用USB TO TTL实现固件下载和通信呢?答案是肯定的。于是用了万能的百度搜索教程,看了大部分的文章感觉有很多地方不理解,从接线到通信过程也是踩了不少坑,以下将手把手详细展开操作说明。
需要用到的硬件有:ESP826601S和USB TO TTL串口以及若干杜邦线。

ESP826601S正反面图


串口USB TO TTL正反面图
由图可以看到ESP826601S共有8个引脚:3V3、RX、RST、IO0、EN、IO2、TX、GND
串口USB TO TTL共有6个引脚:5V、VCC、3V3、TXD、RXD、GND
对于串口USB TO TTL,学习过stm32的USART的相信已经不陌生了,经常用来实现电脑与stm32的串口通信,这里就不做说明了,B站上也有很多优质的课程,花上一点时间就能看懂,况且本次遇到的问题更多的是硬件上的接线,所以也不用太过于担心。
对于SP826601S,从产品官方找到的引脚定义图如下
一会接线时可以回来参考一下部分引脚的接法。
一、固件烧入
1、硬件接线部分
首先便是硬件接线的问题了,为了方便接线,我用杜邦线将引脚接到面包板上面以便连接:
串口USB TO TTL共有6个引脚:5V、VCC、3V3、TXD、RXD、GND,烧入是只需用到
3V3、TXD、RXD、GND这4个引脚,将这4个引脚接到上面一排(面包板第一排对应4个引脚,从左往右分别是GND、RXD、TXD和3V3,或者也可以根据自己喜好随便接)。
ESP826601S共有8个引脚:3V3、RX、RST、IO0、EN、IO2、TX、GND,这里先接好
3V3、RX、TX、GND这四个引脚,
ESP826601S: 串口USB TO TTL:
3V3 -----------------------------------> 3V3
GND -----------------------------------> GND
RX -----------------------------------> TXD
TX -----------------------------------> RXD
那么剩余的4个引脚RST、IO0、EN、IO2,根据官方引脚参考图来看,下载模式中RST、EN、IO2要接高电平(3V3),IO0接地(GND),但经过本人的多次测试发现在IO2、EN悬空时(不接线)也可以做到固件烧入,但是如果EN接3V3时后面的串口通信复位后功能不正常,所以为了统一接线,EN和IO2不接线,以下是我个人的接线:
ESP826601S: 串口USB TO TTL:
3V3 -----------------------------------> 3V3
GND -----------------------------------> GND
RX -----------------------------------> TXD
TX -----------------------------------> RXD
RST -----------------------------------> 悬空(方便接低电平复位)
EN -----------------------------------> 不接线
IO2 -----------------------------------> 不接线
IO0 -----------------------------------> GND(在下载模式下IO0必须接地)
(再提醒一下,烧入时IO0必须接GND,EN和IO2引脚可以不接线,RST悬空,方便接低电平复位。RST接低电平时有复位芯片作用)
实物图如下:


左边的蓝色线IO0接GND,悬空的绿色线是RST,IO2和EN都没有接线,对烧入影响不大。现在接上串口,打开烧入软件进行烧入。
2、固件烧入


点击第一个选项弹出界面:

需要注意的是选择COM端口和设置波特率,这里我的串口是COM8口,波特率选择了115200。
第一步
先清除数据,点击ERASE,直到出现finish即可。
第二步
选择事先下载好的固件下载,点击START,下载过程中常常会出现等待上电同步,这时候悬空的引脚RST派上用场了,将悬空的黄色线接GND并拔开达到复位效果。

此时正在下载固件,只需要耐心等待固件下载完成。

以上便是烧入固件的过程。
二、串口通信
烧入完固件以后可以关掉烧入工具打开串口助手进行验证。

串口通信过程属于运行模式,按照参考图只需要把IO0引脚改接成3V3就可以实现通信? 
这里随便选择了一个串口助手进行测试(使用串口助手时需要注意端口号和波特率选择,这里的波特率最好选择ESP默认的波特率115200)
可以发现发生字节后没有任何回应,无论怎么通过RST去复位也不会有任何回应,此时只需要把USB TO TTL串口上的3V3端口改接成VCC端
口,如图:
接线前

接线后:

也就是将3V3上的接线换到了VCC上。
接好线后重新接上串口试试效果。

现在的串口有了回应,但是并不符合我们预期的指令(如果还是没有回应可以对ESP进行一次复位。),理论上输入AT后应该回复OK,但是这里只回复了AT甚至是乱码,这个时候可能是串口软件的问题,可以试试其他的串口软件。(虽然说指令回复与预期不符合,但是相比最开始连消息都不回复,已经是有所效果了,WiFi模块至少有了回应。)

更换了串口助手后回复了OK,串口通信也正常。
三、总结
1、硬件接线:除了IO2、EN两个引脚不接线,RST悬空,其余5个引脚按硬件接线部分接好,其中需要注意IO0的接线,下载时接GND,通信时接VCC。下载时串口USB TO TTL用到的是3V3,通信时用到的是VCC。
2、串口通信:如果下载好固件以后,发送串口信息没有回应,首先试试复位ESP,看看是否会显示初始化信息(如下图)。如果没有显示,检查一下接线IO0是否接VCC,串口USB TO TTL是否更换了引脚(3V3换VCC)。若显示初始化信息后输入AT看看是否回复OK,如果回复了乱码可以试试更换串口助手。
更多推荐



所有评论(0)