QSPI
QSPI 32 MHz速率传输异常
- 问题描述
采用Polling/Interrupt方式,QSPI在32 MHz速率下无法正确传输数据。
采用DMA方式,QSPI 在32 MHz速率下进行8-bit/16-bit数据位宽传输时无法正确传输数据。
- 问题原因
IP设计限制。在中断或DMA模式下,发生MCU处理效率低或系统内部出现总线资源竞争现象时,出现QSPI TX FIFO数据消耗为空且无法及时填入新数据,QSPI控制器会自动释放CS型号,导致再次装填数据到QSPI TX FIFO时,QSPI线上传输时序混乱。在DMA模式的接收过程中,当系统内部总线资源竞争使得QSPI RX FIFO数据无法及时被DMA搬运至SRAM,QSPI控制器出现RX FIFO Overflow,继而出现接收数据错误。
- 问题影响
传输数据异常,无法获得正确的数据。
- 推荐方案
为了确保QSPI数据传输的稳定性,需要选择DMA传输方式,并根据不同的数据位宽,选择合适的传输速率,如下表所示。
数据位宽 | 传输速率 | QSPI在DMA下传输数据 |
---|---|---|
8 bit | 8 MHz | 成功 |
16 bit | 16 MHz | 成功 |
32 bit | 32 MHz | 成功 |
说明:
因GR551x QSPI传输为大端方式,GR551x系统总线采用小端方式,会存在数据倒序现象,需在应用层对数据进行处理。
QSPI非单线方式下,Mode1和Mode3模式无法使用
- 问题描述
使用QSPI时,非单线方式(Dual或Quad方式等)下无法使用Mode1和Mode3。
- 问题原因
IP设计限制,在Dual和Quad模式下,无法支持QSPI Mode1和Mode3传输方式。
- 问题影响
传输数据异常,无法获得正确的数据。
- 推荐方案
使用非单线方式(Dual或Quad方式)传输数据时,推荐使用Mode0或Mode2。
说明:Mode0 ~ Mode3为SPI的4种标准模式,用于配置不同的时钟沿和相位。