在我的项目中,我正在使用Winbond W25Q64 64-MB Serial flash,当我阅读此串行闪存的数据表时,有两种类型:
SPI(W25Q64闪存ID: - 0xEF4017)和QPI(W25Q64FV闪存ID: - 0xEF6017)。
我非常了解SPI,但第一次听说QPI。所以我有一些问题 -
1. SPI和QPI之间的区别是什么?
2.我可以使用QPI通信类型Flash(使用SPI)吗?
3.QPI的主要特征是什么?什么是QPI(通信协议或其他)?
答案 0 :(得分:2)
QPI协议的说明是数据表的一部分(我已将链接添加到您的问题中)。
从那里的描述来看,它确实使用四条数据线用于I / O(与SPI相反,其中一条线指定用于输入而另一条线用于输出),因此将时钟周期(与标准SPI相比)保存为一个字节只能在2个周期内转移。与SPI模式相比,可用命令似乎也有所不同。
该芯片支持一些“扩展”SPI模式(称为双SPI和四SPI),其中更多数据线用于向主机发送数据。这些由标准SPI命令触发,但数据传输不同。请参阅数据表中的详细信息。
它与“标准”SPI不兼容,我不确定是否有任何支持该模式的通用MCU。它看起来类似于SD卡/ SDIO,但我不知道它(dis)的相似程度是多少。
是的,你可以。标准SPI(一个输入和一个输出数据线)似乎是默认接口。扩展SPI模式仅用于响应特定的SPI命令,并且必须通过相应的SPI命令明确启用QPI模式(参见第12页的图3)。
另外:
Quad SPI和QPI指令需要非易失性Quad 使能状态寄存器-2中的使能位(QE)。当QE = 1时, / WP引脚变为IO2,/ HOLD引脚变为IO3。
...
在发出“启用QPI”之前,需要将QE位设置为1 (38h)“将设备从标准/双/四SPI切换到QPI, 否则该命令将被忽略。当设备处于QPI模式时, QE位保持为1. QPI中的“写入状态寄存器”命令 模式不能将QE位从“1”更改为“0”。
优点是在相同的时钟频率下更快的数据传输。协议的详细信息在数据表中有详细描述,包括时序图等。