ESP8266

来自Jack's Lab
(版本间的差异)
跳转到: 导航, 搜索
(市售各种集成模块)
(资源)
 
(未显示1个用户的89个中间版本)
第14行: 第14行:
  
  
ESP8266 的芯片详细特性,参考此页:[[ESP8266 特性]]
+
ESP8266 芯片详细特性,参考此页:[[ESP8266 特性]]
  
 +
ESP8266 芯片体系结构,移步: [[ESP8266 Arch]]
  
=== 总体结构 ===
+
ESP8266 内部有一个完整的 32bit MCU 核心,可用 RAM 在 50KB 左右,主频 80MHz,应该是一个功能不错的 MCU,其体系结构为 Xtensa L106。关于这个体系结构,参考 Xtensa L106 体系结构精要: [[Xtensa L106 Architecture]]
  
ESP8266EX 集成:天线开关,RF balun,功率放大器,低噪放大器,过滤器,电源管理模块,32 位 MCU
+
<br><br>
  
仅需 7 个外围器件,就是一个完整的带 32bit MCU、完整 WiFi 功能的 SoC
+
== 开发板 ==
  
 +
ESP8266 外围只需晶振、电容、电阻等 7 个元器件,就能正常运行。为提供效率,快速、方便地使用,我们还是建议直接使用模块或者开发板
  
ESP8266 结构框图:
 
  
[[文件:Esp8266ex-block.jpg]]
+
=== ESP8266 模块 ===
  
 +
ESP8266 模块,是在 ESP8266 芯片基础上,加上必要的晶振、电容、电阻、SPI Flash、WiFi 天线组成的一个最小 WiFi 系统
  
内部 CPU (MCU) 使用 Tensilica’s L106 钻石系列32位内核处理器,带片上 SRAM
+
市面流行的模块,参考: [[ESP8266 Module]]
  
<br><br>
 
  
=== MCU 结构 ===
+
ESP8266 叠加 1MB flash 版本:ESP8285,更是小到了极致(仅 13 个外围器件):
  
;; Tensilica Xtensa L106 Diamond series (an enhanced version)
+
[[文件:NODE C.png | 640px]]
  
;; Only 20% of MIPS has been occupied by the WiFi stack, the rest can all be used for user application programming and development
+
模块大小:15.5mm x 17.8mm,一角硬币大小
  
 +
<br><br>
  
MCU Core 的框图:
+
=== 基于模块的最简系统 ===
  
[[文件:Tensilica-xtensa-l106.png]]
+
使用 ESP8266 和一个 USB 转串口板,亦可搭建一个精简开发环境,可以直接使用 Noduino (支持 esp8266 的 Arduino ),也可直接使用 Noduino-SDK,便宜又灵活
  
  
* Small, low power 32-bit RISC controller core, Xtensa ISA
+
移步: [[ESP8266 最简系统]]
* Cache-less processor with memory protection unit
+
* 5-stage pipeline
+
* Dhrystone 2.1: 1.22 DMIPS/MHz
+
* 24/16-bit ISA with modeless switching
+
* Iterative 32x32 multiplier
+
* Separate instruction and data memory interfaces
+
* Integrated interrupt controller with 15 interrupts at 2 priority levels
+
* 32-bit ALU
+
* 16 GPRs
+
  
 +
<br><br>
  
Xtensa L106 体系结构精要: [[Xtensa L106 Architecture]]
+
=== Noduino Falcon ===
  
<br><br>
+
Noduino 官方第一块开发板,开源硬件,电路原理、布线、光绘文件:https://github.com/icamgo/Noduino-Falcon-Board
  
=== SoC 内部存储 ===
+
快速成型评估板,可直接使用支持 esp8266 的 Arduino ,也可直接使用 Noduino-SDK
  
ESP8266EX WiFi SoC is embedded with memory controller, including SRAM and ROM. MCU can visit the memory units through iBus, dBus, and AHB interfaces. 
 
  
According to our current version of SDK provided, SRAM space that is available to users is assigned as below:
+
[[Noduino Falcon 硬件焊接调试指南]]
  
