最近从源地工作室购买了一块ESP32S3开发板(源地的便宜啊),如下图。
使用过ESP32模组的同学肯定见过下面的menuconfig菜单配置窗口用于配置Flash的相关参数
上图是ESP32模组中Flash的配置选项(SPI模式、时钟频率、Flash大小)。
其中关于SPI mode的描述,请参考《理解ESP32 Flash烧写的DOUT/DIO/QOUT/QIO配置》
关于如何准确获取自己手上的ESP32模组的flash大小,请参考《查看ESP32模组中Flash颗粒以及芯片信息》
那么如果我们使用的ESP32S3模组关于Flash的配置是怎样的呢?
上图就是ESP32S3模组关于Flash的配置选项,其中多了一个Enable Octal Flash配置项(八线SPI)。
上图是关于PSRAM的配置,相比ESP32模组的PSRAM硬件配置多了一些额外的选项。
我手头的ESP32S3开发板使用的是N8R8(8M Flash 8M PSRAM)
ESP Product Selectorhttps://products.espressif.com/#/product-selector?language=zh&names=ESP32-S3-WROOM-1-N8R8
本篇的目的就是指导大家如何配置Flashe和PSRAM。
ESP-IDF V5.0(Master)
参考资料 SPI Flash and External SPI RAM Configuration - ESP32-S3 - — ESP-IDF Programming Guide latest documentationhttps://docs.espressif.com/projects/esp-idf/en/latest/esp32s3/api-guides/flash_psram_config.html
1、首先我们先确认一下自己的模组的Flash大小
esptool.py -p 你的串口名称 flash_id
上图中看到Flash的厂商ID是0x20,设备ID是0x4017。
通过《查看ESP32模组中Flash颗粒以及芯片信息》这篇博文介绍的方法我们可以知道Flash型号为XM25QH64C。
https://www.xmcwh.com/uploads/442/XM25QH64C.pdfhttps://www.xmcwh.com/uploads/442/XM25QH64C.pdf
根据芯片手册我们知道这款Flash是四线Flash,支持DIO/DOUT/QIO/QOUT/QPI这几种模式(不清楚的请看上面的链接)。
从乐鑫官方文档我们也可以知道模组的信息
https://www.espressif.com.cn/sites/default/files/documentation/esp32-s3-wroom-1_wroom-1u_datasheet_cn.pdfhttps://www.espressif.com.cn/sites/default/files/documentation/esp32-s3-wroom-1_wroom-1u_datasheet_cn.pdf
从上图可以知道ESP32S3N8R8模组是8线PSRAM。
2、ESP-IDF中关于Flash和PSRAM的设置说明
第一项设置是否是八线SPI Flash,一般情况下都是4线的(可以具体看芯片手册或者通过flash_id的方式来确定)
第二项配置Flash通信模式(即DIO/DOUT/QIO/QOUT)
第三项配置Flash的采样模式,STR(Single Data Rate)或者DDR(Double Data Rate)
第四项配置Flash的读写时钟频率
第五项配置Flash大小
以上是关于Flash的配置。
第一项配置PSRAM是否是八线还是四线
第二项配置PSRAM的时钟频率
以上是关于PSRAM的配置。
3、注意点
4、针对F4N8的配置(4线Flash 8线PSRAM)
Group |
Flash mode |
Group |
PSRAM mode |
---|---|---|---|
A |
120 MHz SDR |
A |
N.A. |
B |
80 MHz SDR |
B |
80MHz DDR |
C |
40 MHz SDR |
C |
40MHz DDR |
C |
20 MHz SDR |
C |
|
D |
D |
disable |
Flash模式A可以配合PSRAM模式A/D工作;Flash模式B/C可以配合PSRAM模式B/C/D工作。
建议Flash设置为80MHz SDR,PSRAM设置为80MH DDR加快执行速度。
好了,以上就是关于Flash和PSRAM的相关配置。