最近观看完了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,如果回复了乱码可以试试更换串口助手。

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