SPI协议解析
SPI是串行外设接口(Serial Peripheral Interface)的缩写,由Motorola公司开发,SPI是同步四线制高速的全双工同步通讯总线。
和I2C不同的是,spi依靠片选线来选择设备,这就导致spi比i2c电路上的复杂,需要的资源也更多,每个设备都要有一个唯一的片选线。
spi四根总线的介绍:
SCLK:时钟总线,由主机发出
MISO(SDI):Master input,Slave output,主入从出,即从机发送数据,主机接收数据。
MOSI(SDO):Master output,Slave input,主出从入,即主机发送数据,从机接收数据。
SSx:片选线
SPI四种工作模式
SPI有四种工作模式,主机用何种工作模式,需要根据从机来配置而并不是主机自己来决定的。四种工作模式由时钟极性(CPOL)和时钟相位(CPHA) 来决定。
CPOL=0,表示当时钟为低电平时处于空闲态
CPOL=1,表示当时钟为高电平时处于空闲态
CPHA=0,表示数据采样是在第1个边沿,数据发送在第2个边沿
CPHA=1,表示数据采样是在第2个边沿,数据发送在第1个边沿
模式0:CPOL = 0,CPHA = 0 SCLK平时为低电平,在SCLK的上升沿采样数据,下降沿输出数据 ;
模式1:CPOL = 0,CPHA = 1 SCLK平时为低电平,在SCLK的上升沿输出数据,下降沿采样数据;
模式2:CPOL = 1,CPHA = 0 SCLK平时为高电平,在SCLK的上升沿输出数据,下降沿采样数据;
模式3:CPOL = 1,CPHA = 1 SCLK平时为高电平,在SCLK的上升沿采样数据,下降沿输出数据;