硬件设计详解

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电压,处于锂电池供电状态。

AIR在有USB线插入的状态可以给锂电池充电,这个是由LTC4054完成的。该电路十分简单,通过PROG引脚的电阻决定了锂电池的最大充电电流,根据手册的计算公式,使用3.3K的电阻实际横流充电电流为333mA。

得益于silabs的CP2104芯片方案,这部分电路十分简单,稳定性、兼容性也非常好。此芯片可以输出带流控的全串口,在ESP32下载电路中用到了DTR,RXD,TXD,RTS四个。

这部分电路使用两个NPN三极管巧妙的转换RTS和DTR到RST和DL的逻辑,真值表如下:

LED连接了GPIO25引脚,正逻辑,高电平亮,低电平灭。

AIR有两个按键,分别是复位按钮和DL按钮,默认状态均上拉到3.3V。随时按下CHIP_PU会使ESP32复位,如果在解除复位状态前按下DL按钮,ESP32会进入串口下载代码状态。

ESP32-D0WDQ6必须外扩一片SPI接口的FLASH用于存储固件,连接方式官方推荐使用SPI0,软件配置上可以使用SPI模式或者4bit-SPI模式。AIR老版本用了winbond的W25Q128,新版本为W25Q32。

芯片界有种流行的做法,就是芯片上电的时刻,通过检测某些外部特定引脚的电平,来决定芯片具体的工作模式。MT7688、STM32、ESP32均类似: 看这个图就可以知道,ESP32芯片引脚的默认状态就是可以正常启动执行FLASH的代码,而如果将GPIO0和GPIO2在运行之前拉到低电平,就进入了下载模式。这和前一节提到的DL按键作用相同。 复位后,这些Strapping管脚与普通管脚功能相同。

尺寸图

引脚图

上边一排 下边一排

极窄设计

AIR考虑了极窄设计,默认情况下面包板上侧留2排,下侧留3排。