SPI接口工作模式分析-主从器件对比

SPI接口主从器件工作模式必须设置为一样吗??

SPI接口有4种模式,因为没有同步握手等这些动作,故主从器件通信的时候,双方的模式一定要设置好。

SPI相关的协议介绍,请参考:SPI总线学习

  • 最开始的时候我始终不理解为什么主从器件的模式一定要一致,等我耐心看下来之后,发现,是必须要一致,否则会无法通信。

解释如下(首先借一张图):

SPI接口工作模式分析-主从器件对比_第1张图片
SPI接口工作模式分析-主从器件对比_第2张图片
  • 如图,CPOL指的是通信时候的空闲状态时sck是高电平还是低电平。sck为1时为高电平,sck为0时为低电平。
  • CPHA指的是在时钟的第一个时钟沿采样数据,还是在第二个时钟沿采样数据。CPHA为0时是在第一个沿(前沿)采样,与之对应的是在第二个沿输出;为1时是在第二个沿(后沿)采样,与之对应的是在第一个沿输出。

需要注意的是,有些资料说CPHA为0时是上升沿采样,CPHA为1时是在下降沿采样。这样说是不准确的。因为究竟是上升沿还是下降沿和CPOL有关,即空闲状态,sck是高电平还是低电平。

  • 因为从属器件需要用主器件产生的时钟,故主从器件的CPOL必须设置相同,否则会造成误解,或者由于对空闲状态的定义不一致而相冲突(如主器件产生空闲状态为0的sck,从器件始终认为总线不空闲)。

  • 而CPHA我是这样理解:
    a.对从器件的MOSI而言,如果是在第一个时钟沿采样,那么肯定会在第二个时钟沿在线MISO上输出数据。一般从数据输出到稳定是有个状态的,故主器件只能在半个时钟周期之后的第一个时钟沿采样数据。
    b.对于主器件的MOSI、MISO是一样的道理。

综上,主从器件的模式必须设置为一样才能正常工作。后面的话,希望自己找个时间测试下自己的理论。

你可能感兴趣的:(SPI接口工作模式分析-主从器件对比)