1.11.1_SPI_SPI协议介绍_P
2021-08-19 来源:eefocus
SPI主要有四根线,分别是信号线SCLK,主机输入从机输出MISO,主机输出从机输入MOSI,以及一个片选信号/CS。SPI通信还支持全双工通信,即可以同时接受和发送数据,因为MISO和MOSI是两条不同的线。
SPI同样支持连接多台设备,但是要分时操作,当操作某台设备时,将这个设备的片选引脚拉低表示选中,完成操作后再释放引脚。
所有设备的时钟线和两条数据线则是共用的,只是通过片选引脚来决定何时使用何设备。
SPI支持四种不同的传输模式,分别是SPI MODE0,1,2,3,我们经常使用的是MODE0和3,这是因为使用这两个模式时,都是在上升沿采样数据,可以不用过多的关注SCLK的电平。
SPI支持四种不同的传输模式,分别是SPI MODE0,1,2,3,我们经常使用的是MODE0和3,这是因为使用这两个模式时,都是在上升沿采样数据,可以不用过多的关注SCLK的电平。
CPOL:时钟极性选择,为0时表示SPI总线空闲时为低电平,为1表示空闲时为高电平;
CPHA:时钟相位选择,为0表示在SCLK第一个跳变沿时采样,为0表示在第二个跳变沿采样。
SPI Mode0:
CPOL和CPHA均为0,表示总线空闲电平为低电平,在第一个跳变沿采样,时序图如下所示,高位先传;
SPI Mode1:
CPOL=0,CPHA=1,表示总线空闲电平为低电平,在第二个跳变沿采样,时序如下。
SPI Mode2:
CPOL=1,CPHA=0,表示总线空闲电平为高电平,在第一个跳变沿采样,时序如下。
SPI Mode3:
CPOL=1,CPHA=1,表示总线空闲电平为高电平,在第二个跳变沿采样,时序如下。:
那么数据是怎么传输的呢?
答:假设我们想要传一个DATA,DATA=0x56=0b0101 0110,如果使用SPI Mode1,也就是CPOL = 1,CPHA = 1,也就是空闲时为高电平,在第二个跳变沿采样,那么可以推测时序如下:
在使用某个设备时,需要将这个设备的片选拉低,所以CS0位低电平,然后SCK在第二个跳变沿时采样,此时MOSI为低电平,表示bit7为1,然后第二个时钟周期SCK拉高,此时MOSI为高表示bit6为1,依次循环就将数据发送出去。
实际项目中,使用哪种Mode还要根据外接的设备决定,一般来说,外接设备使用MODE0和3,也就是在上升沿采样数据。
上一篇:1.10.7_I2C_测试_P
下一篇:1.13.2_高精度延时函数_P