更新板载 ESP8285 固件

1. 简介:

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

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

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

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

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

查看文本末尾例程

  • 外接 USB 转串口模块测试

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

M1W USB 模块 说明
M1W GND GND 共地
K210 (IO6)/ESP8285 TX RX -
K210 (IO7)/ESP8285 RX TX -
k210 RST(上电之前接地,全过程拉低 RST) GND -

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

3. AT 指令集

ESP8285 和 ESP8266 为同一系列产品,使用同一套 AT 指令集 ESP8285/ESP8266/ESP32 最新 AT指令集 https://github.com/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 2013,rst cause:1, boot mode:(3,2)

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

Strapping 管脚的 3 位值/[GPIO15, GPIO0, GPIO2] Boot 模式
7 / [1, 1, 1] SDIO HighSpeed V2 IO
6 / [1, 1, 0] SDIO LowSpeed V1 IO
5 / [1, 0, 1] SDIO HighSpeed V1 IO
4 / [1, 0, 0] SDIO LowSpeed V2 IO
3 / [0, 1, 1] Flash Boot
2 / [0, 1, 0] Jump Boot
1 / [0, 0, 1] UART Boot
0 / [0, 0, 0] Remapping

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

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

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

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

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

4.2. 准备

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

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

  • 软件:

  • ESP 固件更新工具:ESP8285 flash_download_tools

    • 乐鑫官网下载链接:flash_download_tools
  • ESP8285 AT 固件:

    • 下载链接:ESP8266 AT bin

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

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

  1. 按照下面配置,连接 MaixDock,

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

  1. 打开 flash_download_tools

  2. 下载 MaixDock ESP8285 固件

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

  4. 设置下载选项:

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

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

  6. 验证更新是否完成

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

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

  1. 按照下面配置,连接 MaixDock,

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

  2. 安装 esptool

     pip3 install esptool
  3. 下载 MaixDock ESP8285 固件

     ls /dev/ttyUSB* # 查看 USB 串口esptool --port /dev/ttyUSB0 write_flash 0x0 ESP8285-AT-V1.7.4_8Mbit_40Mhz.bin # 烧录固件
  4. 验证更新是否完成

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

4.5. MaixPy 例程测试:

import network, time
from machine import UART
from Maix import GPIO
from 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 rst
fm.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 rssi
for ap in ap_info:print("SSID:{:^20}, RSSI:{:>5} , MAC:{:^20}".format(ap[1], ap[2], ap[3]) )

本人原文地址:https://bbs.sipeed.com/thread/481

