正 文:
一般情況下,我們買的ESP8266模組到手的時候,都帶了樂鑫官方的AT固件,比如飄易手裏的ESP8266-01S模組的AT & SDK版本信息如下:
AT+GMR
AT version:1.3.0.0(Jul 14 2016 18:54:01)
SDK version:2.0.0(656edbf)
compile time:Jul 19 2016 18:44:44
由上面的信息可以看出AT版本是1.3,SDK版本是2.0,這是2016年的AT固件。那麼,如果我們先升級AT固件或者直接更換其他廠家的固件,該怎麼做呢?這個就需要我們進行燒錄新固件了。
一,確定wifi模組的FLASH容量
ESP8266-01S的FLASH容量是8M,我們可以通過安信可的網站查看選型表:https://wiki.ai-thinker.com/esp8266,可以大概看出ESP-01系列的FLASH均是8M,從ESP-07開始的FLASH容量是32M。
我們也可以執行 AT+RST 查看FLASH的容量:
ets Jan 8 2013,rst cause:1, boot mode:(3,7) load 0x40100000, len 2408, room 16 tail 8 chksum 0xe5 load 0x3ffe8000, len 776, room 0 tail 8 chksum 0x84 load 0x3ffe8310, len 632, room 0 tail 8 chksum 0xd8 csum 0xd8 2nd boot version : 1.6 SPI Speed : 40MHz SPI Mode : DOUT SPI Flash Size & Map: 8Mbit(512KB+512KB) jump to run user1 @ 1000
重啓後,看到SPI FLASH SIZE & MAP的值是 8M(512KB+512KB)。8M的FLASH只能刷 512KB+512KB,不支持 1024+1024 flash map。
二,燒錄固件時如何接線
我們先看下ESP8266-01S引腳說明:
序號 | 引腳名稱 | I/O | 描述 | DC特性 | 備註 |
1 | UTXD | AT 串口發送輸出 | 3.3V | 開機時禁止下拉 | |
2 | GND | 地 | |||
3 | CH_PD(EN) | 模塊斷電信號 | 3.3V | 1)高電平工作; 2)低電平模塊供電關掉; | |
4 | GPIO2 | 預留,默認懸空 | 3.3V | 開機上電時必須爲高電平,禁止硬件下拉;內部默認已拉高 | |
5 | GPIO16 | I | 復位信號(RESET) | 3.3V | 低電平復位,高電平工作(默認高); |
6 | GPIO0 | 模塊狀態燈/工作模式選擇 | 3.3V | 1)默認WiFiStatus:
WiFi工作狀態指示燈控制信號; 2)工作模式選擇: 上拉:FlashBoot,工作模式; 下拉:UARTDownload,下載模式(下載固件); |
|
7 | VCC | I | 模塊採用單電源供電,通過 1 個VCC 電源引腳供電,電壓範圍:3.0V-3.6V,電流>600mA |
Vmax=3.6V Vmin=3.0V Vnorm=3.3V |
電源供電能力請大於600mA;否則可能會引起模塊工作異常,或者無線性能不好。 |
8 | URXD | AT 串口發送輸入 | 3.3V |
從引腳定義來看,我們只需要把GPIO0引腳下拉接地就可以進入燒錄固件模式啦。
注意,如果wifi是獨立供電的話,要注意電源地和串口地要共地哦。
三、固件燒寫
在燒寫客戶自己的固件之前,我們建議先跟着我們的步驟燒寫一下官方的固件,確保您掌握了正確的燒寫方式, 避免因燒寫方式不當而引起的失敗。下面我以官方固件的燒寫,來示例燒寫步驟。
固件燒寫軟件:flash_download_tools,我們可以從樂鑫的官網下載:https://www.espressif.com/zh-hans/support/download/other-tools?keys=flash+
目前最新的版本是3.6.7。下載後打開軟件,先選擇 “ESP8266 DownloadTool”,不要選錯了。
然後才進入到真正的燒寫軟件裏:
請注意,對於ESP-01來說:
SPI SPEED 選擇 40MHz; SPI MODE 選擇 DOUT; FLASH SIZE 選擇 8Mbit; SpiAutoSet 和 DoNotChgBin 均不要勾選。
下面的COM串口和波特率選擇你電腦上對應的端口。飄易手裏有一個樂鑫的一段式的固件:
ESPRESSIF_ESP8266_DOUT_8Mbit_V2.1.0_20170506 (1).bin
一段式的固件,只要刷這一個文件就好,還有的是四段式固件,要分別刷入四個文件及它們對應的地址。
我們來拿這個固件刷新看看,地址填寫:0x00000,這是一段式的固件的地址。
點擊“START”即可,出現正在下載後等待完成。
【注意】:
如果點擊start後,一直處於等待上電同步,需要我們拉低一下復位引腳,或者直接斷電再上電。
我們看到進度條走完時,就會提示:FINISH 完成啦。
這個時候,我們讓 GPIO0 引腳去掉下拉,退出燒錄固件模式,恢復正常工作模式後,連接串口軟件,發送指令:
AT+GMR AT version:1.4.0.0(May 5 2017 16:10:59) SDK version:2.1.0(116b762) compile time:May 5 2017 16:37:48 OK AT+RST ets Jan 8 2013,rst cause:1, boot mode:(3,5) load 0x40100000, len 2592, room 16 tail 0 chksum 0xf3 load 0x3ffe8000, len 764, room 8 tail 4 chksum 0x92 load 0x3ffe82fc, len 676, room 4 tail 0 chksum 0x22 csum 0x22 2nd boot version : 1.7(5d6f877) SPI Speed : 40MHz SPI Mode : DOUT SPI Flash Size & Map: 8Mbit(512KB+512KB) jump to run user1 @ 1000
我們看到我們的固件已經刷新成功啦,AT版本號1.4,SDK的版本號2.1。
嗯,可是飄易又看到了樂鑫網站上有更新的AT固件,我們再次燒錄固件吧。
下載最新樂鑫的AT固件:
https://www.espressif.com/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:
Flash size 8Mbit: 512KB+512KB boot_v1.2+.bin 0x00000 user1.1024.new.2.bin 0x01000 esp_init_data_default.bin 0xfc000 blank.bin 0x7e000 & 0xfe000
注意每個bin文件後面的燒寫地址,選擇文件時,必須保證這個地址和bin文件一一對應的關係。
bin下面有2個目錄:at(UART通訊方式)和at_sdio(SPI通訊方式),我們選擇at目錄下的bin文件。
下載目錄裏還有一個文件:user2.1024.new.2.bin,這個文件是OTA升級時才使用,燒錄固件時不需要。
刷好之後,查看版本:
AT+GMR AT version:1.6.2.0(Apr 13 2018 11:10:59) SDK version:2.2.1(6ab97e9) compile time:Jun 7 2018 19:34:26 Bin version(Wroom 02):1.6.2 OK ets Jan 8 2013,rst cause:1, boot mode:(3,4) load 0x40100000, len 2592, room 16 tail 0 chksum 0xf3 load 0x3ffe8000, len 764, room 8 tail 4 chksum 0x92 load 0x3ffe82fc, len 676, room 4 tail 0 chksum 0x22 csum 0x22 2nd boot version : 1.7(5d6f877) SPI Speed : 40MHz SPI Mode : DOUT SPI Flash Size & Map: 8Mbit(512KB+512KB) jump to run user1 @ 1000
我們看到固件燒錄成功了,當前的AT版本號1.6.2,SDK版本號2.2.1,比之前的版本又進步了。這個版本已經是8M FLASH能刷的最新版本樂鑫官方AT固件了。
四、支持MQTT的AT固件
如果希望支持mqtt,可以刷支持mqtt的固件:
AT+GMR AT version:1.4.0.0(May 5 2017 16:10:59) SDK version:2.1.0(116b762) Simkeim Technology Co.,Ltd MQTT:Jun 7 2017 14:33:18 OK