嵌入式硬件之SPI

SPI硬件连接

  • SCL : 时钟信号,only由主设备产生。
  • SDO : 主设备数据输出
  • SDI : 主设备数据输入
  • CS : 从设备选择,CS = 1选中使能。

SPI是一种全双工串行通信协议,以主从模式工作,没有地址的概念,时钟同步由SCLK来完成,主设备可以通过控制SCLK来控制数据传输快慢,甚至停止等。

SPI总线的SDO、SDI也需要接上拉电阻。

SPI协议

spi不像iic那样有固定的总线空闲状态,他的总线空闲状态和在SCLK什么状态下发送接收数据都是可以设置的
主要由CPOL和CPHA两个寄存器bit设置

  • CPOL = 0,串行同步时钟空闲状态为低电平
  • CPOL = 1,串行同步时钟空闲状态为高电平
  • CPHA = 0,在SCLK的第一个跳变沿,对数据采样,第二个跳变沿发送数据
  • CPHA = 1,在SCLK的第二个跳变沿,对数据采样,第一个跳变沿发送数据

SPI主模块和与之通信的外设备时钟相位和极性应该一致。
+ 如果由多个从设备,可以外接38译码器等硬件来选择从设备
+ 如果多个从设备CPOL,CPHA和主设备不一样,需要在切换从设备的时候改变主机的CPOL,CPHA值来保证顺利通讯。

需要注意的是主机的SDI模式需要跟从机SDO模式一样,主机的SDO模式需要跟从机SDI模式一样。

猜你喜欢

转载自blog.csdn.net/qq_33894122/article/details/81113494
今日推荐