This is an old revision of the document!
从ESP8266说起
从某种程度上说,ESP8266开创了物联网微控制器的先河,使得搭配Wi-Fi接口的微控制器成本大幅度降低,这种控制器既满足了物联网对Wi-Fi的首要要求,又满足了物联网终端设备对微控制器方案成本的苛刻要求。在几年前,一个Wi-Fi插座甚至要动用AR9331等路由器芯片方案,成本根本降不下来,这两年,基于ESP8266的Wi-Fi插座甚至做到30元以内。<br /> ESP32芯片针对ESP8266进行了大幅度升级,将801.11 b/g/n Wi-Fi 和 BLE 合二为一,搭配双核32位Tensilica L108 MCU,最高主频可达240MHz,且具备低功耗等多种睡眠模式供不同的物联网应用场景使用,ESP32 有更多的内存空间供用户使用,且有更多的外设可供开发。
ESP32
AIR是基于乐鑫的ESP32微控制器而设计的开源硬件,硬件资源:
- ESP32 240MHz Dual Core
- 16MB Flash
- 150M 11bgn
- BT4.0
- CP2104 USB-TTL
- GPIO
- SPI
- 61.6mm*17.78mm
AIR V4.0版本是第一个市售版本,功能清单如下:
- 兼容面包版的宽度,极窄设计。
- 板载了CP2104芯片,方便调试。
- 板载了4MByte SPI FLASH。存储用户代码。
AIR V5.0是升级版本,在V4.0基础上优化如下:
- 去耦电容增加,特别是WiFi部分。
- FLASH由4MByte升级为16MByte。
- 一体化设计,出色性能,双核双模,极窄设计。
AIR V6.0:
- 4.0, 5.0存在一个BUG,IO21(右下角倒数第二个PIN)外接线后,会影响WI-FI链接,检查发现IO21的布线经过了晶振背面,V6.0改掉。
- 增加锂电池接口,充放电电路。
ESP32处理器介绍
| 类目 | 规格 |
|---|---|
| 主要特征 | Tensilica LX6 双核处理器,主频 240 MHz,运算能力高达 600 DMIPS,内置 520 KB SRAM,内置 802.11BGN HT40 Wi-Fi 收发器、基带、协议栈和 LWIP,集成双模蓝牙(传统蓝牙和低功耗蓝牙),最大支持外部16 MByte Flash,工作电压:2.2V 至 3.6V,工作温度范围:-40°C 至 +125°C,板载天线 / IPEX 连接外置天线 |
| 传感器 | 超低噪声模拟放大器,霍尔传感器,10 个电容式触摸传感器接口,32kHz 晶振 |
| 32x GPIO | 3 x UARTs,带硬件流控,3 x SPI,2 x I2,12 x ADC 输入信道,2 x DAC,2 x I2C,任意 GPIO 均可配置为 PWM/定时器和输入/输出,OpenOCD 调试接口配备 32kB TRAX 缓存,50 MHz SDIO 主/从模式,支持 SD 卡接口 |
| 安全机制 | WEP、WPA/WPA2 PSK/Enterprise,加密硬件加速:AES / SHA2 / 椭圆曲线加密 / RSA-4096 |
| 性能 | 支持 Sniffer、Station、softAP 和 Wi-Fi Direct 模式,最大数据速率:150 Mbps@11n HT40、72 Mbps@11n HT20、54 Mbps@11g、11 Mbps@11b,最大发射功率:19.5 dBm@11b、16.5 dBm@11g、15.5 dBm@11n,接收器灵敏度达 -98 dBm,UDP 持续吞吐量达 135 Mbps,深度睡眠模式下电流仅为 2.5 μA |
乐鑫ESP32规格
| 型号 | 核心 | 内置FLASH | 封装面积 |
|---|---|---|---|
| ESP32-D0WDQ6 | 2 | 0MB | 6×6 |
| ESP32-D0WD | 2 | 0MB | 5×5 |
| ESP32-D2WD | 2 | 2MB | 5×5 |
| ESP32-S0WD | 2 | 0MB | 5×5 |
AIR是什么,怎么玩?
AIR是基于ESP32-D0WDQ6打造的一款开源硬件,专门为面包板设计,板载了开发者最为关心的程序下载功能和运行看到log。正面每个引脚都有功能标注,让开发者省去了解繁杂的硬件,专注于程序编写与运行结果。
AIR已经推出多个版本,最新版本V6的特性,还是非常多的:
- USB-UART芯片:CP2104,无需额外的串口下载器
- 支持自动进入下载状态
- 串口收发指示灯,电源指示灯,GPIO25指示灯(一般用于状态指示)
- 沉金工艺,白色阻焊,黑色超精美丝印
- 支持锂电池接口,默认充电电流设定为333mA
- 板载天线,所有阻容感均为村田料,信号强劲
- 极窄设计,尺寸是61.6 X 17.78mm,非常小巧可爱,直接插面包板,两侧还可以留5排孔
- 因乐鑫官方SD卡示例程序占用GPIO2,导致使用SD卡例程时会出现无法下载程序的情况,AIR V6已经针对此情况做了修复
可以拿来做什么
AIR提供了非常方便的联网功能,势必不能以常规微控制器对待。
- WI-FI四轴飞行器的需求:WI-FI连接,启动tcp服务器接收来自手机的控制命令,多路PWM控制无刷电机,IIC或者SPI连接传感器,ADC监测电池电压、电流等等
- 串口转WI-FI 需求:WI-FI连接,简单的控制界面,实现TCP、UDP服务器与串口的透传
- 串口转网络的需求:以太网连接,简单的控制界面,实现TCP、UDP服务器与串口的透传
- 语音对话的需求:使用Alexa服务,ESP32可以通过IIS接口连接codec收集本地用户发出的声音命令,将语音数据传送给Amazn Alexa后取得对话回答的音频数据,再通过本地IIS接口codec播放出来
- 相机的视频流传输
- WI-FI语音识别设备
- 智能插座
- Mesh网络
- 婴儿监控器
- WI-FI位置感知设备
- 家庭自动化
还有很多,就不一一介绍了,总之,AIR依靠ESP32提供了非常强大的互联和处理能力
AIR资料
原理图
* AIR-V4.0 Air.pdf * AIR-V5.0 Air-v5.pdf * AIR-V6.0 AIRV6.PDF
硬件设计详解
* 供电电路原理图: thumb|center AIR的供电主要由D1,T1,U2及周围电阻电容组成,供电来源有两路:USB供电或者锂电池供电,当有USB供电时,D1导通,T1截止(Vgs大约为0.3V),U2的1脚VIN获得电压,U2是LDO,此时可以输出3.3V电压。而在没有USB供电时,T1导通(Vgs大约为-3.6V),U2的1脚获得锂电池的电压后输出3.3V电压,处于锂电池供电状态。 Mic5219.pdf * 充电电路原理图: thumb|center AIR在有USB线插入的状态可以给锂电池充电,这个是由LTC4054完成的。该电路十分简单,通过PROG引脚的电阻决定了锂电池的最大充电电流,根据手册的计算公式,使用3.3K的电阻实际横流充电电流为333mA。 LTC4054.pdf
* USB转UART部分: thumb|center 得益于silabs的CP2104芯片方案,这部分电路十分简单,稳定性、兼容性也非常好。此芯片可以输出带流控的全串口,在ESP32下载电路中用到了DTR,RXD,TXD,RTS四个。<br /> 逻辑转换:
thumb|center 这部分电路使用两个NPN三极管巧妙的转换RTS和DTR到RST和DL的逻辑,真值表如下:
{| class=“wikitable”
! RTS !!DTR !! RST !! DL
| 0 | 0 | 1 | |||
| 0 | 1 | 0 | |||
| 1 | 0 | 1 | |||
| 1 | 1 | 1 | |||
* LED: thumb|center LED连接了GPIO25引脚,正逻辑,高电平亮,低电平灭。
* BUTTON: thumb|center AIR有两个按键,分别是复位按钮和DL按钮,默认状态均上拉到3.3V。随时按下CHIP_PU会使ESP32复位,如果在解除复位状态前按下DL按钮,ESP32会进入串口下载代码状态。
* FLASH thumb|center ESP32-D0WDQ6必须外扩一片SPI接口的FLASH用于存储固件,连接方式官方推荐使用SPI0,软件配置上可以使用SPI模式或者4bit-SPI模式。AIR老版本用了winbond的W25Q128,新版本为W25Q32。 W25q32bv revi 100413 wo automotive.pdf
* ESP芯片的启动模式 芯片界有种流行的做法,就是芯片上电的时刻,通过检测某些外部特定引脚的电平,来决定芯片具体的工作模式。MT7688、STM32、ESP32均类似: center 看这个图就可以知道,ESP32芯片引脚的默认状态就是可以正常启动执行FLASH的代码,而如果将GPIO0和GPIO2在运行之前拉到低电平,就进入了下载模式。这和前一节提到的DL按键作用相同。 复位后,这些Strapping管脚与普通管脚功能相同。
ESP32芯片硬件参考
{| class=“wikitable”
! 手册 !! 英文 !! 中文
尺寸图
引脚图
ESP32在面包板上的效果
AIR考虑了极窄设计,默认情况下面包板上侧留2排,下侧留3排。 center