* RAM size is around 50 KB, that is to say, when ESP8266EX is working under the station mode (WiFi) and is connected to the router, programmable space accessible to user in heap and data section is around 50 KB
 
  
* There is no programmable ROM in the SoC, therefore, user program must be stored in an external SPI flash
+
[[文件:Falcon-v1.0-1000.jpg | 600px]]
  
  
用户外部程序都存储在外部 SPI flash 上,启动时,SoC 自动加载
+
[[文件:Falcon-v2.4p-04.jpg | 600px]]
  
 +
<br><br>
  
;;还有,除了外部 BOM 少,硬件易实现易测试外,对开发者最友好的,牛逼的,是其天生带串口刷机功能。。。模块出厂时就有串口刷机功能。。。
+
=== NodeMCU ===
 +
 
 +
市面在售体积小巧的开发版,可以直接使用 Noduino (支持 esp8266 的 Arduino ),也可直接使用 Noduino-SDK,方便、快捷、便宜
 +
 
 +
[[文件:Nodemcu-v1.0-board.jpg | 600px]]
  
 
<br><br>
 
<br><br>
  
=== 管脚定义 ===
+
== 市售成品模块 ==
 +
 
 +
=== OpenPlug ===
 +
 
 +
* AC 85V - 250V Smart Plug
 +
* ESP8285 inside
 +
* 250V 10A relay
 +
* Shell size 53mm x 53mm x 27mm
 +
 
 +
 
 +
[[文件:Open-plug-board-shell.jpg | 600px]]
 +
[[文件:Open-plug-board.jpg | 600px]]
  
[[文件:Esp8266ex-layout.jpg | 360px]]
 
  
* PIN6  --- TOUT / ADC
+
Please refer to: [[Noduino OpenPlug]]
  
* PIN8  --- GPIO16 / Deep-Sleep Wakeup
+
Chinese version please refer to: [[Noduino OpenPlug CN]]
  
* PIN9  --- GPIO14 / HSPICLK
+
[[Noduino OpenPlug Manufacturing Guide]]
* PIN10 --- GPIO12 / HSPIQ
+
* PIN12 --- GPIO13 / HSPID
+
* PIN13 --- GPIO15 / HSPICS
+
  
* PIN14 --- GPIO2 / UART TX during flash programming
+
[[Noduino OpenPlug Manufacturing Guide CN]]
* PIN15 --- GPIO0 / SPICS2
+
* PIN16 --- GPIO4
+
* PIN24 --- GPIO5
+
* PIN25 --- GPIO3 / UART RX during flash programming / URXD
+
* PIN26 --- GPIO1 / SPICS1 / UTXD
+
  
 
<br><br>
 
<br><br>
  
== 开发板 ==
+
=== OpenOnoff ===
  
ESP8266 外围只需晶振、电容、电阻等 7 个元器件,就能正常运行。为提供效率,快速、方便地使用,我们还是建议直接使用模块或者开发板
+
Open Source general Power Switch
  
  
=== ESP8266 模块 ===
+
[[文件:Open-onoff-3.jpg | 600px]]
  
ESP8266 模块,是在 ESP8266 芯片基础上,加上必要的晶振、电容、电阻、SPI Flash、WiFi 天线组成的一个最小 WiFi 系统
 
  
市面流行的模块,参考: [[ESP8266 Module]]
+
* AC 85V - 250V General Power Switch
 +
* ESP8285 inside
 +
* 250V 10A relay
  
<br><br>
 
  
=== 基于模块的最简系统 ===
+
Please refer to: [[Noduino OpenOnoff]]
  
使用 ESP8266 和一个 USB 转串口板,亦可搭建一个精简开发环境,可以直接使用 Noduino (支持 esp8266 的 Arduino ),也可直接使用 Noduino-SDK,便宜又灵活
+
Chinese version please refer to: [[Noduino OpenOnoff CN]]
  
 +
