前言

最近做项目需要用到ESP32-­WROOM­-32E模组和ESP32PICO-D4,这两款模组在引脚功能上大部分是相同的,但是在小部分引脚的定义上存在区别,所以在此进行区分。

一、模组原理图分析

值得注意的是,ESP32-­WROOM­-32E模组和ESP32PICO-D4都属于基于ESP32D0WD的模组,在数据手册上可以看到模组内部的原理图
在这里插入图片描述

在这里插入图片描述
ESP32-­WROOM­-32E与ESP32-­WROOM­-32UE在大部分设计上无区别,唯一的区别就是ESP32-­WROOM­-32E采用了pcb天线,ESP32-­WROOM­-32UE采用了ipex接口,需要外接天线。
在这里插入图片描述
对比ESP32-­WROOM­-32E模组和ESP32PICO-D4两个模组的内部原理图,可以发现他们大部分的设计是一样的,但是在内部flash部分有区别,ESP32-­WROOM­-32E在flash的部分使用的引脚为28脚至33脚,如下图所示
在这里插入图片描述
ESP32PICO-D4在flash的部分使用的引脚为25、27、30、31、32、33引脚,而没有使用28、29脚,如下图所示
在这里插入图片描述
所以在使用中需要注意,对于ESP32-­WROOM­-32E来说,io16与io17可以当作正常的io口使用,对于ESP32PICO-D4来说,io16与io17原则上禁止使用,需要悬空,否则会出现flash无法读取的报错。

二、推荐外围电路原理图分析

在这里插入图片描述

在这里插入图片描述
与ESP32-­WROOM­-32E/U不同的是,ESP32PICO需要设计外部的天线和其对应的阻抗匹配电路,同时,PICO的推荐原理图外接了pSRAM,pSRAM的片选引脚使用了之前保留的SD3(io10)。其余电路设计均相同。

三、IO口使用建议

对于ESP32-­WROOM­-32E模组和ESP32PICO-D4两个模组来说,首先应该保证
Strapping 管脚启动时的电平正确,Strapping 管脚的目的是通过启动时的电平配置芯片的工作状态,我们必须要保证Strapping 管脚的启动电平正确,否则可能会无法正常下载和启动。
ESP32 共有 5 个 Strapping 管脚。
• MTDI(GPIO12)
• GPIO0
• GPIO2
• MTDO(GPIO15)
• GPIO5
软件可以读取寄存器“GPIO_STRAPPING”中这 5 个管脚 strapping 的值。
在芯片的系统复位(上电复位、 RTC 看门狗复位、欠压复位)放开的过程中, Strapping 管脚对电平采样并存储到锁存器中,锁存为“0”或“1”,并一直保持到芯片掉电或关闭。
每一个 Strapping 管脚都会连接内部上拉/下拉。如果一个 Strapping 管脚没有外部连接或者连接的外部线路处
于高阻抗状态,内部弱上拉/下拉将决定 Strapping 管脚输入电平的默认值。
为改变 Strapping 的值,用户可以应用外部下拉/上拉电阻,或者应用主机 MCU 的 GPIO 控制 ESP32 上电复位
放开时的 Strapping 管脚电平。
复位放开后, Strapping 管脚和普通管脚功能相同。
在这里插入图片描述
对于Strapping 管脚来说,两个模组使用上是一致的。
对于ESP32PICOD4来说,IO16 IO17 CMD CLK SD0 SD1 用于集成嵌入式flash,所以这些引脚一般不使用。而在不使用外部pSRAM时,SD2(io9)和SD3(io10)可以当成正常的io口使用。
对于ESP32-­WROOM­-32E来说,CMD CLK SD0 SD1 SD2 SD3用于集成嵌入式flash,在不连接外部pSRAM的情况下,IO16 IO17可正常使用,使用外部pSRAM时则需要将IO16上拉且不可用于其他功能。其他引脚的要求两者相同。
所以我们在制作ESP32核心板的过程中如果遇到不能正常启动的情况,多半是引脚连接错误,需要检查上述引脚的启动时的电平确保正常。
在这里插入图片描述

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