在SPI通信中使用CPOL / CPHA设置

时间:2012-10-21 20:37:58

标签: embedded microcontroller spi serial-communication

有没有人能给我一些实际的例子,其中SPI通信中的4种CPOL / CPHA配置模式是有用的吗?我理解他们是如何工作但却不知道何时使用它们。由于非标准的实现,我很快就读了一些关于兼容性的参考,这是怎么回事?

由于

3 个答案:

答案 0 :(得分:9)

SPI接口允许在两条线路上同时发送和接收数据(MOSI和MISO)。时钟极性(CPOL)和时钟相位(CPHA)是定义SPI总线使用的时钟格式的主要参数。根据CPOL参数,SPI时钟可以反相或不反相。 CPHA参数用于改变采样阶段。如果CPHA = 0,则在前导(第一)时钟沿上对数据进行采样。如果CPHA = 1,则数据在尾随(第二个)时钟沿采样,无论该时钟边沿是上升还是下降。

答案 1 :(得分:2)

我有一块使用SPI连接闪存,实时时钟和加速度计的电路板。这些设备的数据表均指定了CPOL / CPHA的不同设置。因此,当微控制器打开到特定器件的SPI接口时,它会为该器件适当地配置SPI控制器。我不认为这四种不同模式有任何重要意义。您只需使用您要与之交互的设备指定的模式。某些设备可能在多种模式下工作。在这种情况下,请使用方便的模式。

答案 2 :(得分:2)

让我试着解决为什么引入4种模式的问题。我不能提供任何确凿的证据,但我相信这是一个可能的解释:

首先 - SPI非常简单,它只是串行发送一些位流,具有独立的时钟和数据线,SPI模式控制时钟极性和相位。鉴于SPI的简单性,例如,您需要实现SPI从设备是一个串行移位寄存器,如74HC595(参见sample application)。

现在,虽然SPI设备制造商显然已经同意普遍使用的一种模式,但我认为引入了其他模式以简化与简单移位寄存器的接口。有许多可用的,有关时钟极性/相位的各种要求 - SPI模式可以更容易地连接它们而无需任何胶合逻辑。