[[Noduino OpenOnoff Manufacturing Guide]]
 +
 +
[[Noduino OpenOnoff Manufacturing Guide CN]]
  
移步: [[ESP8266 最简系统]]
 
  
 
<br><br>
 
<br><br>
  
=== NodeMCU ===
+
=== OpenLight ===
  
市面在售体积小巧的开发版,可以直接使用 Noduino (支持 esp8266 的 Arduino ),也可直接使用 Noduino-SDK,方便、快捷、便宜
+
OpenLight Bulb:
  
[[文件:Nodemcu-v1.0-board.jpg | 600px]]
+
[[文件:Openlight-bulb-1024.jpg | 600px]]
  
<br><br>
 
  
=== 市售各种集成模块 ===
+
OpenLight Controller:
  
市售如下两款集成模块,都预留了串口,可以使用 Noduino SDK 进行串口升级,刷写您自己编译的固件:
+
[[文件:OpenLight-ceiling-1-1280.jpg | 600px]]
  
 +
[[文件:OpenLight-ceiling-4-1280.jpg | 600px]]
  
带 4 路 PWM 的灯具调光模块:
+
[[文件:Openlight-ctrl-demo.jpg | 600px]]
  
[[文件:Esp8266-light-module.jpg]]
 
  
 +
Please refer to [[Noduino OpenLight]]
  
带继电器的开关通断模块:
+
Chinese version please refer to: [[Noduino OpenLight CN]]
  
[[文件:Esp8266-switch-module.jpg]]
+
[[Noduino OpenLight Manufacturing Guide]]
 +
 
 +
[[Noduino OpenLight Manufacturing Guide CN]]
 +
 
 +
<br><br>
 +
 
 +
=== OpenCurtain ===
 +
 
 +
[[文件:OpenCurtain.jpg | 600px]]
 +
 
 +
 
 +
Please refer to: [[Noduino OpenCurtain]] Open Source Smart Curtain Controller
 +
 
 +
 
 +
* AC 85V ~ 250V Power Supply
 +
* 2 pin used by position sensor
 +
* 2 pin used for controlling motor
  
 
<br><br>
 
<br><br>
第151行: 第168行:
 
学习、熟悉、快速成型建议从 Arduino 开发环境开始。
 
学习、熟悉、快速成型建议从 Arduino 开发环境开始。
  
精确控制,产品化,建议使用我们的 SDK: espduino-sdk (专为智能硬件和物联网应用优化,无缝使用云服务)
+
精确控制,产品化,建议使用我们的 SDK: noduino-sdk (专为智能硬件和物联网应用优化,无缝使用云服务)
 +
 
 +
 
 +
'''74880:'''
 +
 
 +
For FTDI chip:
 +
 
 +
<pre>
 +
$ sudo setserial -v /dev/ttyUSB2 spd_cust divisor $((24000000/76800))
 +
$ picocom -b 38400 /dev/ttyUSB2
 +
</pre>
  
  
第179行: 第206行:
 
* [[Getting Started with Noduino SDK on Linux]]
 
* [[Getting Started with Noduino SDK on Linux]]
 
* [[Getting Started with Noduino SDK on Mac OS X]]
 
