首页

如何更新Flash ESP8266固件- Flash官方AT固件

这是ESP8266上的第二个项目,在这个项目中,我将向您展示如何使用Arduino在ESP8266中刷新官方espresso固件。如果您想要更新到最新的ESP8266固件,也可以使用该项目。

在之前的ESP8266项目中,我们已经看到了如何使用Arduino IDE在ESP8266中编写自己的程序,并使用GPIO引脚控制LED。在同一个项目中,我已经提到,默认情况下,ESP8266 ESP-01模块附带AT命令固件。

但是,如果我们编写自己的程序来访问GPIO pin(就像我们在前一个项目中所做的那样),那么现有的固件将被完全擦除,并将编写新程序。

尽管ESP8266 WiFi模块是由espresso Systems生产的,但许多第三方制造商使用SoC来实现他们自己的定制模块。在我的情况下,我有ai -思考者的ESP8266 ESP-01模块。

这导致了许多问题,如固件是否是原始的,固件是否是最新的,以及许多其他问题。

Flash ESP8266固件镜像

因此,在这个项目中,我们将使用Espressif系统提供的官方ESP8266 flash工具(ESP8266 flash下载工具和Arduino UNO作为USB到串行接口)为ESP8266模块闪存官方es8266固件。

安装ESP8266固件有两个原因:如果您想将ESP8266固件更新到最新版本,或者完全安装新固件(以防它被任何程序覆盖)。让我们开始吧。

ESP8266固件更新的硬件设置

在进入更新ESP8266 SoC的固件的过程之前,将ESP8266 WiFi模块配置为下载模式或编程模式是很重要的。

如果你还记得开始使用esp8266和arduino项目中,我已经提到了在下载模式下配置ESP8266模块的GPIO0和RST引脚起着重要作用。

我们将在这里实现相同的设置。联系如下。

  • VCC 3.3 v
  • 接地,接地
  • Arduino UNO的TX到TX
  • Arduino UNO的RX对RX(通过电平转换器)
  • GPIO0,接地
  • 通过按钮RST到GND
  • CH_PD 3.3 v

Firmware到ESP8266的闪烁电路图

下图为ESP8266开启闪烁模式的电路图。为了使ESP8266 SoC处于闪烁模式,GPIO0引脚必须连接到GND和RST引脚上的瞬时GND脉冲。

Flash ESP8266固件镜像

组件的要求

  • Arduino UNO
  • ESP8266 ESP-01(任何ESP8266模块)
  • 1 KΩ电阻器
  • 2.2 KΩ电阻器
  • 按钮
  • 领域开关
  • 连接电线
  • 微型电路试验板

重要的笔记

  • 在继续之前,请参考前面的项目来配置Arduino IDE并准备好Arduino UNO来刷新固件。
  • 我已经把GPIO0引脚直接连接到地。在刷新固件后,我就把它和地线断开了。您可以使用SPDT开关来实现此操作,即在一个位置,GPIO0连接到GND,在另一个位置,它可以自由地用作GPIO。
  • ESP8266不能容忍5V。必须接3.3V。甚至ESP8266的RX引脚也通过电平转换器连接。

检查当前固件版本

在安装固件之前,我们将首先使用串行通信检查ESP8266模块中现有的固件。为此,我们需要断开GPIO0引脚与GND的连接。* *重要。

按照上面的电路图进行连接(并断开GPIO0与GND的连接)后,将Arduino的USB线插入计算机,打开任意一个串口监视器软件。我正在使用Arduino的串行监视器。你可以使用任何软件,如Putty, Terminal等。

在Arduino IDE中,选择正确的COM Port,打开Serial Monitor。设置波特率为115200,并在串口监视器上选择“NL和CR选项”。之后,按下ESP8266的RST按钮一秒钟并释放。ESP8266模块将重置和显示“就绪”后,一些垃圾数据在串行监视器上。

Flash ESP8266固件镜像

为了检查固件版本,您需要输入以下AT命令并点击send。这个命令将返回ESP8266模块的固件版本。所有AT命令都应该是大写的。

在+ GMR

