美文网首页
基于ESP8266的技术总结(1)

基于ESP8266的技术总结(1)

作者: 再见彻罗基 | 来源:发表于2020-06-23 09:57 被阅读0次

        从买回这款板子到现在大概已经有一个月左右。刚开始看到这块芯片就被它价格便宜、性能强悍所吸引,于是利用业余时间对这块板子小小研究了一番。我将从以下几个方面谈谈这个月我对这块板子的使用:

1)esp8266芯片     2)esp8266开发板    3)环境配置

4)开发小项目    5)补充知识

1 esp8266芯片

      ESP8266/ESP8285 在较小尺寸封装中集成了业界领先的 Tensilica L106 超低功耗 32 位微型 MCU,带有 16 位精简模式,主频支持 80 MHz 和 160 MHz,支持 RTOS,集成 Wi-Fi MAC/ BB/RF/PA/LNA,板载天线。支持标准的 IEEE802.11 b/g/n 协议,完整的 TCP/IP 协议栈。用户可以使用该模块为现有的设备添加联网功能,也可以构建独立的网络控制器。该芯片是高性能无线 SoC,以最低成本提供最大实用性,为 Wi-Fi 功能嵌入其他系统提供可能。

(对于Tensilica公司的MCU,esp8266芯片的官方厂家在知乎上有一篇文章是专门回答这个问题的,链接地址为乐鑫的物联网芯片esp8266使用的MCUTensilica L106到底是什么来头??。简单来说Tensilica是一家设计微处理器架构的公司,目前已经被Cadence公司收购。Tensilica公司的代表MCU是Xtensa处理器,这款处理器是一个可以自由装组、可以弹性扩张,并可以自动合成的处理器核心。而乐鑫公司的代表芯片ESP8266采用的是Tensilica公司的L106核心,拥有5阶流水线。而乐鑫的ESP32芯片则采用的是Tensilica公司的Xtensa 32bit LX6核心,其优势在于CPU强大的性能和低功耗。)

esp系列芯片参数

上图列出了乐鑫公司目前在售的几款esp8266芯片,其芯片特点为:

特点

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 模式下+18 dBm的输出功率

A-MPDU 、 A-MSDU 的聚合和 0.4 s的保护间隔

Wi-Fi @ 2.4 GHz,支持 WPA/WPA2 安全模式

支持AT本地升级及云端OTA升级

支持 STA/AP/STA+AP 工作模式

支持 Smart Config 功能(包括 Android 和 iOS 设备)

HSPI 、UART、I2C、I2S、IR Remote Control、PWM、GPIO

深度睡眠保持电流为 20 uA,关断电流小于 5 uA

2 ms 之内唤醒、连接并传递数据包

待机状态消耗功率小于1.0 mW (DTIM3)

工作温度范围:详情请见具体型号规格书

由此可见这款芯片的功能还是比较强大的。

2 esp8266开发板

        一块esp8266开发板价格大概在十几块,这次我买的是带CH340ttl转usb芯片的开发板。如下图:

esp8266开发板

      在安信可官网上可以下载esp8266的原理图和封装,链接为:ESP8266原理图PCB封装文件。网上有esp8266最小系统的原理图,如下图:

    参考设计手册,不管是芯片的下载模式还是运行模式,EN(CH_PD),RST都需要置高,而GPIO15需要置低。GPIO0和GPIO2的高低电平决定了ESP模组的启动模式。串口通信需要占用TXD和RXD两个引脚。这里选用的是ch340芯片作为ttl转usb通信芯片,也可以采用pl2303芯片作为接口转换芯片。

      在烧写bin程序时需要进入下载模式,即GPIO0置低,而运行模式需要把GPIO0置高。烧录完成需要重启并且rst一下。

3 环境配置

      由于esp8266采用的是Tensilica公司的核心,目前支持esp8266的开发环境并不算多,一般包括:1)AT指令。直接采用串口对芯片发送AT指令或者利用其他单片机给esp8266发送AT指令;2)Arduino IDE。通过配置在原本的编程环境中添加对esp8266开发板的支持,编程语言用c语言,这也是目前网络上相对较多的使用方法。3)刷Node MCU固件,采用Lua语言编程,或者也可以刷其他固件,我这里刷的是micropython固件,编程语法和python基本类似,对一些常用的功能都有很好封装函数。

       烧写工具采用ESP FLASH TOOL,下载地址为ESP FLASH TOOL烧写工具。 由于我这里烧写的micropython固件,我在这里就着重介绍一些micropython。

        MicroPython是 Python 3 语言 的精简高效实现 ,包括Python标准库的一小部分,经过优化可在微控制器和受限环境中运行。MicroPython包含了诸如交互式提示,任意精度整数,关闭,列表解析,生成器,异常处理等高级功能。 足够精简,适合运行在只有256k的代码空间和16k的RAM的芯片上。

        除了实现一系列核心Python库之外,MicroPython还包括访问硬件的“machine”等模块。

        如上是micropython中文网的一段对micropython的介绍。由于最近在使用python作为目前主要的编程语言工具,所以上手microtpython也是十分容易的。下载micropython固件在micropython固件下载。利用esp8266 flash tool进行烧写,SPI  MODE选择DIO,FLASH SIZE选择为32Mbit。烧写前先要对芯片进行擦除,然后点击“START”开始烧写程序,出现FLASH即说明烧写成功。

烧写成功!

相关文章

网友评论

      本文标题:基于ESP8266的技术总结(1)

      本文链接:https://www.haomeiwen.com/subject/qlixtktx.html