ESP8266 烧录 AT 固件

在文章 ESP8266 发起 HTTP 请求中,笔者介绍了 ESP8266 的 AT 命令的使用方式。本文将以集成了 ESP8266 芯片的 ESP-01 开发板为例,具体介绍烧录 AT 固件的方法。

下载工具

烧录固件所用的工具是 esptool,需要先配置好 Python 环境,然后用 pip 安装

1
pip install esptool

乐鑫官网也提供了一个 Flash 下载工具,相当于给 esptool 套了个图形界面,目前只支持 Windows。笔者使用后感觉这个 Flash 下载工具体验不如 esptool 的命令行工具,因为烧录固件有时需要选择多个文件并指定起始位置,图形界面反而有些麻烦。

AT 固件有很多版本,需要根据 ESP-01 开发板的具体规格选择。乐鑫官方固件有 ESP8266 NonOS AT 和 ESP8266 IDF AT 两种,后者要求至少 2M 的闪存空间。笔者用的 ESP-01 空间不满足这一要求,因此只得选择 ESP8266 NonOS AT 固件,最新版本为 1.7.4。

此外还有安信可科技提供的 AT 固件。虽然 2017 年就停止更新了,但现在用起来并没有什么问题。

如果不清楚开发板与固件版本是否兼容,可以在刷好固件之后测试一下常用的 AT 命令看看有没有问题。

连接方式

ESP-01 与电脑的连接方式同样可以参考 ESP8266 发起 HTTP 请求这篇文章。唯一的区别是,烧录固件时需要一根额外的导线将 GPIO0 引脚接地,使芯片进入下载模式。

为了方便接线,可以用一块面包板倒一下:

市面上也可以买到专门为 ESP-01 设计的 USB 烧录下载器,如果需要经常烧录固件,入手一个可以免去接线的烦恼。

烧录固件

将 AT 固件的压缩包解压,在里面可以找到说明文档,用 esptool 烧录固件的具体参数根据文档设置即可。以 1.7.4 版本为例

1
esptool.py write_flash --flash_mode dout --flash_size 1MB 0x0 boot_v1.7.bin 0x01000 at/512+512/user1.1024.new.2.bin 0xfb000 blank.bin 0xfc000 esp_init_data_default_v08.bin 0xfe000 blank.bin 0x7e000 blank.bin

如果烧录过程没有开始(具体表现为控制台输出一堆.....-----),那么就确认一下导线连接是否正确(特别是 GPIO0 的接地),然后重启 ESP8266。重启可以通过将 RST 引脚短暂接地或插拔 CH-PD 引脚的导线实现。

如果一切正常,进度条就会跑起来。烧录完成后,将 GPIO0 上的导线移除,使这一引脚悬空。再次重启后,就可以用串口监视器软件测试 AT 命令了。


参考文章:ESP8266 ESP-01 - firmware - 1MB chip