樂鑫ESP8266燒錄固件、升級最新固件、刷MQTT固件

正 文:

 

一般情況下,我們買的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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章