雷竞技注册
项目

如何Flash ESP-01固件到改进版SDK v2.0.0

2017年3月17日通过查尔斯·r·汉普顿

了解SKD v2.0.0以及esp01的固件如何变得更容易闪烁。

尽管升级ESP-01等模块的固件有困难,但内置Wi-Fi的ESP8266微控制器在电子设计师中非常受欢迎。现在,由于有了更多的信息和更好的工具,刷新过程大大简化了,并且SDK v2.0.0增加了新的功能。

介绍

ESP8266的成功Espressif系统这是不可否认的。它是一款功能强大的微控制器,具有内置Wi-Fi功能,并且易于适应快速增长的物联网(IoT)中的多种用途。使用IC的几个困难之一是更新市场上成千上万个开发模块的固件。从发布的大量评论来看,这篇文章关于赛雷竞技注册道的一切对许多人都有帮助。然而,随着时间的推移,在2015年10月提供的信息中发现了一些需要纠正和改进的地方,呈现这些信息是本文的目标。

具体而言,将解决以下改进:

  • 更好的闪光电路
  • 一个易于使用的终端程序
  • 修改后的Flash下载工具
  • 更新了SDK v2.0.0 ESP8266固件

总体而言,这些更改得到了Espressif更好文档的支持,将简化固件刷新过程,并提高ESP8266对爱好者和专业设计师的可用性。

请注意,这篇文章是前一版本发表于2015年10月。你可能想仔细阅读那篇文章以获得一些有价值的背景信息。

闪烁的电路

ESP-01模块的改进闪光电路原理图如下所示;对原设计做了几个改动:

  1. 3.3VDC电源不再从usb到ttl转换器。有些转换器不能提供足够的电流来驱动ESP8266,特别是当它处于Wi-Fi传输模式时。应使用单独的、经过良好过滤和调节的3.3VDC电源,至少能够提供500mA。
  2. 增加了电容C1和C2,以降低电源母线上的噪声。它们应该尽可能靠近ESP8266上的Gnd和Vcc引脚。
  3. R2和R3是上拉电阻,是为了确保ESP8266上的GPIO2和GPIO0引脚不允许浮动而添加的。

这些变化并不表明原来的闪光电路没有功能;事实上,它确实对作者和许多其他用户有效。然而,它的缺点是,对于某些用户来说,电路至少在某些时候会出现故障。这些故障可能是由于环境因素、电源质量和/或组件公差的差异造成的。改进后的电路应该能消除这些缺点。

点击放大

改进的闪光电路是建立在无焊料面包板上的,如下图所示。第一张图为ESP-01模块到位后的整个电路;第二张照片显示的是为了显示C2、R2和R3的位置而取出ESP-01模块的电路。请注意,面包板组件中的电线颜色与原理图中的颜色指示相对应。

在面包板右侧的PCB组件是一个良好调节和过滤的3.3VDC电源。有关构建此电源的副本的完整信息,请参阅这篇文章AAC。否则,您可以使用具有类似功能的任何电源。

面包板左上角的PCB组件是usb - ttl转换器。如你所见,它是直接插入到无焊料面包板使用六个杜邦风格头引脚,从PCB底部突出下来。您可以修改您的USB-to-TTL转换器以这种非常方便的方式工作,或者您可以使用离散的电线来进行连接。无论你选择哪一个,一定要遵循原理图和照片中显示的pinout序列。ESP-01的转换器到TxD的RxD连接,ESP-01的转换器到RxD的TxD连接,以及公共接地。

即使ESP-01没有使用USB-to-TTL转换器供电,也要确保将转换器设置为3.3VDC,以便信号电压水平不会超过ESP8266的输入范围。任何高于3.3VDC的电压都可能对ESP8266造成无法修复的损坏。

在上面的照片中,ESP-01模块已从组件中移除,显示了作者为ESP-01自制的面包板适配器。在下面的照片,家庭建造的适配器显示在左边,以及一个几乎相同的专业建造的适配器Addicore在右边。它们的工作原理相同,使得ESP-01模块更容易在无焊料面包板或任何类似的0.1英寸(2.54 mm)中心上有连接器的设备上使用。

一旦你完成了闪烁电路的构建,几乎是测试的时间了。但在连接USB线或使用电源之前,请重新检查线路,特别是电源线路。现在多花几分钟比因为不正确的布线而损坏东西要好。

