QSPI笔记

初次学习QSPI

硬件需要注意点

  1. QSPI的 CLK CS IO0 IO1 IO2 IO3 NSS线一定要做等长处理,如果无法做等长处理,回导致后续通讯速率降低,无法通讯等情况出现。如果出现数据错误等情况,先使用官方示例程序,检查是否通过,不通过再降低通讯速率,建议时钟线降低到12Mhz以下再测试。

资料:
QSPI单主机模式,可以在间接和内存映射2种模式下工作。

DDR:双数据速率(double data rate),即一个时钟周期内发送两个bit,因为使用了两个QSPI接口,所以同一个
SDR:

Quad SPI:四线SPI 接口描述

QSPI四种模式

/Standard SPI:标准SPI指令
/Dual SPI:二线SPI
/Quad SPI:四线SPI
/QSPI XIP 内存映射模式

帧格式(frame format)

Quad-SPI接口提供了一个完全可配置的帧格式,最大包含五个阶段并且每个阶段都可以完全配置(也就是说每个阶段的数据长度和数据线数完全可以独立配置)。
五个阶段分别为指令阶段、地址阶段、交替(可选)字节阶段、空指令阶段、数据阶段。一般情况下都是会有指令阶段。进行数据读写时一般包括指令、地址、数据阶段l;特殊情况下尤其是高速数据读写时需要设置空指令周期(和外部Flash芯片强相关)。

SDR与DDR区别

SDR模式

在SDR模式下,当 QSPI 驱动 QSPI_IO0,QSPI__IO1,QSPI__IO2,QSPI__IO3信号时,这些信号仅在 CLK 的下降沿发生转变

DDR模式 Double

在DDR模式下,当 QSPI 驱动 QSPI_IO0,QSPI__IO1,QSPI__IO2,QSPI__IO3信号时,这些信号在CLK 的上升沿和下降沿发生转变

间接模式

间接模式是指通过寄存器方式来访问外设,就跟我们操作串口外设一样。

间接模式用于读写、擦除操作;所有的操作都是通过Quad-SPI数据寄存器来执行,可以使用CPU也可以使用中断和DMA;也用于配置Quad-SPI Flash内存。
QSPI在同一时刻只能使用读取或者写入,只有标准模式下才可以使用接收和发送

传输的数据通过数据寄存器和FIFO。

自动轮询模式用于检测Flash内存中的状态寄存器的改变并产生中断,在检查擦除或者编程操作时特别有用(检查擦除或者编程是否完成)。

双 BANK(双 Flash)

双闪存就是将QSPI的两个 BANK 分别接一个 QSPI Flash,然后时钟公用,片选公用(也可以不公用),从而实现 8 线模式。

软件层面

注意点

  1. FLASH芯片在SPI模式下软件切换到QSPI状态下,需要等待1秒,一定要有这个时间等待,否则立马写入会不成功。