一、目的
最近从源地工作室购买了一块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)
本篇的目的就是指导大家如何配置Flashe和PSRAM。
二、准备
ESP-IDF V5.0(Master)
三、实战
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这几种模式(不清楚的请看上面的链接)。
从乐鑫官方文档我们也可以知道模组的信息
从上图可以知道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、注意点
- Flash和PSRAM共享同一个内部时钟
- Quad Flash只支持STR模式,Octal Flash可以支持STR/DTR模式
- Quad PSRAM只支持STR模式,Octal PSRAM只支持DTR模式
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的相关配置。