首先,将PC机的USB线连接到USB-to- ttl转换器上。当PCB角落靠近USB连接器的红色LED灯亮时,PC识别转换器,即为阳性指示。此时,请注意分配给转换器的COM端口号。如图所示,已经将COM4分配给了所示的转换器,并附上了相应的COM端口标签。

接下来,给闪光电路加3.3VDC电源。此时,ESP-01模块上的蓝色LED会闪烁几下,且红色LED会一直亮着。电路中不能有烟味或异味。

现在,按下并释放SW1(复位开关);蓝色LED应该闪烁。然后,按下并释放SW2(闪光开关);不会有什么值得注意的事情发生。

如果一切都按照计划进行,你的闪光电路很可能是正确的。现在是进行最终检查的时候了:当你叫它注意时,ESP8266会回答吗?

零件清单

闪光电路各部分如下表所示。此外,您可能需要各种电线,焊料,和一个良好的调节和过滤3.3伏直流电源

Ref一部分。 描述 项目编号
C1 陶瓷电容器,0.1µF,50V Digi-Key 399-9797-ND
C2 电容,铝电解,220µF, 16V Digi-Key 493 - 1041
R1-R4 电阻,¼W, 10kΩ Digi-Key 10 kqbk-nd
N/A 面包板,无焊料,400 Digi-Key 377 - 2094
N/A 适配器,面包板,DIP8,用于esp01和nRF24L01 Addicore BB-ADTR
N/A 模块、ESP8266 ESP-01 Digi-Key 1568-1235-ND
SW1-SW2 开关,触觉,瞬时,常开,SPST,按钮,2针 在线* N/A
N/A 转换器,usb到ttl,具有3.3V能力 在线* N/A
*除了USB-to-TTL转换器和SW1-SW2之外,所有部件都可以从各种供应商处获得,SW1-SW2可能需要通过在线搜索找到。SW1和SW2是普通的触感、瞬时、常开的SPST按钮开关,但底部只有两个引脚。由于引脚在0.2英寸的中心,它们在无焊面包板中工作得很好;请参阅这篇文章

《白蚁入门

腻子是关于闪烁ESP8266 ic的原始文章中推荐的终端程序,如果您有这个程序并且想要使用它,它可以正常工作。然而,白蚁在这个应用程序中更容易使用,并将在后面的逐步说明中使用。白蚁是免费的个人和商业用途。

以下说明假设ESP-01模块按照正常从供应商接收的方式进行编程。如果您(或其他人)更改了默认程序设置,您需要进行试验,以找到ESP-01模块的当前设置。

如前所述检查ESP-01闪烁电路后,将其上电。在你的电脑上启动白蚁,点击设置按钮;您应该会看到一个类似于下面的窗口。在“串口设置”窗口中确认usb转ttl转换器所连接的COM口选择正确。如下面“串口设置”窗口所示,调整所有其他设置,单击“确定”关闭“串口设置”窗口。

此时,光标应该在“白蚁”窗口的底部闪烁;如果没有,单击白蚁窗口的底部部分,将光标定位在那里。在键盘上输入AT并按Enter键;如果一切正常,ESP-01将在白蚁窗口响应OK。如果是这样,请松一口气,因为你刚刚克服了一个主要的障碍。

接下来,键入AT+GMR并按Enter键。ESP-01的响应应与下面的窗口非常相似。

AT+GMR命令告诉ESP8266报告其包含的AT命令集的版本、加载了哪些SDK(软件开发工具包)、ESP模块是由哪个公司构建的,以及SDK何时加载到模块上。最后,与往常一样,ESP8266以OK结束其传输。

如果ESP-01的反应是正确的,那么你的《白蚁》就结束了(除非你想再玩一些)。您将在这个项目中再次使用它来确认一个成功的固件闪存。

ESP8266下载

所有在ESP8266芯片上刷新固件所需的文档和工具都可以在网上找到,大部分都在Espressif网站上。为了方便AAC读者,这里也提供了很多信息。Flash下载工具和软件开发工具包是绝对必要的。并非所有的文档都是必需的,但它们都有潜在的帮助。请下载这些文件,并将它们存储在您的计算机中可以找到的目录中,以便您可以执行本文前面描述的ESP8266固件闪存。

