ESP8266
基础知识
ESP8266模块安信可官网
本人使用的NodeMcu相关信息:
-
开源地址,主模块为ESP-12E(与ESP-12F一致,区别为ESP-12E为双层板,ESP-12F四层板,详见安信可的旧选型表),32MBit(25Q32,4MB)
-
NodeMcu官方固件(可以使用lua脚本编程,该固件的参考文档,以及第三方学习笔记(github访问不了可以通过该博客链接))
-
引脚图
CPU、存储和Flash:
更多详细信息请看datasheet
- CPU时钟最高可达16MHz
- 外部晶振在24MHz~52MHz之间
- 内置ROM和SRAM。芯片内无可编程存储器,用户程序必须由外部Flash存储
- 理论上外部Flash最大支持16MB(128Mbit)
- 支持TCP/IP完全遵循802.11 b/g/n WLAN MAC协议和Wi-Fi Direct标准
使用方式:
- AT指令模式:当做从机,响应主机的AT指令来执行对应的命令
- SDK编程模式:乐鑫官网提供的SDK(开源在github上:RTOS_SDK,NONOS_SDK)
- bin:编译生成的BN文件,可直接下载到Fash中。
- documents:SDK相关的文档或链接。
- driver_lib:外设驱动的库文件,如:UART、I2C和GPIO等。
- examples:可供用户二次开发的示例代码
- include:SDK自带头文件,包含了用户可使用的相关API函数及其他宏定义,用户无需修改。
- ld:链接时所需的脚本文件,若无特殊需求,用户无需修改。
- lib:SDK提供的库文件。
- toos:编译B|N文件所需的工具,用户无需修改
参考文档:
- ESP8266 SDK 入门指南
- ESP8266 Non-OS SDK API 参考手册
- 安信可提供的文档资源汇总(有上述两本手册足够了,包含安信可自家的模块规格书、应用文档、AT手册、SDK相关手册)
开发工具:
- 安信可提供的开发工具
- 安装
- 使用
- 烧录
- 相关选项配置可以看
ESP8266 SDK 入门指南
下载固件 章节 - 一般默认为:外部晶振频率26M,SPI速度40M,SPI模式DOUT,FLSH大小32Mbit,不勾选SpiAutoSet、DoNotChgBin
- SpiAutoSet:不建议勾选 SpiAutoSet,推荐⽤户根据实际情况对 Flash 进⾏⼿动配置。⽤户如果了勾选 SpiAutoSet,下载⼯具将会按照默认的 Flash map 下载, 16 Mbit和 32 Mbit 的 Flash map 会被设置为 512 Kbyte + 512 Kbyte
- DoNotChgBin
- 勾选:Flash 的运⾏频率、⽅式和布局会以⽤户编译时的配置选项为准(采用Makefile中的配置项,不采用自己设置的SPI速度、模式等配置)
- 不勾选:Flash 的运⾏频率、⽅式和布局会以下载⼯具最终的配置为准
- 相关选项配置可以看
下载模式:
- GPI00=1、GPI02=1、GPI015=0 => 程序运行模式
- GPI00=0、GPI02=1、GPI015=0 => 串口下载模式
Flash布局信息:
-
详细情况可以看
ESP8266 SDK 入门指南
Flash布局 章节 -
Non-FOTA:
-
⽤户可以通过修改
ESP8266_NONOS_SDK/ld/eagle.app.v6.ld
⽂件来改变eagle.irom0text.bin
的上限值,即修改⽂件中irom0_0_seg
参数的len
字段1
2
3
4
5
6
7MEMORY
{
dport0_0_seg : org = 0x3FF00000, len = 0x10
dram0_0_seg : org = 0x3FFE8000, len = 0x14000
iram1_0_seg : org = 0x40100000, len = 0x8000
irom0_0_seg : org = 0x40210000, len = 0x5C000
}- org的低5位为下载地址(0x10000=64kb),len为长度
-
对于NodeMcu而言(4MB=32Mbit):
- eagle.flash.bin:0x00000(64kb)
- eagle.irom0text.bin:0x10000
- blank.bin:0x3FB000(4kb)
- esp_init_data_default.bin:0x3FC000(默认RF参数)
- blank.bin:0x3FE000
-
-
FOTA:
- RF_CAL 参数:⽤于系统⾃动保存校准后的 RF 参数
- 默认 RF 参数:将 esp_int_data_default.bin 下载⾄该区,⽤于保存默认的参数信息
- 系统参数:⽤于保存系统参数信息
基本功能
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 spaceman!