官方链接:http://espressif.com/zh-hans/support/explore/get-started/esp8266/getting-started-guide
1. 概述
1.1. 流程概览
SDK 的使用流程如图 1-1 所示。
图 1-1 流程概览
1.2. ESP8266 HDK
ESP8266 HDK (Hardware Development Kits) 包括芯片 ESP8266EX、模组 ESP-WROOM-02 和开发板 ESP-LAUNCHER等。您可以使用乐鑫官方的 ESP-WROOM-02 或 ESP-LAUNCHER 下载编译好的固件。
说明:
- 如要使用其他集成 ESP8266EX 的开发板或者模组,请使用相应厂商提供的开发固件。
- 如需购买 ESP-WROOM-02 或 ESP-LAUNCHER,请访问乐鑫网上商店:https://espressif.taobao.com,
- 关于更多硬件信息,请登录:
1.3. ESP8266 SDK
ESP8266 SDK (Software Development Kits) 是乐鑫为开发者提供的 IOT 应用开发平台,包括基础平台以及上层应用开发示例,如智能灯、智能开关等。
SDK 的基础平台按照是否基于操作系统可分为: Non-OS 和 RTOS 两种版本。
1.3.1. Non-OS SDK
Non-OS SDK 是不基于操作系统的 SDK,提供 IOT_Demo 和 AT 的编译。Non-OS SDK 主要使用定时器和回调函数的方式实现各个功能事件的嵌套,达到特定条件下触发特定功能函数的目的。Non-OS SDK 使用 espconn 接口实现网络操作,用户需要按照 espconn 接口的使用规则进行软件开发。
1.3.2. RTOS SDK
RTOS SDK 基于 FreeRTOS,在 Github 上开源。
- RTOS 版本 SDK 使用 FreeRTOS 系统,引入 OS 多任务处理的机制,用户可以使用 FreeRTOS 的标准接口实现资源管理、循环操作、任务内延时、任务间信息传递和同步等面向任务流程的设计方式。具体接口使用方法参考 FreeRTOS 官方网站的使用说明或者 USING THE FreeRTOS REAL TIME KERNEL--A Practical Guide 介绍。
- RTOS 版本 SDK 的网络操作接口是标准 lwIP API,同时提供了 BSD Socket API 接口的封装实现,用户可以直接按照 Socket API 的使用方式来开发软件应用,也可以直接编译运行其他平台的标准 Socket 应用,有效降低平台切换的学习成本。
- RTOS 版本 SDK 引入了 cJSON 库,使用该库函数可以更加方便的实现对 JSON 数据包的解析。
- RTOS 版本兼容 Non-OS SDK 中的 Wi-Fi 接口、Smart Config 接口、Sniffer 相关接口、系统接口、定时器接口、FOTA 接口和外围驱动接口,不支持 AT 实现。
1.4. ESP8266 FW
ESP8266 FW (Firmware) 是一些可直接下载到 ESP8266 HDK 中的 BIN 文件,您可以选择下载 FOTA (Firmware Over-The-Air 支持云端升级) 和 Non-FOTA (不支持云端升级) 的 BIN 文件,具体如表 1-1 所示。
表 1-1. ESP8266 FW
文件列表 | 是否必选 | 说明 | Non-FOTA | FOTA |
master_device_key.bin | 可选 | 用户在 Espressif Cloud 申请,依此享受乐鑫云端服务。 | ![]() |
![]() |
esp_init_data_default.bin | 必选 | 初始化射频参数,在 SDK 根目录中提供。 | ![]() |
![]() |
blank.bin | 必选 | 初始化射频参数,在 SDK 根目录中提供。 | ![]() |
![]() |
eagle.flash.bin | 必选 | 主程序,编译代码生成。 | ![]() |
![]() |
eagle.irom0text.bin | 必选 | 主程序,编译代码生成。 | ![]() |
![]() |
user1.bin | 初次使用必选 | 主程序,编译代码生成。 | ![]() |
![]() |
user2.bin | 升级时使用 | 主程序,编译代码生成。 | ![]() |
![]() |
说明:
- 关于 SDK 的内容介绍,请参考“第 3 章软件准备”。
- 关于 SDK 的编译,请参考“第 5 章编译 SDK”。
- 关于 BIN 文件在 Flash 中的地址,请参考“第 4 章 Flash 布局”。
1.5. ESP8266 工具集
1.5.1. 编译器
编译 ESP8266 SDK 需要使用 Linux 操作系统,若您使用 Windows 操作系统,建议您使用 VirtualBox 作为 ESP8266 虚拟机。为了简化您的编译操作,乐鑫已将编译 SDK 所需要的工具安装到虚拟机中。您只需安装虚拟机,并导入 ESP8266 编译器 (OVA 镜像文件) 即可直接编译 ESP8266 SDK。
1.5.2. 固件下载工具
FLASH DOWNLOAD TOOL 工具是由乐鑫官方开发的固件下载工具,用户可根据实际的编译方式和 Flash 的容量,将多个 BIN 文件一键下载到 ESP8266 母板(开发板或者模组)的 SPI Flash 中。
1.5.3. 串口调试工具
串口调试工具可以通过标准 RS-232 端口直接与 ESP8266 建立通信。对于不带有物理串口的 PC ,可以使用 USB 转串口模块来虚拟出一个串口设备。
用户可以直接在串口终端输入命令和实时查看相关打印信息。
说明:
建议使用 CoolTerm (Windows 和 Mac 系统) 和 Minicom (Linux 系统) 作为串口调试工具。
2. 硬件准备
您可以选择使用如表 2-1 所示的两种方案中的任意一种。
表 2-1. 硬件准备
开发板方案 |
|
模组方案 |
|
或者 |
|
![]() |
![]() |
预装 Windows 系统的 PC 机
注意:
ESP8266 Wi-Fi 模块需要保证 3.3 V 电源和最少 500 mA 的电流。
2.1. 开发板方案
1. 用 USB 数据线将 PC 机与 ESP-LAUNCHER 的 USB-UART 接口相连。
2. 将开发板置为下载模式。
步骤 | 结果 |
ESP-LAUNCHER 上的 J82 跳针需要用跳线帽短接,否则无法下载。 |
![]() |
3. 将 USB 转 TTL 串口模块与 PC 机连接。
说明:
请安装正确的、可被 PC 识别的 USB 转 TTL 串口模块驱动。
4. 将电源开关 (Power Switch) 拨到内侧给开发板上电。
5. 将芯片开关 (Chip Switch) 拨到外侧给芯片上电。
6. 通过下载工具 (ESP8266 FLASH DOWNLOAD TOOL) 将固件下载到 Flash 中。
说明:
关于如何下载固件,请参考“第 4 章 Flash 布局”和“第 6 章 下载固件”。
7. 下载完毕后将 GPIO0 开关 (GPIO0 Control) 拨到外侧将 ESP-LAUNCHER 开发板置为工作模式。
8. 使用芯片开关 (Chip Switch) 给芯片重新上电,芯片初始化时会从 Flash 中读取程序运行。
更多 ESP-LAUNCHER 的硬件信息,请参考《ESP8266 硬件描述》。
2.2. 模组方案
1. 将 ESP-WROOM-02 的如表 2-2 所示的管脚引出。
表 2-2. ESP-WROOM-02 的管脚
管脚名称 | 管脚状态 | 实物图 |
EN | 上拉 | ![]() |
3V3 | 3.3 V 供电(VDD) | |
IO15 | 下拉 | |
IO0 | UART 下载模式:下拉; FLASH 启动模式:悬空/上拉 |
|
GND | GND | |
RXD | UART 下载的接收端 | |
TXD | UART 下载的发送端,悬空/上拉 |
2. 按照图 2-1 用杜邦线将 ESP-WROOM-02 和 USB 转 TTL 串口模块连接。
图 2-1. ESP-WROOM-02 下载模式
3. 将 USB 转 TTL 串口模块与 PC 机连接。
4. 通过下载软件 (ESP8266 FLASH DOWNLOAD TOOL) 将固件下载到 Flash 中。
说明:
关于如何下载固件,请参考“第 4 章 Flash 布局”和“第 6 章 下载固件”。
5. 下载完毕后将 ESP-WROOM-02 切换为工作模式。
将 IO0 悬空或者上拉。
6. 重新上电,芯片初始化时会从 Flash 中读取程序运行。
说明:
IO0 管脚为内置高电平,更多 ESP-WROOM-02 的硬件信息,请参考《ESP8266 硬件描述》和《ESP-WROOM-02 技术规格表》。
3. 软件准备
3.1. Non-OS SDK
您可以在如下路径下载 Non-OS SDK(包括应用示例)。
- 官网
http://www.espressif.com/en/support/download/sdks-demos
Non-OS SDK 软件包中的内容如图 3-1 所示。
图 3-1. Non-OS SDK 内容
- app: 用户工作主目录,用户级代码及头文件均放在此目录下编译。
- bin: 编译生成的 BIN 文件,可直接下载到 Flash 中。
- documents: SDK 相关的文档或链接。
- driver_lib: 外设驱动的库文件,如:UART、I2C 和 GPIO 等。
- examples: 可供用户二次开发的示例代码,如 IoT Demo 等。
- include: SDK 自带头文件,包含了用户可使用的相关 API 函数及其他宏定义,用户无需修改。
- ld: 链接时所需的脚本文件,若无特殊需求,用户无需修改。
- lib: SDK 提供的库文件。
- tools: 编译 BIN 文件所需的工具,用户无需修改。
3.2. RTOS SDK
您可以在如下路径下载 SDK 及其应用示例 (ESP8266_IOT_PLATFORM) 。
- RTOS SDK
https://github.com/espressif/ESP8266_RTOS_SDK
- ESP8266_IOT_PLATFORM
https://github.com/espressif/ESP8266_IOT_PLATFORM
RTOS SDK 软件包中的内容如图 3-2 所示。
图 3-2. RTOS SDK 内容
- bin: 编译生成的 BIN 文件,可直接下载到 Flash 中。
- documents: SDK 相关的文档或链接。
- examples: 可供用户二次开发的示例代码。
- examples/driver_lib: 外设驱动的库文件,如:UART、I2C 和 GPIO 等。
- examples/project_template: 用户工程目录的模版。
说明:
您可以将 project_template 文件夹复制到任意目录,如:~/workspace。
- examples/smart_config: Smart Config 相关的代码示例。
- examples/spiffs_test: SPIFFS 相关的代码示例。
- examples/websocket_demo: WebSocket 相关的代码示例。
- extra_include: Xtensa 提供的相关头文件。
- include: SDK 自带头文件,包含了用户可使用的相关 API 函数及其他宏定义,用户无需修改。
- ld: 链接时所需的脚本文件,如无特殊需求,用户无需修改。
- lib: SDK 提供的库文件。
- third_party: 第三方开源的库文件。
- tools: 编译 BIN 文件所需的工具,用户无需修改。
3.3. ESP8266 工具集
3.3.1. 编译器
请在如下链接中下载 VirtualBox。
https://www.virtualbox.org/wiki/Downloads
说明:
请根据您的主机配置选择合适的 VirtualBox 版本。
请在如下链接中下载编译器 ESP8266_lubuntu_20141021.ova at:
百度: https://pan.baidu.com/s/1dEOw8bZ
下载密码: v81b
Google: https://drive.google.com/folderview? id=0B5bwBE9A5dBXaExvdDExVFNrUXM&usp=sharing
步骤 | 结果 |
1. 进入 Windows 系统安装虚拟机。 | |
VirtualBox 有不同的版本,本手册以Windows V.5.0.16 版本为例。
ESP8266 虚拟机会占用较大孔径,请预留足够的空间。 |
![]() |
2. 导入虚拟机镜像文件。 | |
在主菜单中选择 File > Import Appliance,系统显示如右图
|
![]() |
3. 设置虚拟机共享文件夹。 | |
|
![]() |
4. 运行虚拟机。 | |
|
![]() |
|
![]() |
3.3.2. 固件下载工具
请在如下链接下载 FLASH DOWNLOAD TOOL。
4. Flash 布局
本章分别介绍 Non-FOTA 与 FOTA 固件在不同容量 Flash 中的布局。您可以根据实际情况修改。
Flash 布局如图 4-1 所示。
Non-FOTA
FOTA
图 4-1. Flash 布局图
说明:
关于 ESP8266 的固件请参考 ”1.3 节 ESP8266 FW“。
- 系统程序: 用于存放运行系统必要的固件。
- 用户数据: 当系统数据未占满整个 Flash 空间时,空闲区域均可用于存放用户数据。
- 用户参数: 地址由用户自定义,IOT_Demo 中设置为 0x3C000 开始的 4 个扇区,用户可以设置为任意未占用的地址。
- master_device_key.bin: 下载地址在IOT_Demo 中设置为用户参数的第 3 个扇区。
- 系统参数: 固定为 Flash 的最后 4 个扇区。
- blank.bin: 下载地址为 Flash 的倒数第 2 个扇区。
- esp_init_data_default.bin: 下载地址为 Flash 的倒数第 4 个扇区。
- Boot 信息: 位于 FOTA 固件的分区 1,存放 FOTA 升级相关信息。
- 预留:位于 FOTA 固件的分区 2,与分区 1 Boot 信息区对应的预留区域。
说明:
- Flash 中每扇区为 4 kB。
- 具体下载地址请参考“4.1.2 节 下载地址”和“4.2.2 节 下载地址”。
4.1. Non-FOTA
4.1.1.布局说明
对于不同容量的 Flash,eagle.irom0text.bin 的存储上限值均为 200 kB。您可以通过修改ESP8266_NONOS_SDK/ld/eagle.app.v6.ld 文件来改变 eagle.irom0text.bin 的上限值。
即修改文件中 irom0_0_seg 参数的 len 字段,如图 4-2 中红色标示。
不同版本 SDK 中 irom0.text 文件的地址也不同。用户必须查阅 eagle.app.v6.ld 文件,确保将eagle.irom0.text.bin 下载到正确的地址。图 4-2 中蓝色标示即为 eagle.irom0.text.bin 的地址。
图 4-2. irom0.text 的地址
不同的 Flash 容量,len 的值和修改后 eagle.irom0text.bin 的存储上限值如表 4-1 所示。
表 4-1. Non-FOTA Flash 布局(单位:kB)
Flash 容量 | eagle.flash.bin | eagle.irom0text.bin | 用户数据 | len | 用户/系统参数 |
512 | ≤ 64 | ≤ 240 | ≥ 176 | 0x3C000 | 16 |
1024 | ≤ 64 | ≤ 752 | ≥ 176 | 0xBC000 | 16 |
2048 | ≤ 64 | ≤ 768 | ≥ 176 | 0xC0000 | 16 |
4096 | ≤ 64 | ≤ 768 | ≥ 176 | 0xC0000 | 16 |
说明:
ESP8266 目前系统程序区最大支持 1024 kB。
4.1.2. 下载地址
Non-FOTA 固件的下载地址如表 4-2 所示。
表 4-2. Non-FOTA 的下载地址(单位:kB)
BIN | 各个 Flash 容量对应的下载地址 | |||
512 | 1024 | 2048 | 4096 | |
master_device_key.bin | 0x3E000 | |||
esp_init_data_default.bin | 0x7C000 | 0xFC000 | 0x1FC000 | 0x3FC000 |
blank.bin | 0x7E000 | 0xFE000 | 0x1FE000 | 0x3FE000 |
eagle.flash.bin | 0x00000 | |||
eagle.irom0text.bin | 0x10000 |
4.2. FOTA
4.2.1. 布局说明
FOTA 的固件布局如表 4-3 所示。
表 4-3. FOTA Flash 布局(单位:kB)
Flash 容量 | boot | user1.bin | user2.bin | 用户/系统参数 | 用户数据 |
512 | 4 | ≤ 236 | ≤ 236 | 16 | ≥ 0 |
1024 | 4 | ≤ 492 | ≤ 492 | 16 | ≥ 0 |
2048 (分区 1 = 512) | 4 | ≤ 492 | ≤ 492 | 16 | ≥ 1024 |
2048 (分区 1 = 1024) | 4 | ≤ 1004 | ≤ 1004 | 16 | ≥ 0 |
4096 (分区 1 = 512) | 4 | ≤ 492 | ≤ 492 | 16 | ≥ 3072 |
4096 (分区 1 = 1024) | 4 | ≤ 1004 | ≤ 1004 | 16 | ≥ 2048 |
4.2.2. 下载地址
FOTA 固件的下载地址如表 4-4 所示。
表 4-4. FOTA 的下载地址(单位:kB)
BIN 文件 | 各个 Flash 容量对应的下载地址 | |||||
512 | 1024 | 2048 | 4096 | |||
512+512 | 1024+1024 | 512+512 | 1024+1024< | |||
master_device_key.bin | 0x3E000 | 0x7E000 | 0x7E000 | 0xFE000 | 0x7E000 | 0xFE000 |
esp_init_data_default.bin | 0x7C000 | 0xFC000 | 0x1FC000 | 0x3FC000 | ||
blank.bin | 0x7E000 | 0xFE000 | 0x1FE000 | 0x3FE000 | ||
boot.bin | 0x00000 |
|||||
user1.bin | 0x01000 | |||||
user2.bin | 0x41000 | 0x81000 | 0x81000 | 0x101000 | 0x81000 | 0x101000 |
说明:
- 支持 FOTA 的固件无需下载 user2.bin,您可以从云端服务器升级固件。
- 详细的 FOTA 功能说明,请参考文档《ESP8266 Non-OS SDK 升级指南》。
5.编译 SDK
说明:
- 本章使用 ESP8266_NONOS_SDK/examples/IoT_Demo 中的内容为例介绍如何编译 SDK。
- IoT_Demo 提供 Smart Light、Smart Plug 和 Sensor 三种设备,在examples/IoT_Demo/include/user_config.h 中定义,请每次只使能一种设备调试,默认为 Smart Light。
5.1. 编译准备
5.1.1. 修改 SDK 文件
说明:
若选择下载 FOTA 固件,则需要修改。
1. 进入 Windows 系统。
2. 根据不同的Flash 布局修改 ESP8266_NONOS_SDK/examples/IoT_Demo/include 中的文件。
- user_light.h 和 user_plug.h 需要修改 #define PRIV_PARAM_START_SEC。.
- user_esp_platform.h 需要修改 #define ESP_PARAM_START_SEC。.
修改的值如表 5-1 所示。
表 5-1. 修改 include 文件中的字段(单位:kB)
默认值 (512) |
修改后的值 | |||||
512 | 1024 | 2048 (512+512) |
2048 (1024+1024) |
4096 (512+512) |
4096 (1024+1024) |
|
0x3C | - | 0x7C | 0x7C | 0xFC | 0x7C | 0xFC |
0x3D | - | 0x7D | 0x7D | 0xFD | 0x7d | 0xFD |
说明:
若 Flash 容量为 512 kB,则不需要修改。
5.1.2. 加载 SDK 文件
1. 进入 Linux 系统。
2. 运行虚拟机桌面上的终端工具 LXTerminal。
3. 复制待编译文件至虚拟机共享目录。
步骤 | 结果 |
|
![]() |
4. 加在共享目录。
步骤 | 结果 |
|
![]() |
注意:
若您使用 RTOS SDK,请继续执行步骤 6; 若您使用 Non-OS SDK,请跳过步骤 6。
5. 设置路径变量,指向 SKD 和 BIN 文件。
1
|
export SDK_PATH=~/share/ESP8266_RTOS_SDK<br>export BIN_PATH=~/share/ESP8266_RTOS_SDK/bin
|
说明:
您可以将其添加在 .bashrx 文件中,否则每次重启编译器都需要重复步骤 6。
5.2. 开始编译
5.2.1. ESP8266_NONOS_SDK_v0.9.5 及之后版本
1. 在终端切换到 /share/ESP8266_NONOS_SDK/app 目录。
1
2
|
cd /home/esp8266/Share/ESP8266_NONOS_SDK/app
./gen_misc.sh
|
系统显示如下提示信息。
1
2
|
gen_misc.sh version 20150511
Please follow below steps(1-5) to generate specific bin(s):
|
2. 如图 5-1 所示,按系统提示根据实际情况选择相应选项。
图 5-1. 编译 SDK
说明:
- 颜色标示部分为示例选项,您可以按照实际需求选择。
- 关于 FOTA 和 Non-FOTA 的 BIN 文件,请参考 “1.4 节 ESP8266 FW”。
- 步骤 5 中的选项 5 和 6 仅 sdk_v1.1.0 + boot 1.4 + flash download tool_v1.2 及之后的版本支持。
- 编译生成 user1.bin 后,先运行 make clean 清除上次编译生成的临时文件后,再编译生成 user2.bin。
- 关于步骤 5 中的 Flash 布局,请参考“第 4 章 Flash 布局”。
3. 编译成功后系统显示生成的 BIN 文件及其下载到 Flash 中的地址,如下所示。
1
2
3
4
|
Generate user1.2048.
new
.3.bin successfully in folder bin/upgrade. boot.bin------------>0x00000
user1.2048.
new
.3.bin--->0xSupport boot_v1.2 and +
01000
!!!
|
说明:
您可以进入 /home/esp8266/Share/ESP8266_NONOS_SDK/bin 目录检查生成的 BIN 文件。
5.2.2. ESP8266_NONOS_SDK_v0.9.4 及之前版本
对于 ESP8266_NONOS_SDK_v0.9.4 及之前版本软件,FOTA 的编译步骤如下。
1. 执行 ./gen_misc_plus.sh 1,在 /ESP8266_NONOS_SDK/bin/upgrade 路径下生成 user1.bin。
2. 执行 make clean 清除之前的编译信息。
3. 执行./gen_misc_plus.sh 2,在 /ESP8266_NONOS_SDK/bin/upgrade 路径下生成 user2.bin。
说明:
- 详细的 FOTA 功能说明,请参考文档《ESP8266 Non-OS SDK 升级指南》。
- ESP8266_NONOS_SDK_v0.7 及以前的版本为 Non-FOTA。
6. 下载固件
6.1. 下载步骤
1. 进入 Windows 系统。
2. 双击 ESP_DOWNLOAD_TOOL.exe 打开 Flash 工具。
图 6-1. ESP8266 DOWNLOAD TOOL - SPIDownload
SPIDownload | 适用于 SPI Flash 的下载。 |
HSPIDownload | 适用于 HSPI Flash 的下载。 |
RFConfig | 射频初始化设置。 |
MutiDownload | 适用于多个母板的下载。 |
3. 在 Download Path Config 区域内双击 选择需要下载的 BIN 文件,在 ADDR 内设置相应的下载地址。
4.配置 SPIDownload 相关选项。
说明:
下载文件与地址根据 SPI Flash 的容量及实际的使用需求而不同,具体信息可参考“第 4 章Flash 布局”。
表 6-1. SPIDownload 配置说明
配置项 | 配置说明 |
SPI FLASH CONFIG | |
CrystalFreq | 根据实际选用的晶振型号选择晶振频率。 |
CombineBin | 将勾选的 BIN 文件合成一个 target.bin,下载地址为 0x0000。 |
Default | 将 SPI Flash 的配置恢复到默认值。 |
SPI SPEED | 选择 SPI Flash 的读写速度,最大值为 80 MHz。 |
SPI MODE | 根据实际使用的 Flash 选择对应的模式。如果 Flash 采用 Dual SPI,选择 DIO 或 DOUT;如果 Flash 采用 Quad SPI,选择 QIO 或 QOUT。 若用户使用 ISSI Flash,请参考“附录-配置 ISSI Flash QIO 模式”。 |
FLASH SIZE | 根据实际编译的配置对应选择的 Flash 大小。 |
SpiAutoSet | 不建议勾选 SpiAutoSet,推荐用户根据实际情况对 Flash 进行手动配置。 用户如果了勾选 SpiAutoSet,下载工具将会按照默认的 Flash map 下载,16 Mbit 和 32 Mbit 的 Flash map 会被设置为 512 Kbyte +512 Kbyte。 |
DoNotChgBin |
|
Download Panel | |
START | 点击 START 开始下载。当下载结束后,左边绿色状态显示 完成。 |
STOP | 点击 STOP 停止下载。 |
MAC Address | 下载成功后,系统会显示 ESP8266 STA 和 ESP8266 AP 的 MAC 地址。 |
COM PORT | 选择 ESP8266 的 COM 端口。 |
BAUDRATE | 选择下载的波特率,默认为 115200。 |
5. 下载完成后,在 ESP-LAUNCHER 开发板上将 GPIO0 Control 拨到外侧,并重新上电,可进入运行模式。
6.2. 查看打印信息
下载固件后,您可以使用串口调试工具查看终端打印信息。
您需要配置串口调试工具的以下选项。
表6-2.串口调试配置
配置项 | 配置说明 |
协议类型 | 串口 |
端口号 | 根据实际连入的设备所在的端口号设置。 |
波特率 | 设备运行时的波特率,与设备晶振有关。
ESP8266 AT 示例默认支持 115200 波特率,用户不可修改。 ESP8266 IOT Demo 及其他示例默认为 74880 波特率,用户可以修改。 |
数据位 | 8 |
校验 | 无 |
流控 | 无 |
6.2.1. ESP8266 IOT Demo
若下载 ESP8266 IOT Demo 固件,在运行模式下,系统显示如下初始化信息,如 SDK 的版本信息等,并在最后显示“finish”字样,代表固件正常运行。
1
2
3
4
5
6
|
SDK version:X.X.X(e67da894) IOT VERSION = v1.0.5t45772(a)
reset reason: 0
PWM version : 00000003
mode : sta(18:fe:34:a4:8c:a3) + softAP(1a:fe:34:a4:8c:a3) add if0
add if1<br>dhcp server start:(ip:192.168.4.1,mask:255.255.255.0,gw:192.168.4.1) bcn 100
finish
|
6.2.2. ESP8266 AT
若下载 ESP8266 AT固件或者使用开发板或者模组中默认的固件,在运行模式下,系统的打印信息末尾显示“Ready”字样。在终端输入指令“AT”,系统显示“OK”,代表固件正常运行。
说明:
因 AT 固件强制设置波特率为 115200,与 ESP8266 默认的波特率 74880 不符,因此系统初始化的信息会显示为乱码,只要最后显示“Ready”字样,均为正常情况。
关于 AT 指令,请参考《ESP8266AT 指令集》。
6.3. 射频初始化设置(可选)
在下载之前,用户可以进入 RF InitConfig 页签修改射频初始化设置,生成的esp_init_data_setting.bin 可代替 esp_init_data_default.bin 下载到 Flash 中。射频初始化设置包括 RF InitConfig 选项设置和 RF InitConfig 数据设置两部分。
图 6-2. ESP8266 DOWNLOAD TOOL - RF InitConfig
6.3.1.RF InitConfig 选项
RF InitConfig 选项如图 6-2 的上半部分,配置说明如表 6-3 所示。
表 6-3. RF InitConfig 选项设置
配置项 | 配置说明 |
TxTargetPowerConfig | 用户无需配置,会根据 LowPowerMode 中的配置项而变化。 |
LowPowerMode | 根据实际情况进行低功耗模式的配置。
LowPowerEn 和 PowerLimtEn 不能同时配置。 |
CrystalFreq | 根据实际选用的晶振型号选择晶振频率。 若在下载时选择了不同的选项,会覆盖该设置。 |
TOUT PinConf | 根据实际情况进行 TOUT 管脚的配置,建议保持默认设置。
|
FreqOffset |
|
RFInt mode | 用户可选择射频的初始化行为:
|
6.3.2. RF InitConfig 参数
RF InitConfig 参数如图 6-2 的下半部分,参数说明如表 6-4 所示。
表 6-4. RF InitConfig 参数设置
配置项 | 配置说明 |
A | 代表 esp_init_data_setting.bin (0~127 字节) 文件中的字节,如 A = 0 代表esp_init_data_setting.bin 文件中的 0 字节。 |
B | 配置项的名称,标示为 Reserved 不能修改。 |
C | 配置项的名称,标示为 Reserved 不能修改。 |
D | 配置项的数据类型。包括无符号数 (unsigned) 和有符号数 (signed)。 |
E | 配置项的十六进制值。 |
注意:
请勿修改标识为 Reserved 的参数。
下面介绍如何修改112 ~114 字节的参数,初始设置如图 6-3 所示。
图 6-3. 112 ~114 字节参数
修改 RF 初始化参数
114 字节用于控制 ESP8266 上电时 RF 的初始化,参数设置如表 6-5 所示。
说明:
ESP8266_NONOS_SDK_V1.5.3 和 ESP8266_RTOS_SDK_V1.3.0 及之后版本支持。
表 6-5. 修改 RF 初始化参数
114 字节默认值为 1。
RF 初始化做 VDD33 和 TX power CAL,耗时约 18 ms,初始电流较小。
配置项 | 配置说明 |
114 字节 = 0 | RF 初始化仅做 VDD33 校准,耗时约 2 ms,初始电流最小。 |
114 字节 = 1 | 114 字节默认值为 1。 RF 初始化做 VDD33 和 TX power CAL,耗时约 18 ms,初始电流较小。 |
114 字节 = 2 | 同“114 字节 = 0”。 |
114 字节 = 3 | RF 初始化进行全部 RF CAL,耗时约 200 ms,初始电流较大。 |
修改频偏
112 字节和 113 字节是与频偏相关的参数,参数设置如表 6-6 所示。
说明:
ESP8266_NONOS_SDK_V1.4.0 和 ESP8266_RTOS_SDK_V1.3.0 及之后版本支持。
表 6-6. 修改频偏参数
配置项 | 配置说明 |
112 字节,默认值为 0。 | |
bit 0 | 拥有 112 字节的最高优先级。
|
bit 1 | 值为 0 表示 bbpll 为 168 M,可修改正或负频偏。 此功能可能影响数字外设的正常工作,不建议使用。 值为 1 表示 bbpll 为 160 M,可修改正频偏。 |
{bit 3,bit 2} | 值为 0 表示内部自测且跟踪修改频偏,初始修改频偏为 0;值为 1 表示强制修改频偏为 113 字节的值,不再跟踪修改频偏;值为 2 表示内部自测且跟踪修改频偏,初始修改频偏为 113 字节的值。 |
113 字节,默认值为 0。 | |
113 字节 | 是强制修改频偏时的频偏数据,或者跟踪修改频偏时的初始频偏数据,数据类型为 sign int8,单位为 8 kHz。 |
6.3.3. 设置举例
112 字节和 113 字节需要根据客户的具体需求设置,举例如下。
1. 只在常温下工作的模组,不需要修改频偏。
- 可设置 112 字节 = 0,113 字节 = 0。
2. 只在常温下工作的模组,不需要内部自测且跟踪修改频偏,但是本身频偏较大,可使用强制修改频偏。
- 假设常温时本身频偏为+160 kHz,可设置112 字节 = 0x07,113 字节 = (256 - 160/8) = 236 = 0xEC。
- 假设常温时本身频偏为-160 kHz,可设置112 字节 = 0x05,113 字节 = 160/8 = 20 = 0x14。但此功能可能影响数字外设的正常工作,必须经过大量的应用测试,不建议使用。
3. 工作温度在 -40 度到 125 度之间变化,类似彩灯的应用,需要内部自测且跟踪修改频偏,但是常温时本身频偏较小,不需要设置初始频偏。
- 设置 112 字节 = 0x03,113 字节 = 0。
4.工作温度在 -40 度到1 25 度之间变化,类似彩灯的应用,需要内部自测且跟踪修改频偏,但是常温时本身频偏较大,需要设置初始频偏。
- 假设常温时本身频偏为 +160 kHz,可设置 112 字节 = 0x0B,113 字节 = (256 - 160/8) = 236 = 0xEC。
- 假设常温时本身频偏为 -160 kHz,可设置 112 字节 = 0x09,113 字节 = 160/8 = 20 = 0x14。但此功能可能影响数字外设的正常工作,必须经过大量的应用测试,不建议使用。
一般建议客户参考上述例三的设置。
设置完成后,点击 GenInitBin 按键,生成esp_init_data_setting.bin。
用户也可以点击 Default 按键恢复默认值,或点击 LoadInitBin 按键,选择导入一个 BIN 文件进行参数配置。
I. 附录 - 配置 ISSI & MXIC Flash QIO 模式
注意:
下载时,务必选择 DIO 或 DOUT 模式,否则会报错,此时无需修改 BIN 文件。
因 ISSI Flash和 MXIC Flash 状态寄存器的特殊性,如需使用 ISSI Flash 和 MXIC Flash 的 QIO 模式,则需要修改 blank.bin 的前 2 个字节,如表 I-I 所示。当 ESP8266 启动时会检查 blank.bin 的前 2 个字节,自动切换为 QIO 模式读 ISSI_FLASH 或 MXIC_FLASH。blank.bin 文件的结构如下。
1
2
3
4
5
6
7
8
9
|
strcut
boot_hdr{
char
//low_bit
user_bin:2;
char
boot_status:1;
char
to_qio:1;
char
reverse:4;
//low bit
char
test_pass_flag:1;
char
test_start_flag:1;
char
enhance_boot_flag:1;<br>}
|
表 I-I. blank.bin 配置项
配置项 | 配置说明 |
不使用二级 boot | 修改 to_qio 为 0。 |
使用二级 boot | 修改 use_bin 为 0,to_qio 为 0。修改 version 为当前 boot 版本。 举例: 如使用二级 boot_v1.5.bin,修改 blank.bin 的前两个字节 FF FF 为 F4 E5。 |