【ESP8266 (12F)】硬件参数 以及 固件烧录

本文资料及工具地址:https://github.com/CQUPTLei/ESP8266

  • 一、基本关系
    • 1.1 ESP8266 芯片 和 ESP 12F 模组
    • 1.2 乐鑫科技和安信可
  • 二、ESP 8266开发板
    • 2.1 ESP 12F 产品规格
    • 2.2 ESP8266 开发板
  • 三、固件与固件下载
    • 3.1 什么是固件
    • 3.2 固件和用户程序
    • 3.2 如何下载固件
    • 3.3 测试

一、基本关系

1.1 ESP8266 芯片 和 ESP 12F 模组

ESP8266和ESP-12F是紧密相关的概念:

  1. ESP8266:ESP8266是一款由乐鑫(Espressif Systems)开发的低成本Wi-Fi芯片,它集成了处理器、Wi-Fi模块、存储器和其他外设。ESP8266芯片通过串行接口(如UART或SPI)与其他设备(如微控制器)通信,并提供了与Wi-Fi网络的连接和通信功能。
  2. ESP-12F:ESP-12F是ESP8266系列的一个具体模块型号。它是基于ESP8266芯片设计的模块,包含了ESP8266芯片本身以及附加的外部元件,如天线、电源管理电路和引脚引出等。ESP-12F模块的特点是小巧紧凑,引脚数量较多,可直接焊接在PCB上。

这是ESP8266芯片
【ESP8266 (12F)】硬件参数 以及 固件烧录_第1张图片

这是ESP 12F模组

【ESP8266 (12F)】硬件参数 以及 固件烧录_第2张图片

这是ESP 8266开发板
【ESP8266 (12F)】硬件参数 以及 固件烧录_第3张图片

这样的情况很常见,比如stm32芯片和开发板;w800芯片和neptune开发板等等。

1.2 乐鑫科技和安信可

乐鑫科技:全球领先的 AIoT 解决方案平台

乐鑫科技(股票代码:688018)是一家全球化的无晶圆厂半导体公司,成立于 2008年,在中国、捷克、印度、新加坡和巴西均设有办公地,团队来自约 30 个国家和地区。乐鑫多年来深耕 AIoT 领域软硬件产品的研发与设计,专注于研发高集成、低功耗、性能卓越、安全稳定、高性价比的无线通信 SoC,现已发布 ESP8266、ESP32、ESP32-S、ESP32-C 和 ESP32-H系列芯片、模组和开发板, 成为物联网应用的理想选择。我们致力于提供安全、稳定、节能的 AIoT 解决方案。同时,我们坚持技术开源,助力开发者们用乐鑫的方案开发智能产品,打造万物互联的智能世界。

2019 年 7 月,乐鑫科技在上海证券交易所科创板挂牌上市。

公司官网:https://www.espressif.com/zh-hans,可以去这里下载芯片的资料,固件,IDE等资源。

安信可科技:

深圳市安信可科技有限公司成立于2012年,是专业的物联网无线通讯模组的供应商。为全球物联网终端提供包括WiFi、蓝牙、LoRa、离线语音、UWB、NB-IoT、2.4G、GPS、4G通讯模组及物联网无线连接解决方案的一站式服务,产品主要配套于物联网应用,协同打造智慧城市、智能家居、智能穿戴、智能安防、智慧养殖等行业终端。安信可服务于物联网,专注无线连接领域,致力于让无线联网更简单。

高性价比智能联网模块,内置MCU,友好的二次开发接口;高性能、高可靠性、高可扩展性的物联网云,可快速接入第三方智能云平台;可直接使用标准APP,开发0投入

多条标准化产线,助力快速打样,快速验证,快速出货;通过 ISO9001 国际质量体系认证,使时效和品质达到空前的平衡

DOCS资料库、论坛、邮件等多平台提供技术服务,完整的API接口,多样的SDK包,极大缩短集成时间,助力产品批量生产、迅速落地
基于安信可物联网平台服务开放产品丰富,合作形式多样,集成服务更多,性价比更高。

本文使用的ESP 12F模组即该公司研发。

官网:https://www.ai-thinker.com/product/overview,在这里可以下载ESP12F的资料,固件等。这里的AT固件可以连接安信可的云服务、腾讯云等,有多种选择。

二、ESP 8266开发板

我使用的是开发板,而不是单独的模组,开发板是在ESP 12F模组的基础上添加了一些外围电路,把引脚印出来,以及USB接口等。其核心还是ESP12F模组。所以资料看ESP 12F的就好了。

