乐鑫ESP8266-12S模组是比较新推出的WIFI模组,这个12S的Flash已经提高到了32Mbit,而之前的01S系列只有8M,Flash变大之后可以支持的固件版本和类型也多了起来。
ESP8266 是高性能无线 SOC,以最低成本提供最大实用性,为 WiFi 功能嵌入其他系统提供无限可能。具有以下特点:
802.11 b/g/n
内置Tensilica L106 超低功耗 32 位微型 MCU,主频支持 80 MHz 和160 MHz,支持 RTOS
内置10 bit高精度ADC
内置TCP/IP协议栈
内置TR 开关、balun、LNA、功率放大器和匹配网络
内置PLL、稳压器和电源管理组件,802.11b 模式下+20 dBm的输出功率
A-MPDU 、 A-MSDU 的聚合和 0.4 s的保护间隔
WiFi @ 2.4 GHz,支持 WPA/WPA2 安全模式
支持AT远程升级及云端OTA升级
支持 STA/AP/STA+AP 工作模式
支持 Smart Config 功能(包括 Android 和 iOS 设备)
HSPI 、UART、I2C、I2S、IR Remote Control、PWM、GPIO
深度睡眠保持电流为 10 uA,关断电流小于 5 uA
2 ms 之内唤醒、连接并传递数据包
待机状态消耗功率小于1.0 mW (DTIM3)
工作温度范围:-20℃- 85℃
拿飘易经常使用的01S和12S比较下,主要的区别如下:
12S板层升级到4层,Flash升级到32M。
关于ESP8266-12系列的区别:
Q: ESP-12S,ESP-12F,ESP-12E这三款模块有什么区别?
A: ESP-12E使用的PCB板层为两层,ESP-12F使用的PCB板层为四层,使用上更加稳定,ESP-12S在ESP-12F 的基础上将IO0,IO15,RST,EN引脚进行了内部上下拉处理,接线上只需要接四根线就可以正常使用(为了减少接线,飘易一般建议大家直接选择12S这款)
Q: ESP-12S与ESP-12F和ESP-07S他们三者之间可以直接替换吗 ?AT指令也一致是吗?
A: 他们三者关键引脚兼容,AT指令是一致的,基本可以替换
Q: ESP-12S的传输距离是多少?
A: 40~50米,这个是参考距离,实际要看您的使用环境
Q: ESP-12S是否支持AT指令控制IO,还有读取ADC?
A: ESP-12S支持AT指令控制IO和读取ADC
Q: ESP-12S中间的焊盘接地吗?
A: 是的,ESP-12S中间的焊盘是接地的
在和单片机接线中 ,我们只需要连接VCC, GND, TX, RX 四个引脚即可。
接下来,我们需要给12S刷新的固件,刷固件的话,要多接2个线: IO0, RST 两个引脚。
12S的IO0 和 RST 已经默认上拉了。
IO0:
上拉,默认工作模式;
下拉,烧写固件模式(接地);
RST: 需要重启WIFI模组的时候,接一下GND然后再断开,即可重启模组。
烧写固件,我们把IO0引脚接 GND 地。
发送AT指令查看出厂固件的版本号:
AT+GMR AT version:1.2.0.0(Jul 1 2016 20:04:45) SDK version:1.5.4.1(39cb9a32) Ai-Thinker Technology Co. Ltd. Dec 2 2016 14:21:16
AT+RST 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 : DIO SPI Flash Size & Map: 32Mbit(512KB+512KB) jump to run user1 @ 1000
按照飘易的这篇文章:ESP8266烧录固件 烧录乐鑫的最新的1.7.2:ESP8266 NonOS AT Bin V1.7.2 (固件下载地址:https://www.espressif.com/zh-hans/support/download/at)
烧录后出现错误:
ets Jan 8 2013,rst cause:2, boot mode:(3,6) load 0x40100000, len 2592, room 16 tail 0 chksum 0xf3 load 0x3ffe8000, len 764, room 8 tail 4 chksum 0x92 load 0x3ffe82fc, len 676, room 4 tail 0 chksum 0x22 csum 0x22 2nd boot version : 1.7(5d6f877) SPI Speed : 40MHz SPI Mode : DIO SPI Flash Size & Map: 32Mbit(1024KB+1024KB) jump to run user1 @ 1000 mismatch map 5,spi_size_map 6 system param partition error system_partition_table_regist fail
提示系统分区错误,分区表注册失败:
mismatch map 5,spi_size_map 6 system param partition error system_partition_table_regist fail
这个时候,按照官网的配置刷是无法成功的。
1.7.0 1.7.1 1.7.2 都是同样问题,32M FLASH下烧录成功,但是均报错。
74880波特率重启:
ets Jan 8 2013,rst cause:2, boot mode:(3,7) load 0x40100000, len 2592, room 16 tail 0 chksum 0xf3 load 0x3ffe8000, len 764, room 8 tail 4 chksum 0x92 load 0x3ffe82fc, len 676, room 4 tail 0 chksum 0x22 csum 0x22 2nd boot version : 1.7(5d6f877) SPI Speed : 40MHz SPI Mode : QIO SPI Flash Size & Map: 16Mbit(1024KB+1024KB) jump to run user1 @ 1000 V2 Mo cal sector: 507 freq trace enable 0 rf[112] : 00 rf[113] : 00 rf[114] : 01 SDK ver: 3.0.2(824dc80) compiled @ Jan 19 2020 09:41:05 phy ver: 1155_0, pp ver: 10.2
目前,1.7的固件无法使用32M的模式烧写成功,我们要想烧录1.7,需要使用16M的模式烧写,如下 :
注意,16M烧写模式的固件对应的地址和32M的是不同的:
SPI SPEED: 40MHz
SPI MODE: QIO
FLASH SIZE: 16Mbit-C1
执行AT指令:
AT+GMR AT version:1.7.2.0(Jan 19 2020 09:39:04) SDK version:3.0.2(824dc80) compile time:Jan 20 2020 10:09:38 Bin version(Wroom 02):1.7.2 OK AT+RST ets Jan 8 2013,rst cause:2, boot mode:(3,6) load 0x40100000, len 2592, room 16 tail 0 chksum 0xf3 load 0x3ffe8000, len 764, room 8 tail 4 chksum 0x92 load 0x3ffe82fc, len 676, room 4 tail 0 chksum 0x22 csum 0x22 2nd boot version : 1.7(5d6f877) SPI Speed : 40MHz SPI Mode : QIO SPI Flash Size & Map: 16Mbit(1024KB+1024KB) jump to run user1 @ 1000 ready
烧录成功并且AT指令也工作正常了。
但是,ESP8266-12S明明是32M的FLASH,却只能烧录16M的模式,那购买的硬件资源不是浪费了吗,飘易希望能充分利用32M的flash,那么目前可以正常在32M的模式下烧录成功的固件版本是 1.6.2 !
ESP8266 AT Bin V1.6.2 烧录地址:
### Flash size 32Mbit-C1: 1024KB+1024KB boot_v1.2+.bin 0x00000 user1.2048.new.5.bin 0x01000 esp_init_data_default.bin 0x3fc000 (optional) blank.bin 0xfe000 & 0x3fe000
烧录配置:
烧录固件成功后执行AT指令:
AT+GMR AT version:1.6.2.0(Apr 13 2018 11:10:59) SDK version:2.2.1(6ab97e9) compile time:Jun 7 2018 19:34:29 Bin version(Wroom 02):1.6.2 OK AT+RST ets Jan 8 2013,rst cause:2, boot mode:(3,6) load 0x40100000, len 2592, room 16 tail 0 chksum 0xf3 load 0x3ffe8000, len 764, room 8 tail 4 chksum 0x92 load 0x3ffe82fc, len 676, room 4 tail 0 chksum 0x22 csum 0x22 2nd boot version : 1.7(5d6f877) SPI Speed : 40MHz SPI Mode : DIO SPI Flash Size & Map: 32Mbit(1024KB+1024KB) jump to run user1 @ 1000 ready
波特率74880下重启后:
ets Jan 8 2013,rst cause:2, boot mode:(3,6) load 0x40100000, len 2592, room 16 tail 0 chksum 0xf3 load 0x3ffe8000, len 764, room 8 tail 4 chksum 0x92 load 0x3ffe82fc, len 676, room 4 tail 0 chksum 0x22 csum 0x22 2nd boot version : 1.7(5d6f877) SPI Speed : 40MHz SPI Mode : DIO SPI Flash Size & Map: 32Mbit(1024KB+1024KB) jump to run user1 @ 1000 rf cal sector: 1019 freq trace enable 1 rf[112] : 03 rf[113] : 00 rf[114] : 01 w_flash SDK ver: 2.2.1(6ab97e9) compiled @ Jun 7 2018 13:59:14 phy ver: 1136_0, pp ver: 10.2
至此,使用1.6.2固件的情况下,成功烧录32M flash。
完。