600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 【开发环境准备】更新板载ESP8285固件

【开发环境准备】更新板载ESP8285固件

时间:2021-12-10 06:39:04

相关推荐

【开发环境准备】更新板载ESP8285固件

更新板载 ESP8285 固件

1. 简介:

目前 MaixPy 系列采用 M1W 模块的作为核心模块的开发板有: MaixDock(M1W), MaixGo

通常情况下我们不需要更新模块内部 WIFI SOC ESP8285 的固件,但是如果使用过程中存在 bug,以及有新版本的固件发布时我们就可以更新固件

MaixDock、MaixGo 使用的 M1W 模块中的 ESP8285 默认烧录的是 AT 固件

2. 验证 ESP8285 是否能够正常工作

MaixPy 验证 ESP8285 是否正常工作例程

查看文本末尾例程

外接 USB 转串口模块测试

使用 USB 转串口模块,按照下表连接之后上电

上电之后板子会在串口输出(这里使用 XCOM, 波特率 115200) 来验证 ESP8285 是否正常启动

3. AT 指令集

ESP8285 和 ESP8266 为同一系列产品,使用同一套 AT 指令集 ESP8285/ESP8266/ESP32 最新 AT指令集 /espressif/esp-at/blob/v2.0.0.0_esp8266/docs/ESP_AT_Commands_Set.md

4. 更新 ESP8285 固件步骤

在烧录 ESP8285 固件之前,先了解下 ESP8285 烧录原理:

4.1. ESP8285 固件烧录原理

ESP8285 在上电时,会判断 boot stapping 管脚的状态,并决定启动(boot)模式, 如:

ets Jan 8 ,rst cause:1, boot mode:(3,2)

其中打印的 boot mode 的第一位数字(3)代表当前的 boot 模式。 Boot 模式由 strapping 管脚的 3 位值 [GPIO15, GPIO0, GPIO2] 共同决定。如下表所 示:

ESP8285 进入不同模式的 IO 电平请看如下表:

即 ESP8285 进入 UART 下载模式,启动信息 mode 第一位应该为 mode:(1, X),如下:

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

而以 MaixDock 为例,可以看到 MaixDock 原理图如下:

4.2. 准备

这里以 MaixDock(M1W), Windows 10 系统为例

硬件: MaixDock, USB Type-C 数据线

软件:

ESP 固件更新工具:ESP8285flash_download_tools

乐鑫官网下载链接:flash_download_tools

ESP8285 AT 固件:

下载链接:ESP8266 AT bin

乐鑫官方下载链接: espressif_esp8266-at

4.3. Windows 使用 flash_download_tools 更新 ES8285(这里以 MaixDock 为例):

按照下面配置,连接 MaixDock,

将 USB 转串口模块和ESP8285连接,连接方式前面已经介绍 上电前 需要将 GPIO0 拉低,即将天线旁左上角的触点接地,进入 UART 下载模式。

打开flash_download_tools

下载MaixDock ESP8285 固件

选择 ESP8285 串口(一般都是串口号比较大的)

设置下载选项:

如图配置相应选项, 注意波特率一定要设置为 115200

点击Start更新固件,并等待完成更新

验证更新是否完成

使用 XCOM 波特率 115200, 打开 ESP8285 串口,输出AT\r\n,如图提示OK即刷入成功

4.4. LINUX 使用 esp_tool 更新 ES8285(这里以 MaixDock 为例):

按照下面配置,连接 MaixDock,

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fKOB0wnn-1623726341716)(https://cn./assets/hardware/maix_dock/sipeed_maix_dock_m1w_2.png)]

安装 esptool

pip3 install esptool

下载MaixDock ESP8285 固件

ls /dev/ttyUSB* # 查看 USB 串口esptool --port /dev/ttyUSB0 write_flash 0x0 ESP8285-AT-V1.7.4_8Mbit_40Mhz.bin # 烧录固件

验证更新是否完成

使用 XCOM 波特率 115200, 打开 ESP8285 串口,输出AT\r\n,如图提示OK即刷入成功

4.5. MaixPy 例程测试:

import network, timefrom machine import UARTfrom Maix import GPIOfrom fpioa_manager import fm# En SEP8285 rst#fm.register(8, fm.fpioa.GPIOHS0, force=True)#wifi_en=GPIO(GPIO.GPIOHS0, GPIO.OUT)#wifi_en.value(1)# En SEP8285 rstfm.register(0, fm.fpioa.GPIOHS0, force=True)wifi_io15=GPIO(GPIO.GPIOHS0, GPIO.OUT)wifi_io15.value(0)fm.register(8, fm.fpioa.GPIOHS1, force=True)wifi_en=GPIO(GPIO.GPIOHS1, GPIO.OUT)wifi_en.value(1)# for new MaixGO board, if not, remove it#fm.register(0, fm.fpioa.GPIOHS1, force=True)#wifi_io15_en=GPIO(GPIO.GPIOHS1, GPIO.OUT)#wifi_io15_en.value(0)fm.register(6, fm.fpioa.UART2_RX, force=True)fm.register(7, fm.fpioa.UART2_TX, force=True)uart = UART(UART.UART2,115200,timeout=1000, read_buf_len=4096)def wifi_enable(en):global wifi_enwifi_en.value(en)def wifi_deal_ap_info(info):res = []for ap_str in info:ap_str = ap_str.split(",")info_one = []for node in ap_str:if node.startswith('"'):info_one.append(node[1:-1])else:info_one.append(int(node))res.append(info_one)return res#wifi_enable(0)time.sleep(2)nic = network.ESP8285(uart)ap_info = nic.scan()ap_info = wifi_deal_ap_info(ap_info)ap_info.sort(key=lambda x:x[2], reverse=True) # sort by rssifor ap in ap_info:print("SSID:{:^20}, RSSI:{:>5} , MAC:{:^20}".format(ap[1], ap[2], ap[3]) )

本人原文地址:/thread/481

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。