【问题标题】:What is the difference between SPI and QPI (in embedded)?SPI 和 QPI(嵌入式)有什么区别?
【发布时间】:2018-08-17 14:47:21
【问题描述】:

在我的项目中,我使用Winbond W25Q64 64-MB Serial flash,当我阅读此串行闪存的数据表时,有两种类型:

SPI(W25Q64 FLASH ID:- 0xEF4017) 和 QPI(W25Q64FV FLASH ID:- 0xEF6017)。

我非常了解 SPI,但我第一次听说 QPI。所以我有一些问题-

1.SPI和QPI有什么区别?

2.我可以使用QPI通信类型Flash(使用SPI)吗?

3.QPI的主要特点是什么,什么是QPI(通信协议或其他)?

【问题讨论】:

  • en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus 进一步扩展了 quad SPI,一些设备支持“quad Everything”模式,其中所有通信都通过 4 条数据线进行,包括命令。这被称为“QPI”
  • 该页面上最重要和最相关的声明“SPI 总线是事实上的标准。但是,缺乏正式的标准反映在各种协议选项中。”一条双向数据线到任一方向的多条数据线,等等,由于各种原因,这对各种人都很有用,添加更多数据线是提高带宽的一种非常简单的方法。
  • 就像术语 SPI 一样,我不会坚持使用 QPI 术语,就像任何 SPI 一样,您阅读数据表并查看两侧的时序图,永远不要假设它们符合某些标准,他们经常不这样做。

标签: microcontroller spi microchip nxp-microcontroller


【解决方案1】:
  1. QPI 协议的描述是数据表的一部分(我已将链接添加到您的问题中)。

    从那里的描述来看,它确实使用四根数据线进行 I/O(与 SPI 相比,其中一根线指定输入,另一根线用于输出),因此将时钟周期(与标准 SPI 相比)节省为一个字节只能在 2 个周期内传输。与 SPI 模式相比,可用命令似乎也有所不同。

    该芯片支持一些“扩展”SPI 模式(称为 Dual 和 Quad SPI),其中更多的数据线用于向主机发送数据。这些由标准 SPI 命令触发,但数据传输不同。请参阅数据表中的详细信息。

    它与“标准”SPI不兼容,我不确定是否有任何常见的MCU支持这种模式。它看起来类似于 SD 卡/SDIO,但我不知道它有多少(不)相似。

  2. 是的,你可以。标准 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”。

  3. 优势是在相同时钟频率下的数据传输速度更快。数据表中详细描述了协议的详细信息,包括时序图等。

【讨论】:

  • 谢谢@martin,这意味着我使用标准 SPI 协议写入和读取数据。当我编写命令和读取设备 ID 时,它工作正常。
  • Microchip 的较新设备,例如 MIPS Pic32mk/mz 支持 QPI。
猜你喜欢
  • 1970-01-01
  • 2014-11-10
  • 1970-01-01
  • 2019-10-21
  • 2020-09-28
  • 1970-01-01
  • 2015-07-26
  • 2019-10-28
  • 2014-01-14
相关资源
最近更新 更多