ESP32设计开始
认识ESP32模组&芯片
ESP32常用的有模组和芯片两种形式
模组↓
芯片↓
一般模组就是对芯片一些基础的外围电路(射频电路,晶振,供电等)进行了封装,使得模组需要外围电路非常简单。
但是模组的尺寸比较大,不适合集成度要求非常高的地方
而芯片对电路设计和焊接的要求都比较高,并且射频电路的阻抗匹配也不是一般开发者能搞定的。
在非必要情况下推荐基于模组设计ESP32系统,芯片推荐使用pico系列,电路比较简单。
硬件设计参考
可以前往官网查看每个芯片的设计手册查看每种芯片的注意事项
并且多在嘉立创开源平台参考他人的设计
最小系统设计指南
这里会展示如何设计一个最基本的esp32最小系统
供电电路
常用的外部供电有USB和外部电源(电池等),USB电压为5V,外部电源一般大于7V,常用的6S电池可达到25V
但是Esp32模组只能采用3.3V供电,所以降压电路是必要的
常用降压有两种
-
DC-DC
-
LDO
DC-DC
DC-DC用于大电压大电流的场景,具有较高的效率,如果你的电路是外部供电那么就需要设计DCDC电路
我们常用的DCDC芯片为TPS5430
输入<35v 输出3A足够满足大部分场景
参考电路
注意
-
输入端的TVS不要省并且型号不能小于输入电压
-
输出端的电容可以自行加减
-
BOOT处的电容不能换成大的建议10-100nF
-
R1-R3共同决定输出电压 10K-3.24K的组合能正好输出5V
-
电感不同型号的过流能力不同,不能选电流太小的
-
如有需要可以在输出上加TVS
电感 电阻 和电容的详细说明见手册
LDO
LDO用于低压差小电流的场景,基本上每个单片机系统上都会有5V-3.3V的LDO,LDO电路简单,稳定性高。
我们一般常用AMS1117(原因是简单便宜,便宜到可以忽略它的不稳定性)
参考电路
注意
AMS1117有两种封装 SOT89 SOT223
两种封装我们都有,但是建议使用SOT89的芯片
下载电路
代码烧录即将程序烧录到flash中,需要让芯片进入下载模式,这里涉及到两个重要的引脚
-
EN
-
BOOT
EN引脚:即控制芯片是否启动的引脚,一般高电平启动,低电平关闭
BOOT引脚:在芯片启动时芯片会读取BOOT引脚的电平,一般高电平即正常启动,低电平进入下载模式
BOOT引脚在不同型号的芯片上不一样,在不确定时请查看手册,并且有些其他管脚需要固定的上下拉电阻才能正常进入下载模式
BOOT:
ESP32-S3 IO0
ESP32-C3 IO9
下载按键
典型电路:
这个电路默认不按下按键时两个引脚是上拉到3.3V芯片正常工作
启动时按下BOOT按键即可拉低BOOT引脚让芯片进入下载模式
EN引脚上的电容是让芯片缓慢启动防止BOOT读取到意外的电平
USB下载&串口下载
ESP32有两种程序下载方式USB下载和串口下载,虽然往往这两种下载方式体现在使用中都是插上USB接口就能下载,但是电路设计有很大不同
先简单了解一下串口和USB通信
没有找到比较好的介绍USB的视频
我们这里采用的USB2.0/1.1协议主要由一对差分信号通信,差分信号介绍见视频
串口下载是:USB接口-串口芯片-芯片
USB下载是:USB接口-芯片
使用USB下载电路会省下一颗串口芯片并且节省一个串口外设,还能支持JTAG等功能。所以在支持USB下载的ESP32芯片上推荐使用USB下载
但是不是所有的ESP32型号都支持USB下载,可以查看手册确认
支持的芯片:
ESP32-S2 S3
ESP32-C3 C5 C6
ESP32-H3
不支持的芯片
esp32-pico-D4
ESP32-WROOM32
TYPE-C简介
建议采用TYPEC端口下载,2024年了不要用micro usb端口了
一个16P type-c母座原理图如下
TYPE-C支持正反插原因是端子上有镜像对称的两组引脚,一般来说需要将镜像的相同的端口连接到一起。
但是CC引脚例外,这是TYPE-C用来检测主从设备的引脚,这里标准是分别下拉5.1K电阻,如果不接在使用双头TYPE-C线材时会识别不到从设备。
理论上你确实可以将两对差分信号接到不同设备,实现正反插不同的效果,但是不建议这样做。
USB下载电路
只需要将USB的差分信号连接到对应的引脚即可
例如:
ESP32-S3
串口下载电路
这里需要使用一颗USB转TTL的芯片
常用的是CH340系列
建议使用CH340X和CH340C
注意下面的电路省略了上拉和按键
CH340X电路
CH340C电路(注意右侧的三极管)
功能引脚
不建议使用的引脚
ESP32的引脚可自映射到任何外设,但是有一些引脚不能这么做或者比较危险
比如连接到内部PSRAM的引脚,仅输入的引脚。
例如:
建议查看对应的芯片手册确认
ADC引脚
ESP32的ADC不能映射并且有很多坑
ESP32有两个ADC通道每个ADC通道多个输入,但是ADC2和射频(wifi,蓝牙等)不能同时使用,所以建议不要使用ADC2
在手册中查看哪些是ADC引脚
引脚保护
ESP32标准的输入高电平是3.3V,输入5V也能用,但是一旦电压再大一点点就会损坏芯片
一个简单的保护电路
加上如同的电路,输入较高的电压比如24v,芯片依然能够正常工作