主要参考资料:
乐鑫ESP-IDF资料SPI Flash API: https://docs.espressif.com/projects/esp-idf/zh_CN/v5.1/esp32s3/api-reference/peripherals/spi_flash/index.html
乐鑫ESP-IDF资料SPI Flash and External SPI RAM Configuration: https://docs.espressif.com/projects/esp-idf/zh_CN/v5.1/esp32s3/api-guides/flash_psram_config.html?highlight=psram
目录
- 简介
- Flash 功能支持情况
- 支持的 Flash 列表
- Flash 可选的功能
- 一些术语
- 如何配置Flash and PSRAM?
- SPI Flash and External SPI RAM的速度配合
简介
找到ESP32-S3的系统框图,可以看到ESP32支持QSPI的Flash和QSPI/OSPI的PSRAM。
Flash 功能支持情况
支持的 Flash 列表
Flash 可选的功能
一些术语
-
在ESP32-S3上,MSPI代表SPI0/1。SPI0和SPI1共用一个SPI总线。主Flash和PSRAM连接到MSPI外设。CPU通过Cache(缓存)访问它们。
-
在DDR模式,数据在正边和负边都采样。例如:如果Flash设置为80mhz和DDR模式,则Flash的最终速度为160mhz。这比Flash设置为120 Mhz和STR模式要快。
-
SPI 即传统的4线制spi,4线分别为cs,clk,di,do。
标准SPI为全双工,di只用于数据输入,do只用于数据输出;其余的spi均为半双工
DSPI 即双数据线的SPI,信号线包括cs,clk,d0,d1,d0,d1 分时复用输入和输出,clk的一个边沿可以发送/接收 2bit 数据
QSPI 即4数据线的SPI,信号线包括cs,clk,d0-d3,d0-d3 分时复用输入和输出,clk的一个边沿可以发送/接收 4bit 数据;
OSPI 即8数据线的SPI,信号线包括cs,clk,d0-d7,d0-d7 分时复用输入和输出,clk的一个边沿可以发送/接收 8bit 数据;
如何配置Flash and PSRAM?
打开menuconig/Serial flasher config,这是配置Flash的,可以看到如下页面。
SPI Flash and External SPI RAM的速度配合
这张表里以F8R8(Flash8M和PSRAM8M)为例,左边的Flash mode需要适配右边的PSRAM mode,如果不匹配就会报出下面的错误。
错误的line mode:
**Flash或者PSRAM选了OSPI,但是ESP32不支持