ESP32 S3:配置外部 Flash 和 PSRAM

1. 标准spi

主从都在自己的数据线上发送/接收数据,主机如果需要接收数据,则需要单独发一段数据才能触发从机应答,从而接收从机数据

  1. CPOL 时钟极性
CPOL =0 表示时钟空闲为低电平,下降沿采样

CPOL = 1表示时钟空闲为高电平 ,上升沿采样
  1. CPHA时钟相位

    CPHA = 0 表示从第一个跳变沿开始采样

    CPHA = 1 表示从第二个跳变沿开始采样

根据CPOL和CPHA可以组合成四种spi模式。这个一般需要根据从机适配

2. DUAL SPI 双线串行spi

数据线相比标准spi也是两根线,区别标准spi就是再发数据时,无论主从都可以同时使用两个线发送数据,速度比标准spi快一倍。但是由于这种发送数据模式,只能做半双工通讯。

DIO 方式:

在falsh数据操作时一般第一个字节是单线传输,后面的数据和地址都是双线传输

DOUT 方式:

只有在数据传输时采用双线传输,地址传输阶段用的标准spi传输。

3. Quad SPI 四线SPI

跟DUAL SPI相比数据线扩展到4根,意味着比DUAL SPI通讯速度快一倍,也只能用于半双工通讯

QOUT方式:

数据传输阶段采用四线传输,地址和指令传输阶段采用标准spi传输。

QIO方式:

指令阶段采用标准spi传输,数据和地址阶段采用四线传输。

QPI方式:

所有阶段,即指令地址数据阶段都采用四线传输。

4. esp32s3 外部flash和外部spram配置

  1. 首先明确自己的模块上硬件挂载的flash和ram是多大

    比如N8R2 表示8MBflash 2MB psram

  2. 去官网对应模块查询flash和spram是几线spi通讯

    https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/hw-reference/esp32s3/user-guide-devkitc-1.html

  查询出来N8R2对应的flash为4线spi spram为4线spi
  1. 去官网查询flash和ram对应的最高时钟
[https://docs.espressif.com/projects/esp-idf/zh_CN/stable/esp32s3/api-guides/flash_psram_config.html?highlight=ram](https://)

以我的模组为例,flash和spram都是四线spi,则查看下图表格

     当flash配置为A类型时,flash配置120MHZ时钟频率,此时psram只能配置A/C/D类型,即120MHZ或者40MHZ或者关闭

    当flash配置为B类型时,flash时钟配置80MHZ,此时psram只能配置B/C/D类型,即80MHZ或者40MHZ或者关闭

总结就是,flash配置完时钟之后psram的时钟只能跟flash时钟一样或者更低。

物联沃分享整理
物联沃-IOTWORD物联网 » ESP32 S3:配置外部 Flash 和 PSRAM

发表评论