ESP8266下载AT固件

ESP FLASH TOOL 是 Espressif 官方开发的烧录工具,用户可根据实际的编译方式和Flash的容量,将SDK编译生成的多个bin文件一键烧录到 ESP8266/ESP32 的SPI Flash中。

ESP FLASH TOOL 下载:flash_download_tools_v3.6.6.zip

烧写工具说明 http://bbs.espressif.com/viewtopic.php?f=5&t=433

烧写前请参考如何安装安信可一体化开发环境完成 sdk 的编译

或者在 ESP8266 最新SDK发布 或 ESP32 最新SDK发布 页面下载最新固件

硬件连接

ESP8266有运行模式、下载模式、测试模式的区别,进入下载模式可参考以下配置:

模式 CH_PD(EN) RST GPIO15 GPIO0 GPIO2 TXD0
UART 下载模式   
Flash 运行模式   
Chip 测试模式    - - - - -

ESP32 的运行状态主要由 GPIO0 决定

模式 GPIO0
UART 下载模式
Flash 运行模式
如何确保 ESP8266 模组正确的进入了下载模式:

  1. 首先确保模组可以正常运行工作,发送 AT 指令可以有回复 AT OK(即确保电源和串口连接正常);

  2. 拉低 GPIO0,打开串口工具,在波特率74880下观察模组的启动或复位后的打印信息;

  3. 若出现以下红色字符则认为模组已经进入了下载模式(后面的7数值不用理会),可以去正常进行下载。

    ets Jan 8 2014,rst cause 1, boot mode:(1,7)

可参考如下电路:

如何确保 ESP32 模组正确的进入了下载模式:

  1. 首先确保模组可以正常运行工作(即确保电源和串口连接正常);

  2. 拉低 GPIO0,打开串口工具,在波特率​115200​下观察模组的启动或复位后的打印信息;

  3. 若出现以下红色字符则认为模组已经进入了下载模式,可以去正常进行下载。

    rst:​0x10 (RTCWDT_RTC_RESET),​boot:​0x3 (DOWNLOAD_BOOT(UART0/​UART1/​SDIO_REI_REO_V2))

    ​waiting for download

ESP8266 Flash 地址配置

烧录时的配置选项与编译时的配置是相关的, 编译SDK时,控制台会提示bin文件的烧录地址,配置不同,烧录的地址和需要的文件也不同

我们按照烧录文件的不同分为两种情况: 支持云端升级 和 不支持云端升级

另外,根据flash容量的不同,我们还要调整bin文件烧录的地址

支持云端升级的固件,在 flash 中会分为 2 个区,一个用来运行程序,一个用来保存升级固件, 当运行 user1 时升级,程序会下载固件到 user2,下载完毕后,下次启动时从 user2 启动,依次替换,实现云端升级。

user2 仅用作升级使用,用户烧录时无需下载 user2.bin,此处仅为说明 user2 的存放位置

注意1:乐鑫在不同版本的 SDK 中有可能会改变这些烧录位置,以下说明仅为参考,建议以开发时的 Console 输出信息为准。

注意2:合并后的固件内已经包含了地址信息,只需烧写到 0x0 地址即可。

不支持云端升级 (NoBoot 模式)

文件名称 8Mbit 地址分配 16Mbit 地址分配 32Mbit 地址分配 备注
eagle.flash.bin 0x00000 0x00000 0x00000 主程序,由代码编译生成
eagle.irom0text.bin 0x10000 0x10000 0x10000 主程序,由代码编译生成
esp_init_data_default.bin 0xFC000 0x1FC000 0x3FC000 由乐鑫在 SDK 中提供
blank.bin 0xFE000 0x1FE000 0x3FE000 由乐鑫在 SDK 中提供

支持云端升级 (Boot 模式)

文件名称 8Mbit 地址分配 16Mbit 地址分配 32Mbit 地址分配 备注
boot.bin 0x00000 0x00000 0x00000 由乐鑫在 SDK 中提供,建议一直使用最新版本
user1.bin 0x01000 0x01000 0x01000 主程序,由代码编译生成
user2.bin 0x81000 0x81000 0x81000 主程序,由代码编译生成
esp_init_data_default.bin 0xFC000 0x1FC000 0x3FC000 由乐鑫在 SDK 中提供
blank.bin 0xFE000 0x1FE000 0x3FE000 由乐鑫在 SDK 中提供

ESP32 Flash 地址配置

ESP32 在编译时,通过 make menuconfig 来配置 Partition Table 分别支持 Single factory app, no OTA、Factory app, two OTA definitions、Custom partition table CSV

注意1:乐鑫在不同版本的 SDK 中有可能会改变这些烧录位置,以下说明仅为参考,建议以开发时的 Console 输出信息为准。

注意2:合并后的固件内已经包含了地址信息,只需烧写到 0x0 地址即可。

不支持OTA

默认生成 bootloader.bin、app_demo.bin、partitions_singleapp.bin

bin 文件 烧录地址 说明
bootloader.bin 0x1000 二级boot程序,由 SDK 代码编译生成
app_demo.bin 0x10000 用户主程序,由代码编译生成
partitions_singleapp.bin 0x8000 分区信息,由代码自动生成

支持OTA

自定义

参考 https://github.com/espressif/esp-idf/blob/master/docs/partition-tables.rst

烧录下载

下载之前先清除一次FLASH

说明:

*切记将模组按以上电路接线完成后,再上电。

*保证3.3V 电源供应,一般要求外部电源输出电流需在 500mA 及以上。

1、打开ESP FLASH TOOL,根据上一章节配置bin文件和烧录地址

2、需配置晶振频率、SPI SPEED、SPI MODE、Flash Size、串口端口号和波特率等,此处波特率可以尽量选大一些,以节省时间,若提示ERROR,请降低波特率,在此以 32Mbit Flash为例:

下载完成之后  重启试一下

打开串口助手

发布了112 篇原创文章 · 获赞 120 · 访问量 62万+

猜你喜欢

转载自blog.csdn.net/qq_36958104/article/details/103406214