开发板大概像下图这样,当然具体的设计每家厂商会有一些区别。你也可以自己设计板子。

【ESP8266 (12F)】硬件参数 以及 固件烧录_第4张图片

先来看看ESP 12F模组参数。

2.1 ESP 12F 产品规格

安信可官网提供的都有。

ESP-12F 是由安信可科技开发的 Wi-Fi 模块,该模块核心处理器ESP8266 在较小尺寸封装中集成了业界领先的 Tensilica L106 超低功耗 32 位微型MCU,带有16位精简模式,主频支持 80 MHz 和 160 MHz,支持 RTOS,集成Wi-Fi MAC/ BB/RF/PA/LNA

ESP-12F Wi-Fi 模块支持标准的 IEEE802.11 b/g/n 协议,完整的TCP/IP 协议栈。用户可以使用该模块为现有的设备添加联网功能,也可以构建独立的网络控制器。ESP8266 是高性能无线 SoC,以最低成本提供最大实用性,为Wi-Fi 功能嵌入其他系统提供无限可能。

【ESP8266 (12F)】硬件参数 以及 固件烧录_第5张图片
模组的接口不少,既可以自己编程,使用该模组作为主控芯片;也可以与其他MCU搭配,常见的是ESP 12F为stm32提供联网功能。

特性:
 完整的 802.11b/g/n Wi-Fi SoC 模块
 内置 Tensilica L106 超低功耗 32 位微型 MCU,主频支持80 MHz 和160 MHz,支持 RTOS
 内置 1 路 10 bit 高精度 ADC
 支持 UART/GPIO/ADC/PWM/SPI/I2C 接口
 采用 SMD-22 封装
 集成 Wi-Fi MAC/ BB/RF/PA/LNA
 支持多种休眠模式,深度睡眠电流低至 20uA
 串口速率最高可达 4Mbps
 内嵌 Lwip 协议栈
 支持 STA/AP/STA+AP 工作模式
 支持安卓、IOS 的 Smart Config(APP)/AirKiss(微信)一键配网 支持串口本地升级和远程固件升级(FOTA)
 通用 AT 指令可快速上手
 支持二次开发,集成了 Windows、Linux 开发环境

参数:
【ESP8266 (12F)】硬件参数 以及 固件烧录_第6张图片
Flash是32M哦。

2.2 ESP8266 开发板

样子都差不多,引脚都表明了的,引脚的复用前面那张图已经标明了。

不一样的可能就是USB附近的那个芯片了,有的是ch340的有的是cp2102或者其他,连接电脑的时候下载对应的驱动就行了。

【ESP8266 (12F)】硬件参数 以及 固件烧录_第7张图片

三、固件与固件下载

3.1 什么是固件

固件(Firmware)是指嵌入式系统中的一种软件,它是安装在硬件设备上的一组指令和数据,用于控制设备的操作和功能。固件位于硬件和操作系统之间,负责管理硬件设备的低级操作,例如启动、初始化和控制硬件功能。

与传统软件不同,固件是直接存储在硬件设备的非易失性存储器中,例如闪存或只读存储器(ROM)。它通常以二进制形式存储,并由硬件设备的制造商预先安装或通过固件更新进行更新。

固件的主要目的是为硬件设备提供基本的操作和功能它可以实现设备的启动和关机过程、处理输入和输出、管理存储器、控制外围设备等。例如,固件可用于控制打印机的打印过程、路由器的网络连接、智能手机的硬件功能等。

固件还可以包含操作系统的一部分,称为嵌入式操作系统。这种情况下,固件不仅负责硬件的控制,还提供了一些高级功能和服务,例如文件系统、网络协议栈、驱动程序等。

由于固件直接与硬件交互,因此对设备的性能和功能有着重要的影响。固件更新是常见的做法,用于改进设备的性能、修复错误、增加新功能或提供安全性补丁。

ESP8266芯片具有自己的固件,被称为ESP8266固件或NodeMCU固件。

NodeMCU固件是一种开源固件,基于Lua脚本语言,特别设计用于ESP8266芯片。它提供了一套易于使用的功能和API,使开发者能够快速开发物联网应用程序。

NodeMCU固件提供了一系列的功能模块和库,包括Wi-Fi连接管理、网络协议支持(例如HTTP、MQTT等)、GPIO控制、PWM输出、ADC采集、文件系统访问等。它还支持通过串口进行编程和调试,并提供了命令行交互界面。

