2.硬件与原理图简析 硬件方面,首先ESP32 SOC比较令人感兴趣.这里做个简单介绍. 2.1 ESP32简介这是上海乐鑫出的一款ESP8266的升级版本.从数据手册来看此SOC的核心为: • Xtensa® 双核 32位 LX6 处理器, 频率最高240 MHz, 性能最高600 DMIPS(ESP8266的内核是单核的Tensilica LX106,最高80MHz) 每个核都支持: • 7级流水线 • 16/24位两种指令集 • FPU • DSP指令,比如32位乘法器,32位除法器,40位MAC • 70个中断源,32个向量
外设与无线接口这里就不详列了,读者可以参考数据手册. Xtensa LX6及其系列产品使用的是Xtensa公司的一款专门为无线与多媒体应用优化设计的内核. 这个公司2013年被Cadence收购. 简而言之,这个处理器优化原理就是类似于ASIC与通用处理器之间的一个中间路线: 有一个通用的架构,也有一些可配置单元,在综合成最终处理器时去除不需要的部分,从而实现了成本尺寸性能几个方面很好的优化. 图 Xtensa LX vs通用处理器 关于这个内核的详情这里就不多展开了, 感兴趣的可以看**后面的参考连接. 这是ESP32的Block图: 图 ESP32 SOC功能Block图 除了无线方面很强大之外,其他外设几乎也是应有尽有.摄像头接口与外部动态存储器接口是作者第一眼望过去能举出的没有的外设. 原理图的整个文件将在后面附上连接. 这里就分析其中两点: 2.2 USB与充电部分
图 USB+LDO部分 此处注意当有USB电源与电池双电源的时候,Q1管子的Gate极被拉高,而导致DS截止.这样只使用USB进行供电.当没有USB连接,Gate极被R7拉低而使得DS导通,这样电池电压通过Q1与VIN连接.这是一种典型的低成本USB/电池电源设计, 当然如果有稍稍智能一点的电源管理芯片则不必如此费事. 图 充电部分原理图 此处使用充电片MCP73831的PROG脚的下拉电阻来设置充电电流: I = 1000/Rprog. 板子上原来使用2K电阻,则充电电流为500mA.这个电流对大多数主板来讲应该还是嫌高了一些.故此本人把这里改成了2.55K的电阻. 另外提一句, 如果大家想自己制作这个板子的话.电源部分的LDO与充电片MCP73831都有很多国产的替代型号. 比如LDO使用RT9193或者ME6211系列替代, MCP73831的话,国产的TP4054,FM4054替代型号也非常多. 这里说的替代都是管脚兼容的. 2.3 串口下载部分
图 串口下载逻辑 这里使用串口的DTR与RTS两个信号比较聪明地做了个自动下载的逻辑. 具体这样的: 如果DTR为低,RTS的下降沿将SOC切换到运行状态.如果RTS为高,DTR的上升沿将SOC切换到bootloader状态.这个逻辑在Arduino类的使用串口下载的板子设计中用得很广泛.
|