ESP8266固件SDK和AT烧写详细说明

本文主要介绍一下ESP8266固件的烧录。
1、软件下载
esp8266&esp32软件下载:点击ESP烧写工具下载。

2、软件配置
软件的配置需要根据具体实际情况来选择:
(1)确定芯片的型号
在这里查看你的芯片的flash的size大小:

(2)esp8266下载模式引脚

(3)软件配置

这里要注意的是:有的文档中的flash size的单位用的是byte,而这里软件中用的单位是bit,所以有的时候需要我们转换一下,否则烧写时候,会出现各种问题,如下载不进去或者下载后不停的复位等问题。
(4)AT官方固件烧写
我在这里以烧写官方的AT固件为例进行说明,首先可以在这里下载到最新版的AT固件-ESP8266 AT固件,我这里下载的是1.6.2版本,然后使用的32M的flash,因此我的配置如下:

当然如果你的esp8266的型号不一样,在这里你就需要参考这个详细的说明进行相应的配置了:


																		
# BOOT MODE
## download
### Flash size 8Mbit: 512KB+512KB
    boot_v1.2+.bin              0x00000
    user1.1024.new.2.bin        0x01000
    esp_init_data_default.bin   0xfc000 (optional)
    blank.bin                   0x7e000 & 0xfe000

### Flash size 16Mbit: 512KB+512KB
    boot_v1.2+.bin              0x00000
    user1.1024.new.2.bin        0x01000
    esp_init_data_default.bin   0x1fc000 (optional)
    blank.bin                   0x7e000 & 0x1fe000

### Flash size 16Mbit-C1: 1024KB+1024KB
    boot_v1.2+.bin              0x00000
    user1.2048.new.5.bin        0x01000
    esp_init_data_default.bin   0x1fc000 (optional)
    blank.bin                   0xfe000 & 0x1fe000

### Flash size 32Mbit: 512KB+512KB
    boot_v1.2+.bin              0x00000
    user1.1024.new.2.bin        0x01000
    esp_init_data_default.bin   0x3fc000 (optional)
    blank.bin                   0x7e000 & 0x3fe000

### Flash size 32Mbit-C1: 1024KB+1024KB
    boot_v1.2+.bin              0x00000
    user1.2048.new.5.bin        0x01000
    esp_init_data_default.bin   0x3fc000 (optional)
    blank.bin                   0xfe000 & 0x3fe000

# NON-BOOT MODE
## download
    eagle.flash.bin              0x00000
    eagle.irom0text.bin          0x10000
    blank.bin
        Flash size 8Mbit:        0x7e000 & 0xfe000
        Flash size 16Mbit:       0x7e000 & 0x1fe000
        Flash size 16Mbit-C1:    0xfe000 & 0x1fe000
        Flash size 32Mbit:       0x7e000 & 0x3fe000
        Flash size 32Mbit-C1:    0xfe000 & 0x3fe000
    esp_init_data_default.bin (optional)   
        Flash size 8Mbit:        0xfc000
        Flash size 16Mbit:       0x1fc000
        Flash size 16Mbit-C1:    0x1fc000
        Flash size 32Mbit:       0x3fc000
        Flash size 32Mbit-C1:    0x3fc000

## compile
    modify eagle.app.v6.ld, as
    irom0_0_seg :                         org = 0x40210000, len = 0x6C000
   

> NOTICE: UPDATE is not supported in non-boot mode; 4Mbit Flash is not supported in non-boot mode;

# Update steps
1.Make sure TE(terminal equipment) is in sta or sta+ap mode

    AT+CWMODE=3
    OK

2.Make sure TE got ip address

    AT+CWJAP="ssid","12345678"
    OK
   
    AT+CIFSR
    192.168.1.134

3.Let's update

    AT+CIUPDATE
    +CIPUPDATE:1    found server
    +CIPUPDATE:2    connect server
    +CIPUPDATE:3    got edition
    +CIPUPDATE:4    start start
   
    OK

> NOTICE: If there are mistakes in the updating, then break update and print ERROR.
																		

3、下载详细说明及注意点
(1)硬件的连接
如果使用的开发板,我们很容易的会成功,只要插上usb接口线,再正确配置好软件选项,基本不会出现下载出错的问题。但是我们很多时候在实际项目中都是自己做的板子,这时候就可能出现各种问题,因此我们要详细理解下载的各个方面,以便根据自己的实际硬件情况去做好下载的配置。

硬件参考电路如上,在这里我们需要注意的是:
a、vcc需要3.3v的,大了会导致芯片高温;
b、vcc不要直接使用这里usb转串口芯片的vcc,而是要用独立的电源或者其他MCU的3.3v电源。
(2)进入下载模式确认
在我们下载的前,首先我们需要确认我们能正确进入到下载模式,否则后面的一切工作都是没法进行的。在正确连线后,需要按照以下步骤确认:

a、 首先确保模组可以正常运行工作,现在一般的厂商会在模组出厂前在模组中烧录初始化固件程序,而很多模组会烧录AT指令的固件,如果你不能确认,那么你在购买后需要询问模块的固件信息,在有AT指令固件的情况下,为了确认模块可以正常工作,我们可以通过串口助手发送 AT 指令,当可以收到回复 AT OK就说明正常工作了;这里需要注意:波特率选择115200;发送AT命令的时候,要选择发送新行(即发送\r\n),如下:

前面的乱码不用管,这是上电就会打印的信息,在出现ready后,就可以发送AT命令,看是否有OK信息返回。也有可能出现所有的都是乱码的情况(不管是选择74880还是选择115200波特率的情况下),这个问

题一般有可能出现在自己画板,但是又改变了晶振的情况下。

b、如果没有AT指令固件,我们同样可以查看确认,首先硬件上GPIO0拉低,在串口工具中选择波特率74880,在复位后查看log信息,如果出现这样的信息:ets Jan 8 2014,rst cause 1, boot mode: (1,7),就说明进入了下载模式。

这里说明一下复位后,第一句log的含义:


复位的原因说明

启动模式说明

(3)下载时flash的地址

这里的地址作为参考,实际情况时按照编译完成时的信息为准。