Flash下载工具v3.4.4

在编写本文时,Flash下载工具的3.4.4版本是Espressif提供的最新版本。ESP8266的工具与之前的几个版本几乎完全相同,只是在包中增加了两个新工具。一个用于ESP8285,另一个用于ESP32,两者都不能用于ESP8266。点击下面的按钮下载v3.4.4;你会注意到它包含pc版和Mac版。本文将使用PC版本。

ESP_flash_download_tools_v3.4.4.zip

软件开发工具包2.0.0

在撰写本文时,ESP8266软件开发工具包的最新版本是2.0.0,该版本于2016年7月发布。虽然在固件开发中几乎没有什么是确定的,但人们可能会得出结论,v2.0.0是将要发布的最后一个版本。无论如何,它似乎是一个稳定的版本,将在本文中使用。它可以从Espressif免费下载,但为了给读者省去一些麻烦,点击下面的按钮也可以下载。

ESP_SDK_v2.0.0.zip

ESP8266文件

正如人们常说的那样,“当所有其他方法都失败时,请阅读说明。”为此,Espressif收集了大量与ESP8266相关的文档。毫无疑问,许多问题的答案都包含在他们的页面中。作者使用最多的三个文档是ESP8266 Quick Start Guide, version 1.3, ESP8266 SDK Getting Started Guide, version 2.7, and ESP AT Instruction Set, version 2.0.0。这三个文件以及其他几个文件都包含在zip文件中,可以通过下面的按钮下载。请注意,在Espressif网站上可以找到更多的文档和最新的文档。

ESP8266\u Documents.zip

位和字节回收

ESP8266模块(如ESP-01)上的EEPROM的数量是一个非常重要的因素,它决定了要使用的确切闪光程序。EEPROM的数量可以用各种不同的测量单位来表示,并且在文档中使用的单位在不同的地方都不一样,这可能会让人感到困惑。下面的要点和表格是现成的参考,以减少混乱。

  • bit的缩写是b, byte的缩写是b。
  • 一个字节(b)有8位(b)。
  • kilobit的缩写是Kb, kilobyte的缩写是Kb。同样地,megabit缩写为Mb, megabyte缩写为Mb,等等。
  • 还需要注意的是,大多数(可能是所有)ESP-01模块黑色多氯联苯有1mb的EEPROM。

术语

字节(B) 千字节(KB) 兆字节(MB) 十亿字节(GB) TB结核病
的字节数 1 1024年 1048576年 1073741824年 1099511627776年

闪蒸过程

阅读你的ESP-01模块

将ESP-01模块安装在闪烁电路中,将USB转ttl转换器连接到PC上的USB端口,用3.3VDC为电路上电。启动Flash下载工具的3.4.4版本,您应该会看到如下所示的启动屏幕。后窗是记录下载工具完整活动日志的地方。顶部窗口是工具选择窗口;因为您使用的是ESP8266模块,请单击ESP8266下载工具按钮。

如果这是第一次使用ESP8266下载工具,则会打开一个类似下面的窗口,其中的表单字段中没有数据。如果没有选择窗口顶部附近的SPIDownload选项卡,请现在选择它。

如果其中任何一个框中有勾号,就把它们全部去掉。接下来,确保在右下角选择了您正在使用的COM端口和正确的波特率。点击SPI SPEED下的单选按钮为40MHz,和SPI MODE下的单选按钮为QIO。不要点击任何其他单选按钮,添加任何复选标记,或输入任何数据。

  1. 按住闪烁电路上的Reset按钮(SW1)。
  2. 按住闪烁电路上的闪光按钮(SW2)。
  3. 释放Reset按钮。
  4. 释放Flash按钮。
  5. 单击下载工具窗口左下角的开始按钮。

下载工具将运行几秒钟来读取ESP-01模块的内容,并将结果打印在相应的面板中,如下所示。

以下是在下载工具过程中发生的事情:

  1. 下载工具将模块上的EEPROM的大小确定为“QUAD;8Mbit”,即1mb。
  2. 下载工具确定晶体速度为26MHz。
  3. 下载工具在AP (Access Point)模式和STA (Station)模式下读取ESP-01模块的MAC地址,并在下载面板1中输入。(请注意,ESP-01模块的MAC地址与上面所示的地址不同;记录模块的MAC地址,以备将来参考。)

