/iot/espressif-ESP8266-MQTT-AT.html
正 文:
一般情况下,我们买的ESP8266模组到手的时候,都带了乐鑫官方的AT固件,比如飘易手里的ESP8266-01S模组的AT & SDK版本信息如下:
AT+GMR
AT version:1.3.0.0(Jul 14 18:54:01)
SDK version:2.0.0(656edbf)
compile time:Jul 19 18:44:44
由上面的信息可以看出AT版本是1.3,SDK版本是2.0,这是的AT固件。那么,如果我们先升级AT固件或者直接更换其他厂家的固件,该怎么做呢?这个就需要我们进行烧录新固件了。
一,确定wifi模组的FLASH容量
ESP8266-01S的FLASH容量是8M,我们可以通过安信可的网站查看选型表:https://wiki.ai-/esp8266,可以大概看出ESP-01系列的FLASH均是8M,从ESP-07开始的FLASH容量是32M。
我们也可以执行 AT+RST 查看FLASH的容量:
etsJan8,rstcause:1,bootmode:(3,7)load0x40100000,len2408,room16tail8chksum0xe5load0x3ffe8000,len776,room0tail8chksum0x84load0x3ffe8310,len632,room0tail8chksum0xd8csum0xd82ndbootversion:1.6SPISpeed:40MHzSPIMode:DOUTSPIFlashSize&Map:8Mbit(512KB+512KB)jumptorunuser1@1000
重启后,看到SPI FLASH SIZE & MAP的值是 8M(512KB+512KB)。8M的FLASH只能刷 512KB+512KB,不支持 1024+1024 flash map。
二,烧录固件时如何接线
我们先看下ESP8266-01S引脚说明:
从引脚定义来看,我们只需要把GPIO0引脚下拉接地就可以进入烧录固件模式啦。
注意,如果wifi是独立供电的话,要注意电源地和串口地要共地哦。
三、固件烧写
在烧写客户自己的固件之前,我们建议先跟着我们的步骤烧写一下官方的固件,确保您掌握了正确的烧写方式, 避免因烧写方式不当而引起的失败。下面我以官方固件的烧写,来示例烧写步骤。
固件烧写软件:flash_download_tools,我们可以从乐鑫的官网下载:/zh-hans/support/download/other-tools?keys=flash+
目前最新的版本是3.6.7。下载后打开软件,先选择 “ESP8266 DownloadTool”,不要选错了。
然后才进入到真正的烧写软件里:
请注意,对于ESP-01来说:
SPISPEED选择40MHz;SPIMODE选择DOUT;FLASHSIZE选择8Mbit;SpiAutoSet和DoNotChgBin均不要勾选。
下面的COM串口和波特率选择你电脑上对应的端口。飘易手里有一个乐鑫的一段式的固件:
ESPRESSIF_ESP8266_DOUT_8Mbit_V2.1.0_0506 (1).bin
一段式的固件,只要刷这一个文件就好,还有的是四段式固件,要分别刷入四个文件及它们对应的地址。
我们来拿这个固件刷新看看,地址填写:0x00000,这是一段式的固件的地址。
点击“START”即可,出现正在下载后等待完成。
【注意】:
如果点击start后,一直处于等待上电同步,需要我们拉低一下复位引脚,或者直接断电再上电。
我们看到进度条走完时,就会提示:FINISH 完成啦。
这个时候,我们让 GPIO0 引脚去掉下拉,退出烧录固件模式,恢复正常工作模式后,连接串口软件,发送指令:
AT+GMRATversion:1.4.0.0(May516:10:59)SDKversion:2.1.0(116b762)compiletime:May516:37:48OKAT+RSTetsJan8,rstcause:1,bootmode:(3,5)load0x40100000,len2592,room16tail0chksum0xf3load0x3ffe8000,len764,room8tail4chksum0x92load0x3ffe82fc,len676,room4tail0chksum0x22csum0x222ndbootversion:1.7(5d6f877)SPISpeed:40MHzSPIMode:DOUTSPIFlashSize&Map:8Mbit(512KB+512KB)jumptorunuser1@1000
我们看到我们的固件已经刷新成功啦,AT版本号1.4,SDK的版本号2.1。
嗯,可是飘易又看到了乐鑫网站上有更新的AT固件,我们再次烧录固件吧。
下载最新乐鑫的AT固件:
/zh-hans/support/download/at
选择 NonOS AT 版本,最新的为ESP8266 NonOS AT Bin V1.7.1,这是基于 ESP8266_NonOS_SDK V3.0.1 的固件,但是受 AT bin 的大小限制,默认仅支持1024+1024 flash map。但我们的ESP8266-01S的FLASH是8M的,不支持 1024+1024 flash map。
好吧,那就降低版本去选择ESP8266 AT Bin V1.6.2版本(下载地址),这个版本支持8M的FLASH:
Flashsize8Mbit:512KB+512KBboot_v1.2+.bin0x00000user1.1024.new.2.bin0x01000esp_init_data_default.bin0xfc000blank.bin0x7e000&0xfe000
注意每个bin文件后面的烧写地址,选择文件时,必须保证这个地址和bin文件一一对应的关系。
bin下面有2个目录:at(UART通讯方式)和at_sdio(SPI通讯方式),我们选择at目录下的bin文件。
下载目录里还有一个文件:user2.1024.new.2.bin,这个文件是OTA升级时才使用,烧录固件时不需要。
刷好之后,查看版本:
AT+GMRATversion:1.6.2.0(Apr1311:10:59)SDKversion:2.2.1(6ab97e9)compiletime:Jun719:34:26Binversion(Wroom02):1.6.2OKetsJan8,rstcause:1,bootmode:(3,4)load0x40100000,len2592,room16tail0chksum0xf3load0x3ffe8000,len764,room8tail4chksum0x92load0x3ffe82fc,len676,room4tail0chksum0x22csum0x222ndbootversion:1.7(5d6f877)SPISpeed:40MHzSPIMode:DOUTSPIFlashSize&Map:8Mbit(512KB+512KB)jumptorunuser1@1000
我们看到固件烧录成功了,当前的AT版本号1.6.2,SDK版本号2.2.1,比之前的版本又进步了。这个版本已经是8M FLASH能刷的最新版本乐鑫官方AT固件了。
四、支持MQTT的AT固件
如果希望支持mqtt,可以刷支持mqtt的固件:
AT+GMRATversion:1.4.0.0(May516:10:59)SDKversion:2.1.0(116b762)SimkeimTechnologyCo.,LtdMQTT:Jun714:33:18OK
如果觉得《乐鑫ESP8266烧录固件 升级最新固件 刷MQTT固件》对你有帮助,请点赞、收藏,并留下你的观点哦!