* [[Getting Started with Noduino SDK on Mac OS X]]
* [[Getting Started with Noduino SDK on Windows]]
+
* [[Getting Started with Noduino SDK on Windows]]  
  
  
* [https://github.com/icamgo/noduino-sdk/tree/master/examples/blink Blink 点灯示例]
+
 
* [https://github.com/icamgo/noduino-sdk/tree/master/examples/hello Hello World] 打印到串口
+
其他例子(进相应目录,直接 make flash 一步完成编译上传):
* [https://github.com/icamgo/noduino-sdk/tree/master/examples/wifi-ap WiFi AP]
+
 
* [https://github.com/icamgo/noduino-sdk/tree/master/examples/tcp-client TCP Client]
+
* [https://github.com/icamgo/noduino-sdk/tree/master/examples/noduino/blink/main.c Blink 点灯示例]
* [https://github.com/icamgo/noduino-sdk/tree/master/examples/tcp-server TCP Server]
+
* [https://github.com/icamgo/noduino-sdk/tree/master/examples/noduino/hello/main.c Hello World] 打印到串口
* [https://github.com/icamgo/noduino-sdk/tree/master/examples/udp-listen UDP Listen]
+
* [https://github.com/icamgo/noduino-sdk/tree/master/examples/noduino/printf/main.c Serail Printf] 更多串口输出示例
* [https://github.com/icamgo/noduino-sdk/tree/master/examples/udp-send UDP Send Data]
+
* [https://github.com/icamgo/noduino-sdk/tree/master/examples/noduino/dht21/main.cpp DHT21 温度传感器] DHT21 温度湿度传感器示例,性能价格很好的平衡,传感器三根线,红接3.3V,黑接地,中间数据线接开发板 D1 口
 +
* [https://github.com/icamgo/noduino-sdk/tree/master/examples/noduino/dht11/main.c DHT11 温度传感器] DHT11 温度湿度传感器,性能差些,但便宜,传感器三根线,VCC 接3.3V,GND 接地,中间数据线接开发板 D1 口
 +
* [https://github.com/icamgo/noduino-sdk/blob/master/examples/noduino/bmp085/main.c BMP085 气压、温度传感器] BMP085 气压、温度传感器,I2C 接口,SCL --> D9,SDA --> D8
 +
* [https://github.com/icamgo/noduino-sdk/blob/master/examples/noduino/tsl2561/main.c TLS2561 光照传感器] TLS2561 光照传感器,I2C 接口,SCL --> D9,SDA --> D8
 +
* [https://github.com/icamgo/noduino-sdk/blob/master/examples/noduino/bh1750/main.c BH1750 光照传感器] BH1750 光照传感器,I2C 接口,SCL --> D9,SDA --> D8
 +
 
 +
 
 +
 
 +
* [https://github.com/icamgo/noduino-sdk/tree/master/examples/rawsdk/wifi-ap WiFi AP]
 +
* [https://github.com/icamgo/noduino-sdk/tree/master/examples/rawsdk/tcp-client TCP Client]
 +
* [https://github.com/icamgo/noduino-sdk/tree/master/examples/rawsdk/tcp-server TCP Server]
 +
* [https://github.com/icamgo/noduino-sdk/tree/master/examples/rawsdk/udp-listen UDP Listen]
 +
* [https://github.com/icamgo/noduino-sdk/tree/master/examples/rawsdk/udp-send UDP Send Data]
 +
* [https://github.com/icamgo/noduino-sdk/tree/master/examples/rawsdk/mqtt MQTT Example]
 +
 
 +
 
 +
* [[ESP8266 SmartConfig]]
 +
* [[ESP8266 AirKiss NFF]] 微信 AirKiss 近场发现,简化智能设备生产过程
 +
* [[ESP8266 ESP NOW]]
  
 
<br><br>
 
<br><br>
  
==== SDK 应用笔记 ====
+
==== 分析杂记 ====
  
 
* [[ESP8266 Boot]]
 
* [[ESP8266 Boot]]
 +
* [[ESP8266 ROM XTOS]]
 +
* [[ESP8266 Memory Map]]
 
* [[ESP8266 UART]]
 
* [[ESP8266 UART]]
 
* [[ESP8266 GPIO]]
 
* [[ESP8266 GPIO]]
 +
* [[ESP8266 I2S]]
 +
* I2C: D8 (GPIO4) ---> SDA, D9 (GPIO5) ---> SCL
 +
* [[ESP8266 SPI]]
 
* [[ESP8266 Sleep]] ESP8266 提供三种可配置的睡眠模式,实际根据应用的功耗要求选用
 
* [[ESP8266 Sleep]] ESP8266 提供三种可配置的睡眠模式,实际根据应用的功耗要求选用
 
* [[ESP8266 Flash]]
 
* [[ESP8266 Flash]]
 
* [[ESP8266 Module]]
 
* [[ESP8266 Module]]
  
* [[ESP8266 SmartConfig]]  
+
* [[ESP8266 ADC]]
* [[ESP8266 AirKiss NFF]] 微信 AirKiss 近场发现,简化智能设备生产过程
+
* [[ESP8266 Low Power]]
* [[ESP8266 ESP NOW]]
+
 
 +
* [[Hack mini K]]
 +
* [[ESP8266 Debug Notes]]
 +
 
 +
* [[Fixup AI Thinker Plug]] 安信可积压 WiFi 插座处理
  
 
<br><br>
 
<br><br>
  
== 典型应用方案 ==
+
== 即取即用方案 ==
 +
 
 +
* [[WiFi 智能插座]]
 +
 
 +
* [[WiFi 智能灯]]
  
 
* [[庭院监控]]
 
* [[庭院监控]]
  
* WiFi 智能插座
+
* [[WiFi 工业传感器]]
  
* WiFi 智能灯
+
* [[ESP8266 MP3]] WiFi 音乐电台 ,WiFi 音箱,云音乐播放器。。。
  
* WiFi 智能门磁
 
  
* WiFi 低功耗传感器示例: https://github.com/EspressifSystems/low_power_voltage_measurement https://github.com/EspressifSystems/low_power_voltage_measurement/wiki
+
* [[WiFi 智能门磁]]
 +
 
  
 
<br><br>
 
<br><br>
  
 
== 资源 ==
 
== 资源 ==
 +
 +
* [[电路板核心生产流程]]
  
 
* https://github.com/jcmvbkbc/gcc-xtensa
 
* https://github.com/jcmvbkbc/gcc-xtensa
 
* https://github.com/esp8266/Arduino
 
* https://github.com/esp8266/Arduino
 
* http://www.esp8266.com
 
* http://www.esp8266.com
* https://github.com/nodemcu
 
  
<br><br>
 
<br><br>
 
<br><br>
 
<br><br>
 
<br><br>
 
<br><br>
 
<br><br>
 
<br><br>
 
<br><br>
 
 
<br><br>
 
<br><br>

2021年1月19日 (二) 17:18的最后版本

Esp8266ex-chip.jpg

目录

[编辑] 1 概述

ESP8266 是一个带完整 WiFi 功能、 同时带一个 32bit MCU 的 SoC,可以取代原 Arduino 核心板 + WiFi 扩展板完成的大部分应用

最重要的,他的价格,只有 RMB 10 块左右

带 1MB Flash 的模块价格,也只在 RMB 13 块左右,批量的价格更便宜

下图是一个典型的、可独立运行的模块,外部元器件 10 个以内(实际 7 个外围元器件就行):

ESP-01.jpg


ESP8266 芯片详细特性,参考此页:ESP8266 特性

ESP8266 芯片体系结构,移步: ESP8266 Arch

ESP8266 内部有一个完整的 32bit MCU 核心,可用 RAM 在 50KB 左右,主频 80MHz,应该是一个功能不错的 MCU,其体系结构为 Xtensa L106。关于这个体系结构,参考 Xtensa L106 体系结构精要: Xtensa L106 Architecture



[编辑] 2 开发板

ESP8266 外围只需晶振、电容、电阻等 7 个元器件,就能正常运行。为提供效率,快速、方便地使用,我们还是建议直接使用模块或者开发板


[编辑] 2.1 ESP8266 模块

ESP8266 模块,是在 ESP8266 芯片基础上,加上必要的晶振、电容、电阻、SPI Flash、WiFi 天线组成的一个最小 WiFi 系统

市面流行的模块,参考: ESP8266 Module


ESP8266 叠加 1MB flash 版本:ESP8285,更是小到了极致(仅 13 个外围器件):

NODE C.png

模块大小:15.5mm x 17.8mm,一角硬币大小



[编辑] 2.2 基于模块的最简系统

使用 ESP8266 和一个 USB 转串口板,亦可搭建一个精简开发环境,可以直接使用 Noduino (支持 esp8266 的 Arduino ),也可直接使用 Noduino-SDK,便宜又灵活


移步: ESP8266 最简系统



[编辑] 2.3 Noduino Falcon

Noduino 官方第一块开发板,开源硬件,电路原理、布线、光绘文件:https://github.com/icamgo/Noduino-Falcon-Board

快速成型评估板,可直接使用支持 esp8266 的 Arduino ,也可直接使用 Noduino-SDK


Noduino Falcon 硬件焊接调试指南


Falcon-v1.0-1000.jpg


Falcon-v2.4p-04.jpg



[编辑] 2.4 NodeMCU

市面在售体积小巧的开发版,可以直接使用 Noduino (支持 esp8266 的 Arduino ),也可直接使用 Noduino-SDK,方便、快捷、便宜

Nodemcu-v1.0-board.jpg



[编辑] 3 市售成品模块

[编辑] 3.1 OpenPlug

  • AC 85V - 250V Smart Plug
  • ESP8285 inside
  • 250V 10A relay
  • Shell size 53mm x 53mm x 27mm


Open-plug-board-shell.jpg Open-plug-board.jpg


Please refer to: Noduino OpenPlug

Chinese version please refer to: Noduino OpenPlug CN

Noduino OpenPlug Manufacturing Guide

Noduino OpenPlug Manufacturing Guide CN



[编辑] 3.2 OpenOnoff

Open Source general Power Switch


Open-onoff-3.jpg


  • AC 85V - 250V General Power Switch
  • ESP8285 inside
  • 250V 10A relay


Please refer to: Noduino OpenOnoff

Chinese version please refer to: Noduino OpenOnoff CN

Noduino OpenOnoff Manufacturing Guide

Noduino OpenOnoff Manufacturing Guide CN




[编辑] 3.3 OpenLight

OpenLight Bulb:

Openlight-bulb-1024.jpg


OpenLight Controller:

OpenLight-ceiling-1-1280.jpg

OpenLight-ceiling-4-1280.jpg

Openlight-ctrl-demo.jpg


Please refer to Noduino OpenLight

Chinese version please refer to: Noduino OpenLight CN

Noduino OpenLight Manufacturing Guide

Noduino OpenLight Manufacturing Guide CN



[编辑] 3.4 OpenCurtain

OpenCurtain.jpg


Please refer to: Noduino OpenCurtain Open Source Smart Curtain Controller


  • AC 85V ~ 250V Power Supply
  • 2 pin used by position sensor
  • 2 pin used for controlling motor



[编辑] 4 开发工具

学习、熟悉、快速成型建议从 Arduino 开发环境开始。

精确控制,产品化,建议使用我们的 SDK: noduino-sdk (专为智能硬件和物联网应用优化,无缝使用云服务)


74880:

For FTDI chip:

$ sudo setserial -v /dev/ttyUSB2 spd_cust divisor $((24000000/76800))
$ picocom -b 38400 /dev/ttyUSB2


[编辑] 4.1 Arduino

[编辑] 4.1.1 Quick Start


详细参考:ESP8266 Arduino



[编辑] 4.2 SDK

产品级开发,我们建议直接使用 SDK 开发,可以尝试 Noduino 社区的 SDK,基于乐鑫官方最新的稳定版 SDK(保持同步),并做了很多易用和专业改进:

https://github.com/icamgo/noduino-sdk



[编辑] 4.2.1 Quick Start


其他例子(进相应目录,直接 make flash 一步完成编译上传):





[编辑] 4.2.2 分析杂记



[编辑] 5 即取即用方案

  • ESP8266 MP3 WiFi 音乐电台 ,WiFi 音箱,云音乐播放器。。。





[编辑] 6 资源



个人工具
名字空间

变换
操作
导航
工具箱