写入您的ESP-01模块

最后,您可以选择新固件并将其写入模块。设置方法如下:

  1. 选择CrystalFreq为26M。
  2. 点击SPI SPEED单选按钮为40MHz。
  3. 单击QIO的SPI模式单选按钮。
  4. 单击8Mbit的闪存大小单选按钮。

选择要从其存储位置下载的二进制文件,如下表所示。(下面列出的文件包含在您下载并存储在PC上的ESP8266 SDK v2.0.0文件夹中。)

二进制文件的名字 二进制文件位置 ESP-01 Flash地址
blank.bin …\ esp8266_nonos_sdk_v2.0.0_16_08_10 \ ESP8266_NONOS_SDK \ bin 0xFB000
esp_init_data_default.bin …\ esp8266_nonos_sdk_v2.0.0_16_08_10 \ ESP8266_NONOS_SDK \ bin 0 xfc000
blank.bin …\ esp8266_nonos_sdk_v2.0.0_16_08_10 \ ESP8266_NONOS_SDK \ bin 0 x7e000
blank.bin …\ esp8266_nonos_sdk_v2.0.0_16_08_10 \ ESP8266_NONOS_SDK \ bin 0 xfe000
boot_v1.6.bin …\ esp8266_nonos_sdk_v2.0.0_16_08_10 \ ESP8266_NONOS_SDK \ bin 0 x00000
user1.1024.new.2.bin …\esp8266\U NONONOS\U sdk\U v2.0.0\U 16\U 08\U 10\esp8266\U NONONOS\U sdk\bin\at\512+512 0 x01000

a .点击下载路径配置下面的第一个(左上角)复选框;整个数据输入行将变成红色,如下所示。

B.点击第一行的省略号(…)按钮,导航到PC上SDK 2.0.0二进制文件存储的位置;选择blank.bin文件。整个文件路径将被输入到省略号按钮左边的框中。

C.接下来,在将要存储blank.bin文件的省略号按钮右侧输入十六进制地址:在本例中为0xFB000。

对每个二进制文件重复步骤A到C。完成后的数据将如下所示。

重新检查所有文件路径和十六进制存储位置后,请执行以下操作:

  1. 按住闪烁电路上的Reset按钮(SW1)。
  2. 按住闪烁电路上的闪光按钮(SW2)。
  3. 释放Reset按钮。
  4. 释放Flash按钮。
  5. 单击下载工具窗口左下角的开始按钮。

下载工具将运行几秒钟,将二进制文件写入ESP-01模块。当蓝色进度条到达窗口右侧时,闪烁过程完成,如下图所示。

按下并释放闪烁电路上的复位按钮(SW1)。关闭闪烁电路。

确认Flash成功

要确认闪光过程已成功完成,请接通闪光电路的电源。启动Termite并检查固件版本,如前所述,如下所示。您应该看到以下结果。

您的ESP-01模块升级到SDK版本2.0.0,AT命令集版本1.3.0.0。恭喜你!您可以将ESP-01投入到您的物联网项目中。

你自己试试这个项目吧!BOM。

85条评论
  • 腐烂的罗尼 2017年3月19日

    辉煌。尽管我在ebay上购买了“ESP01程序员适配器UART GPIO0 ESP-01”,并使用一些鳄鱼夹来拉下RST和GPIO0,但我几乎完全遵循了这个指南。

    谢谢!

    喜欢的。 回复
    • 查尔斯·r·汉普顿 2017年3月19日
      哇,很高兴听你这么说;我很高兴能帮上忙。如您所见,您的是第一个评论,这个过程很适合您。希望很多人也能从中受益。谢谢你的建议。传播这个词!
      喜欢的。 回复
  • keaaw 2017年3月19日

    关于电源的问题。在之前的一篇文章中,您写道:“ESP-01在Wi-Fi运行期间所需的电流估计在250mA到750mA之间。USB提供的TTL转换器的电流应该足以编程的ESP-01,但可能证明不适合长期使用。一个更好的选择是过滤调节3.3VDC电源,能够1A或更多。”你正在使用的3.3v版本的DIY电源额定电压是500mA…?

    喜欢的。 回复