使用NodeMCU固件,开发者可以使用简单的Lua脚本语言来编写应用程序,而无需深入了解底层的Wi-Fi和网络协议。这使得ESP8266芯片的开发变得更加容易和快速。

除了NodeMCU固件,ESP8266芯片还可以使用其他固件,例如官方提供的Espressif Systems的AT固件,或者第三方开发者基于ESP8266芯片开发的其他固件。这些固件提供了不同的功能和编程接口,以满足不同的开发需求。


ESP8266的存储系统是32M的 Flash + 80KB的SRAM。(可以理解为电脑的SSD和内存条)

闪存通常分为以下几个部分:

  1. Bootloader(引导加载程序):引导加载程序是在芯片上电时首先执行的代码,它负责初始化芯片、加载固件和跳转到固件的执行点。这个是你无法修改或者擦除的。
  2. Firmware(固件):固件是主要的应用程序代码,它包含了设备的功能和逻辑。固件部分占据了闪存的大部分空间。这是我们可以修改的。
  3. File System(文件系统):ESP8266芯片的闪存中的一部分可以用于文件系统,用于存储应用程序的配置文件、网页文件、数据文件等。通常采用SPIFFS(SPI Flash File System)作为文件系统。
  4. OTA(Over-The-Air)固件区域:这个区域用于存储通过OTA方式进行固件更新所需的数据。

ESP8266的内存包括32 KiB指令RAM,32 KiB指令缓存RAM,80 KiB用户数据RAM(存储程序代码、变量、堆栈和其他运行时数据)和16 KiB ETS系统数据RAM

3.2 固件和用户程序

固件与底层硬件打交道如果要字节编写固件,就需要了解ESP8266 芯片的寄存器等信息,通常是一件麻烦的事情。所以我们通常使用厂商开发好的固件,直接用,或者基于固件编写上层应用。

固件也是一种程序,开机就运行,通过编写不同的固件,他也能提供很多不同功能。

通常使用AT指令来运行固件中设计好的各种功能,比如链接一个WiFi,固件为上层应用提供了友好的接口。我们可以使用Ardunio IDE来进行上层应用的开发,在我们的应用中,可以通过AT指令使用固件中开发好的功能。

我们的程序下载到ESP8266上并不会修改固件内容,就像你给电脑安装一个软件一样,并不会修改系统功能。

通常,也可以使用其他MCU连接ESP8266,通过发送AT指令和接收回复来进行编程。比如使用STM32与ESP8266进行串口通信,实现某些功能。

3.2 如何下载固件

材料:

  • 固件文件,去安信可或者乐鑫,或者其他地方下载即可;
  • ESP8266 开发板或者模组;
  • 固件下载软件;
  • 数据线或者杜邦线。
  • 默认波特率:115200

固件自己去官网下载即可,可能会更新的。

比如我下载的是安信可提供的MQTT透传固件。
【ESP8266 (12F)】硬件参数 以及 固件烧录_第8张图片

引脚连接:
【ESP8266 (12F)】硬件参数 以及 固件烧录_第9张图片
UART 0已经与开发板上的USB相连了,可以直接使用USB连接电脑,也可以使用杜邦线连接UART的引脚,使用串口转USB模块连接电脑,其实是一回事。(记得用数据线,而不是劣质的电源线)

下载固件:

(1)打开Flash下载工具:选择 Developer Mode

【ESP8266 (12F)】硬件参数 以及 固件烧录_第10张图片
(2)选择你刚刚下载的固件,设置地址为0x0,选择com口,其他的参考下图。点击start即可。

【ESP8266 (12F)】硬件参数 以及 固件烧录_第11张图片
有的固件有多个bin文件,你需要根据他的配置文件设置:
【ESP8266 (12F)】硬件参数 以及 固件烧录_第12张图片
可以参考我提供的资料的:ESP_AT指令指南操作。

3.3 测试

使用串口调试助手测试,可以使用XCOM。

默认的数据位设置为8位(8 data bits),停止位设置为1位(1 stop bit),校验位设置为无校验位(no parity),波特率115200。

【ESP8266 (12F)】硬件参数 以及 固件烧录_第13张图片

如图,初始化会输出一些乱码字符。

一些测试:

【ESP8266 (12F)】硬件参数 以及 固件烧录_第14张图片



~

你可能感兴趣的:(Embedded,Systems,单片机,物联网,嵌入式硬件)