当前位置:首页 > 技术 > 单片机 > 正文内容

ESP32使用SD卡注意事项

watrt3周前 (09-03)单片机230

有两种方法可以使用:上拉电阻为47K和上拉电阻为10K。

2.png

                                           上拉电阻为47K。

按照ESP32-CAM开发板的接法。

1.png

                                           上拉电阻为10K。

一、原理图。

ESP32S模块中有引出SDIO的接口,就是SD2、SD3、CMD、CLK、SD0、SD1,如下图所示,第17~22引脚。

1.png

第17~22引脚也就是ESP-IDF中SD卡的Slot0,这里连接了ESP32S模块的内部Flash芯片,所以这里是不能接SD卡的。

所以要接SD卡的Slot1,原理图如上图所示,SDIO_D0等引脚。

SDIO_CD可以接任意的GPIO口。

其中,U0TXD和T0RXD用于烧录固件,而GPIO16、GPIO17为AT指令的串口2,视具体情况引出。

二、efuse。

ESP32的芯片内部是有熔丝,可以通过串口烧断熔丝,以固化某些功能,但是这个操作不可逆,使用前需要详细阅读手册。

ESP32中的MTDI引脚,也就是GPIO12,当ESP32上电时,先读GPIO12的电平,拉低时把VDD_SDIO引脚配置为3.3V,供内部Flash使用;拉高时把VDD_SDIO引脚配置为1.8V。

因为ESP32S的内部Flash是3.3V供电的,所以需要把GPIO12拉低,但是GPIO12又接了SDIO_D2并且上拉10K电阻。这就导致了GPIO12不能使用。

使用ESP32的efuse可以不读GPIO12的电平来固定VDD_SDIO的输出电压。

三、搭建python开发环境。

要使用efuse需要python3解释器和pip工具。如下图所示。



安装好python3解释器后,添加到path系统环境变量,如下图所示。

使用管理员方式打开cmd,如下图所示。

进入刚才下载的tar包目录中,解压后,使用python setup.py install,安装pip,如下图所示。


安装完成后,可以看到pip.exe,如下图所示。


把pip的目录也添加到path系统环境变量中,如下图所示。


用管理员方式打开cmd,使用pip安装esptool,如下图所示。


四、使用python脚本配置ESP32的efuse。

先把ESP32的GPIO0拉低,重新上电。

打开cmd,执行以下命令,其中-b设置波特率为115200,-p设置COM口,这里是COM10,视具体情况而定。python的目录也是视自己电脑而定。第二条命令summary可以获取ESP32的efuse信息,用于观察是否设置正确。

cd C:\Program Files\Python 3.5\Scripts
python espefuse.py-script.py -b 115200 -p COM10 summary
python espefuse.py-script.py -b 115200 -p COM10 set_flash_voltage 3.3V

最终结果如下图所示。

设置电压为3.3V时,需要再输入一遍BURN,回车,才能生效。

重新上电,GPIO12可以正常使用,同时又不影响ESP32读取Flash。

五、烧录固件。

由于SDIO的引脚都接了10K上拉电阻,会导致ESP32无法烧录固件。

需要去掉SDIO_D0,也就是GPIO2的上拉电阻,才能正常烧录固件。

六、IDF版本。

ESP32-IDF(V2.0版本)不支持SDIO接口的SD卡,建议使用V3.2.2版本(使用官方推荐的lubuntu)。


相关文章

T12恒温铬铁参考1年前 (2019-09-04)
ESP32S 数据手册9个月前 (01-02)

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。