【开发环境准备】更新板载ESP8285固件相关推荐

  1. ARX开发环境与ARX加载的秘密[转]

    回想曾经开始学做ARX的日子,帮助文档不详尽,例子太少,苦不堪言啊.所以今天兴致好,发个贴子,让走过弯路的朋友们少走弯路,也算为这个注册N久的坛子尽点力.希望与大家多交流,共同提高. 回到正题,首先我 ...

  2. 【微前端开发环境下,加载远程子应用的实战。】

    一开始我们的本地开发运行的环境,如果没有启动子应用的话.对应的页面是白屏的. 问题: 当有关联资源需要跳转时无法跳转,需要额外打开一个浏览器tab页到环境上面执行操作. 当bug类型为纯ui-serv ...

  3. ESP8266 Non-OS SDK 开发之旅 基础篇① 初识 Non-OS SDK,史上超级详细手把手教小白20分钟快速搭建SDK软件开发环境,完成第一个例子Hello World!

    文章目录 1.前言 2. SDK概述 2.1 SDK使用流程 2.2 ESP8266 HDK -- 硬件开发工具 2.3 ESP8266 SDK -- 软件开发工具包 2.3.1 Non-OS SDK ...

  4. python开发环境和运行环境的区别_Django 开发环境与生产环境的区分详解

    Django 开发环境与生产环境的设置 在常规的Django工程开发中,我们经常会遇到一类问题,即:本地开发环境跟远程服务器生产环境配置不一样.对于这些不同之处,以前的做法是直接修改生产环境中的配置. ...

  5. python的集成开发环境搭建_Window版本 - Python数据分析集成开发环境 Anaconda安装(超详细)...

    Window版本 - Python数据分析集成开发环境 Anaconda安装(超详细) 前沿 ​ Hello,各位看官,您是不是决定要学习Python数据分析,您是不是现在正在"学" ...

  6. 我的.NET开发环境设置

    我想大家在开发过程中可能同样会遇到下列问题: 1,多平台开发 不同的开发工具,相同开发工具的不同版本混装在一起,稍有不慎就会搞得乱七八糟. 2,试用新控件或者新工具 很自然的,因为没用过,搞乱系统也就 ...

  7. anaconda必须安装在c盘吗_Window版本 - Python数据分析集成开发环境 Anaconda安装(超详细)...

    Window版本 - Python数据分析集成开发环境 Anaconda安装(超详细) 前沿 ​ Hello,各位看官,您是不是决定要学习Python数据分析,您是不是现在正在"学" ...

  8. Django 开发环境与生产环境的区分详解

    Django 开发环境与生产环境的设置 在常规的Django工程开发中,我们经常会遇到一类问题,即:本地开发环境跟远程服务器生产环境配置不一样.对于这些不同之处,以前的做法是直接修改生产环境中的配置. ...

  9. 【物联网】 AR9344开发环境的搭建和编译固件

    一. 选择Openwrt平台的理由 传统的路由器固件是由官方提供的.这些固件是不开源的,而且这些路由器的功能也比较单一,很难满足日益变化的智能家居需求.因此,在构建物联网核心时,需要考虑第三方固件平台 ...

  10. ESP8266在Alios-Things上的入门开发指南 (一)开发环境搭建及HelloWorld固件

    一.    开发环境搭建 目前国内大多数开发者使用的都是WinXP/Win7/Windows XX做MCU的开发.习惯Windows环境开发的朋友,如果一旦一接触到MCU需要是Linux环境来进行开发 ...

最新文章

  1. 限时福利:腾讯高级专家手把手教你打造 OCR 神器!
  2. linux 占用cpu 脚本,消耗CPU资源的shell脚本
  3. oracle取本月最后一天是星期几_Oracle 获取本周、本月、本季、现年的第一天和最后一天...
  4. 精简系统绝对不可删除的应用程序
  5. 了解java.nio.file.Path – 2
  6. C#LeetCode刷题之#263-丑数(Ugly Number)
  7. CMD attrib命令详解
  8. Swift 4 和 Objective-C 在同一个工程里的混搭编程的方法
  9. XenApp_XenDesktop_7.6实战篇之十七:XenApp应用程序交付
  10. 人工智能表格票据识别-要素信息自动识别提取
  11. 微软OneDrive使用体验
  12. 鹏业安装算量常见安装问题处理
  13. Linux CFS调度器之唤醒WAKE_AFFINE 机制--Linux进程的管理与调度(三十一)
  14. 直播预告|年营业额百亿的企业都在如何做数字化转型
  15. raid服务器如何备份系统,RAID服务器的系统分区备份方法
  16. Surrogate mother是代孕妈妈,那么,Surrogate parent呢?
  17. 【NOI2008】 赛程安排
  18. 融云会话界面自定义功能_Android快速集成融云
  19. HTML5实现动态时钟
  20. 数据库将表的字段值查询为字段名

热门文章

  1. WES7创建系统恢复盘
  2. 三洋p6系列伺服电机说明书_兰州同步伺服电机维修-川其实业
  3. 战神z7完美linux,不黑不吹 战神Z7游戏本的质量真的差么?
  4. html添加表格背景颜色代码,html – 设置表格行的背景颜色
  5. EXCEL等间隔数据处理
  6. Java开发实用工具推荐
  7. 稳压二极管原理及使用
  8. 中职计算机基础知识总结,中职计算机基础知识整理
  9. cocos creator 游戏框架
  10. 灵格斯怎么屏幕取词_灵格斯词霸怎么屏幕取词