Flash ESP8266固件镜像

如果你注意到,我的固件是由ai -思考者技术,我的ESP8266 ESP-01模块的制造商,它是一个相当老的。AT命令集版本是0.21.0.0,SDK版本是0.9.5。

我现在将用Espressif固件(ESP8266 SoC的制造商)替换此固件。

请注意:确认GPIO0引脚连接到GND后,再进行下一步操作。

下载最新的ESP8266固件

ESP8266有两种类型的SDK或软件开发工具包:非操作系统SDK和RTOS SDK。非操作系统SDK,顾名思义,不基于任何操作系统。使用这个SDK,你可以编译IOT_Demo和AT命令。另一方面,RTOS SDK是基于FreeRTOS的。

我将使用非操作系统SDK(从技术上讲,基于非操作系统SDK的固件文件)。ESP8266固件文件是二进制文件的形式,即.bin文件。

现在,因为我将只使用ESP8266的AT命令集,我将只下载与AT命令相关的Bin文件。如需下载AT Commands Firmware for ESP8266,请访问官方链接在这里或者直接从这里下载链接

Flash ESP8266固件镜像

ESP8266模块还有其他固件版本。首先尝试本项目中提到的过程,如果成功,可以尝试安装其他ESP8266固件。其他固件可以从上面提到的SDK部分下载。

下载ESP8266 Flash下载工具

下一步是下载工具来更新ESP8266的固件。espresso系统公司专门为此开发了一个小软件。它被称为ESP Flash下载工具。

如需下载ESP8266固件Flash下载工具,请访问链接,在工具部分下载ESP Flash下载工具,或直接从链接。

Flash ESP8266固件镜像

现在我们已经下载了ESP8266的固件和flash工具,我们将继续在ESP8266中安装固件。

在ESP8266中安装固件

为了在ESP8266中闪存固件,首先打开flash下载工具或ESP8266的flash软件。在做这个项目的时候,我的版本是3.6.2.2。因此,打开应用程序文件ESPFlashDownloadTool_v3.6.2.2。

然后,您将得到各种选项,如ESP8266下载工具,ESP8285下载工具,ESP32下载工具和ESP32D2WD下载工具。选择ESP8266下载工具。

Flash ESP8266固件镜像

打开ESP8266 Flash下载工具后,需要选择我们需要安装的固件文件。你需要在四个不同的地址上传四个文件。下表将为您提供文件列表及其对应地址。

注意:此列表是针对带有1MB Flash的ESP8266模块的FOTA (Firmware over the Air)闪存映射。其他闪存尺寸,请参考ESP8266入门指南,从这个链接。

文件

闪存中的地址

boot_v1.7.bin

0 x00000

user1.1024.new.2.bin

0 x10000

esp_init_data_default.bin

0 xfc000

blank.bin

0 xfe000

在ESP8266下载工具中,在SPI下载选项卡中,通过单击(…)按钮,在“下载路径配置”选项中选择必要的文件。另外,在空白处添加相应的地址。

Flash ESP8266固件镜像

在选择四个文件并填写地址后,设置晶体频率为26MHz(通常是26MHz,但如果您的ESP8266板有不同的晶体,请输入该值)。接下来选择flash大小。因为我有一个1MB的闪存,所以我选择了8mb(等于1MB)的闪存大小选项。

最后,选择正确的“COM端口”,将波特率设置为“115200”。确保所有串行终端都是关闭的。

在开始闪烁之前,检查GPIO0连接到GND,并在RST引脚上给出一个LOW脉冲(按Reset按钮)。

现在点击START按钮。ESP8266中的固件应该开始闪烁。如果你注意到在ESP8266 Firmware Flash Tool中,当你点击START时,你会得到两个MAC地址作为AP和STA,以及在DETECTED INFO部分中关于模块的信息。

Flash ESP8266固件镜像

如果一切顺利,ESP8266模块必须更新为新的固件。如果有错误,断开USB连接线,重新连接,单击“开始”后,按下ESP8266的复位按钮。

