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