谁能给我现实生活中的例子,说明 SPI 通信中的 4 种 CPOL/CPHA 配置模式有用吗?我了解它们的工作原理,但不知道何时使用它们。由于非标准实现,出于兼容性目的,我很快就阅读了一些参考,这是怎么回事?
谢谢
谁能给我现实生活中的例子,说明 SPI 通信中的 4 种 CPOL/CPHA 配置模式有用吗?我了解它们的工作原理,但不知道何时使用它们。由于非标准实现,出于兼容性目的,我很快就阅读了一些参考,这是怎么回事?
谢谢
SPI 接口允许在两条线路(MOSI 和 MISO)上同时发送和接收数据。时钟极性 (CPOL) 和时钟相位 (CPHA) 是定义 SPI 总线使用的时钟格式的主要参数。根据 CPOL 参数,SPI 时钟可能是反相的或非反相的。CPHA 参数用于改变采样相位。如果 CPHA=0,则在前导(第一个)时钟沿采样数据。如果 CPHA=1,则数据在后沿(第二个)时钟沿采样,无论该时钟沿是上升沿还是下降沿。
我有一块使用 SPI 连接闪存、实时时钟和加速度计的板。这些器件的数据表分别为 CPOL/CPHA 指定了不同的设置。因此,当微控制器打开特定设备的 SPI 接口时,它会为该设备适当地配置 SPI 控制器。我认为这四种不同的模式没有什么意义。您只需要使用您打算与之交互的设备指定的模式。某些设备可能在不止一种模式下工作。在这种情况下,请使用方便的模式。
让我尝试解决为什么要引入 4 种模式的问题。我无法提供任何确凿的证据,但我相信这是一个可能的解释:
首先 - SPI 非常简单,它是关于串行发送一些比特流,具有单独的时钟和数据线,SPI 模式控制时钟极性和相位。鉴于 SPI 的简单性,例如,实现 SPI 从设备所需的只是一个串行输入移位寄存器,如74HC595(参见示例应用程序)。
现在,虽然 SPI 设备制造商显然可以同意一种普遍使用的模式,但我相信引入了其他模式以简化与简单移位寄存器的接口。有许多可用的,对时钟极性/相位有各种要求 - SPI 模式可以更容易地连接它们而无需任何胶合逻辑。