为什么SPI通信中提供了不同的模式?

时间:2017-04-01 09:23:06

标签: protocols mode spi

我正在通过互联网阅读各种文档,并找到一些有关SPI协议如何工作的数据和通信机制。 但我无法找到SPI通信中分离模式背后的逻辑意味着为什么SPI通信中提供了四种模式?

2 个答案:

答案 0 :(得分:1)

四种模式由“时钟极性(CPOL)”和“时钟相位(CPHA)”的四种组合组成。




 模式0  - > CPOL = 0,CPHA = 0
模式1  - > CPOL = 0,CPHA = 1
模式2  - > CPOL = 1,CPHA = 0
模式3  - > CPOL = 1,CPHA = 1
  




模式0 - 由于时钟极性为0,这意味着当没有数据传输时,时钟将因此,Idle为低。
由于时钟相位为0,数据将在时钟周期的前沿采样。





模式1 - 由于时钟极性为0,这意味着当没有数据传输时,时钟将被下拉到0.因此空闲为低。
由于时钟相位为1,数据将在尾随时采样时钟周期的边沿。





模式2 - 由于时钟极性为1,这意味着当没有数据传输时,时钟将被上拉至1.因此空闲为高。
由于时钟相位为0,数据将在时钟的前沿采样。





模式3 - 由于时钟极性为1,这意味着当没有数据传输时,时钟将被上拉至1.因此空闲为高。
由于时钟相位为1,数据将在时钟周期的后沿采样e。





请按照链接< / a>了解时钟图。

&#xA;&#xA;

还要记住并非所有SPI设备都支持所有模式。因此,您需要查看器件数据手册以找出模式,并在与该器件通信时,首先需要通过编程相关的主机寄存器来设置正确的模式,然后开始通信。

&#xA;

答案 1 :(得分:0)

根据https://www.corelis.com/education/tutorials/spi-tutorial/

时钟极性 (CPOL) 和时钟相位 (CPHA) 可以指定为“0”或“1”,以形成四种独特的模式为主从之间的通信提供灵活性,如图所示2.

现在提供灵活性我不太清楚。我无条件的猜测是,某些设备能够/设计为比其他设备响应更快。因此,不同的模式。 http://dlnware.com/theory/SPI-Transfer-Modes 处的描述强化了(对我而言)这个结论。

我只是一个不合格的假设。