【问题标题】:The use of CPOL/CPHA settings in SPI communicationSPI通信中CPOL/CPHA设置的使用
【发布时间】:2012-10-11 16:53:03
【问题描述】:

谁能给我现实生活中的例子,在 SPI 通信中的 4 种 CPOL/CPHA 配置模式有用吗?我了解它们的工作原理,但不知道何时使用它们。由于非标准实现,出于兼容性目的,我很快就阅读了一些参考,这是怎么回事?

谢谢

【问题讨论】:

    标签: embedded microcontroller spi serial-communication


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

        • 谢谢。但是为什么首先会有 4 种模式呢?什么协议设计决策导致了这种情况?为什么不是所有的 SPI 设备都使用一种模式?
        • 拜占庭:SPI 的前身只有一种 CPOL/CPHA 模式。当使用带上拉的开路 L 型驱动器时,SCK 负极性最好。并且当总线主控器单独供电时正极性,因为当主控器上电/断电时,SCK 不会出现毛刺。当 MISO 与 BUSY/READY 复用且 CPHA=0 需要在从机中少 1 个触发器时,CPHA=1 很有用。
        猜你喜欢
        • 1970-01-01
        • 2022-11-16
        • 2015-09-05
        • 2021-11-22
        • 1970-01-01
        • 2019-06-14
        • 1970-01-01
        • 2016-09-12
        • 1970-01-01
        相关资源
        最近更新 更多