更新�载 ESP8285 固件
1. 简介:
ç›®å‰� MaixPy 系列采用 M1W 模å�—çš„ä½œä¸ºæ ¸å¿ƒæ¨¡å�—的开å�‘æ�¿æœ‰: MaixDock(M1W), MaixGo
通常情况下我们ä¸�需è¦�更新模å�—内部 WIFI SOC ESP8285 的固件,但是如æ�œä½¿ç”¨è¿‡ç¨‹ä¸å˜åœ¨ bug,以å�Šæœ‰æ–°ç‰ˆæœ¬çš„固件å�‘布时我们就å�¯ä»¥æ›´æ–°å›ºä»¶
MaixDockã€�MaixGo 使用的 M1W 模å�—ä¸çš„ ESP8285 默认烧录的是 AT 固件
2. 验è¯� ESP8285 是å�¦èƒ½å¤Ÿæ£å¸¸å·¥ä½œ
- MaixPy 验è¯� ESP8285 是å�¦æ£å¸¸å·¥ä½œä¾‹ç¨‹
查看文本末尾例程
| 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 转串�模�和ESP8285��,��方���已�介� 上电� 需�将 GPIO0 拉�,�将天线�左上角的触点�地,进入 UART 下载模�。

-
打开 flash_download_tools
-
下载 MaixDock ESP8285 固件

-
选择 ESP8285 串�(一般都是串��比较大的)
-
设置下载选项:
如图�置相应选项, 注�波特�一定�设置为 115200

-
点击 Start 更新固件,并ç‰å¾…完æˆ�æ›´æ–°
-
验�更新是�完�
- 使用 XCOM 波特� 115200, 打开 ESP8285 串�,输出
AT\r\n,如图�示 OK �刷入�功 
-
按照下��置,�� MaixDock,

-
安装 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, 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_en
wifi_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]) )
ets Jan 8 2013,rst cause:2, boot mode:(3,7)
load 0x40100000, len 1856, room 16
tail 0
chksum 0x63
load 0x3ffe8000, len 776, room 8
tail 0
chksum 0x02
load 0x3ffe8310, len 552, room 8
tail 0
chksum 0x79
csum 0x79
2nd boot version : 1.5
SPI Speed : 40MHz
SPI Mode : DOUT
SPI Flash Size & Map: 8Mbit(512KB+512KB)
jump to run user1 @ 1000
[10:48:49.676]收←◆rf[112] : 03
rf[113] : 00
rf[114] : 01
[10:48:49.766]收←◆
SDK
蚇O
[10:48:51.177]收←◆鉓
)ヂ薆滧