您将在工具上得到一个FINISH消息,在此之后您可以关闭工具。断开GPIO0与GND的连接,复位设备。再次打开Arduino的串行监视器,检查是否有新的固件。

Flash ESP8266固件映像

请注意:打开串口显示器后,点击Reset按钮。

为了检查固件版本,输入AT+GMR并点击发送。您将得到一个带有AT版本号和SDK版本号的响应。在我的例子中,新的AT命令集版本是1.5.0.0,SDK版本是2.1.0。

Flash ESP8266固件镜像

在这个项目中,您已经看到了如何使用官方的Espressif ESP8266固件在ESP8266模块中更新/flash固件。

21的反应

  1. 这就跟你问声好!我确实遵循了程序,并在最后看到了成功的FINISH。然而,在断开GPIo和重置设备后,它给出了一些垃圾字符,并说等待WIFI..........然后继续画点?它不响应来自串行监视器(arduino)的AT调用。请建议…

  2. 似乎做不到这一点。下载很顺利,但当我重置ESP12时,它说:
    ets 1月8日2013,rfirst cause:2, boot mode:(3,6)

    加载0x40100000, len 2592,房间16
    尾巴0
    chksum 0 xf3
    加载0x3ffe8000, len 764,房间8
    尾巴4
    chksum 0 x92
    加载0x3ffe82fc, len 676,房间4
    尾巴0
    chksum 0将
    csum 0将

    第二引导版本:1.7(5d6f877)
    SPI速度:40MHz
    SPI模式:QIO
    SPI Flash大小和地图:4Mbit(256KB+256KB)
    跳到运行user2 @ 41000

    错误的魔法!
    备份启动失败。

    用户代码完成

    这是怎么呢ESP12有不同的BIN吗?

    1. 不。ESP-12也基于ESP8266EX SoC,但具有额外的功能,如更多的GPIO引脚,ADC, SPI, I2C等。我不知道这是怎么回事。

      1. 我也遇到过同样的问题。然后我意识到“路径”旁边的复选框没有勾选。实际上是在说“我不想将这些文件中的任何一个闪存到esp8266”。勾选文件选择框,一切工作正常。

  3. 谢谢你的信息。然而,在遵循您的步骤后,我一直得到这个错误。ESP8266芯片同步错误esp_sync_blocking。你能帮忙吗?

  4. 我遵循了这个过程两次,第一次是试图使用v1 ..6.2固件。我对装载地址有点紧张??这有效地砖了第一个单元。
    我再次尝试,阅读并遵循每一个步骤,但这一次使用相同的v 1.5.1固件。
    我得到了同样的结果,又是一个砖砌的单位!

    两个单元都发送输出,比特的范围是12.3uSec,大约是80,000波特(不是标准波特率)我猜?固件中有损坏的东西或加载地址是错误的?

    你能告诉我你是怎么找到这些收货地址的吗?

    1. 自从我把它贴在这里以来,我一直使用相同的地址,没有任何问题。几天前,我甚至使用相同的程序将我的ESP-01升级到较新的固件(V1.6.2)。
      这些地址在ESP8266EX SoC的官方数据表中提供(可以从Espressif网站下载),也有一些github页面。
      请问你用的是什么模块?另外,它是否有5V到3.3V电平转换器(用于ESP8266的RX)?模块的电源呢(只有3.3V)。

    2. ESP8266下载工具有问题。我没有探究它在什么版本启动,但在3.6.4下SPIDownload选项卡将不能正确闪光,当你试图使用AT接口时,你会看到jiberish。

      简单的修复,使用MultiDownload选项卡,扩大窗口,只是设置和加载单个模块。它将正确加载和运行。这不是上面说明的问题,硬件或固件(1.6.2)的问题,而是下载工具的问题。

  5. 你好,我想知道我的ESP 8266是不是砖的。
    1)最初我能用AT命令与我的ESP 8266交谈,但它有时不稳定,有时不接受我的AT命令。但我很确定它起作用了。
    2)我尝试了几次通过arduino UNO上传草图,有一次它显示EEPROM失败的错误信息,但尝试了几次后成功
    3)现在它没有响应我的at命令,无法检测到tESP 8266 WiFi
    4)我试着根据你的教程来闪。但WiFI和At命令没有响应。

    它应该怎么做?

  6. 我用这个程序更新了我的ESP-01模块的固件,但没有成功。尽管检查了所有的东西,但当我启动闪烁过程时,所有的东西都挂了,没有任何迹象表明闪烁过程正在进行。我不知道现在该怎么办,不知道有没有人能给点建议。

  7. 你好。我也有闪光加载的问题。出现如下内容:ESP8266芯片熔解检查错误esp_check_mac_and_熔解。这是什么,我怎么解?
    谢谢。

  8. 我希望这篇文章能帮助那些有闪光ESP模块问题的人:我有多次不成功的闪光尝试。这有点像一场噩梦。

    在升级到一个新的SDK版本之前,我使用这个工具将我的ESP模块降级到一个旧版本:点击这里

    一旦flash工具用旧版本更新模块,我就会使用Espressif工具(以及所述的过程)升级到最新的SDK版本。这对我来说似乎很有效。我无法从技术上解释为什么它会起作用,但它确实起作用了。

    希望它可以帮助。

  9. 我将讲述我的经历。
    1.如果你之前上传过一些Arduino代码,你不会在一些垃圾数据后看到“ready”。别担心,跳过这个,按照下面的说明做。
    2.通过将波特率切换到74880波特,然后按复位按钮,可以看到什么是垃圾数据。
    3.这是我ESP8266上的数据。

    ets 1月8日2013,rfirst cause:2, boot mode:(3,6)

    加载0x40100000, len 2592,房间16
    尾巴0
    chksum 0 xf3
    加载0x3ffe8000, len 764,房间8
    尾巴4
    chksum 0 x92
    加载0x3ffe82fc, len 676,房间4
    尾巴0
    chksum 0将
    csum 0将

    第二引导版本:1.7(5d6f877)
    SPI速度:40MHz
    SPI模式:QIO
    SPI Flash大小和地图:8Mbit(512KB+512KB)
    跳到运行user1 @ 1000

    Rf CAL扇区:251
    频率跟踪使能
    射频[112]:03
    射频[113]:00
    射频[114]:01

    SDK ver: 2.1.0(ace2d95)编译@ 10月24日2017 12:04:16
    Phy ver: 1134_0, pp ver: 10.2

    4.在“闪存地址”表中有一个错误。user1.1024.new.2.bin文件的地址应该是0x01000,而不是0x100000。

    1. 谢谢,给出正确的地址输出

      ets 1月8日2013,rfirst cause:2, boot mode:(3,7)

      加载0x40100000, len 2592,房间16
      尾巴0
      chksum 0 xf3
      加载0x3ffe8000, len 764,房间8
      尾巴4
      chksum 0 x92
      加载0x3ffe82fc, len 676,房间4
      尾巴0
      chksum 0将
      csum 0将

      第二引导版本:1.7(5d6f877)
      SPI速度:40MHz
      SPI模式:QIO
      SPI Flash尺寸和地图:16Mbit(1024KB+1024KB)
      跳到运行user1 @ 1000

      但没有操作/ AT cmd似乎工作。如何进行呢?

  10. 固件在ESP8266上显示得很好。终端已准备好设备报告。但是它不响应AT命令。

    使用AT固件1.7从espressif

  11. 在我成功闪现ESP后,它只输出串行监视器中的垃圾。而且它并没有准备好。
    谁知道什么吗?

  12. 首先,感谢一个伟大的向导,真的帮助我把一个没有反应的设备复活了。

    我花了一段时间才找到合适的固件,但一旦我找到了,我设法将我的设备闪到1.5.1。(ESP8266 AT Bin V1.5.1)

    有趣的是,我似乎能够升级到的最大版本是1.6.2 (ESP8266 AT Bin V1.6.2),使用相同的地址作为指南。1.7.1传输,但设备没有响应。1.6.2似乎满足了我的需要。

    问候

    安德鲁

留下一个回复

您的电邮地址将不会公布。

Electronicshub图标
Baidu
map