1.11.1_SPI_SPI协议介绍_P

SPI通信协议通过SCLK、MISO、MOSI和片选信号实现全双工通信,支持多设备连接。四种SPIMode(0、1、2、3)由CPOL和CPHA定义,其中MODE0和3常用,因为它们在上升沿采样数据。数据传输时,如在SPIMode1下,会在第二个时钟跳变沿采样,依次传输数据位。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SPI主要有四根线,分别是信号线SCLK,主机输入从机输出MISO,主机输出从机输入MOSI,以及一个片选信号/CS。SPI通信还支持全双工通信,即可以同时接受和发送数据,因为MISO和MOSI是两条不同的线。

SPI同样支持连接多台设备,但是要分时操作,当操作某台设备时,将这个设备的片选引脚拉低表示选中,完成操作后再释放引脚。

所有设备的时钟线和两条数据线则是共用的,只是通过片选引脚来决定何时使用何设备。
在这里插入图片描述
SPI支持四种不同的传输模式,分别是SPI MODE0,1,2,3,我们经常使用的是MODE0和3,这是因为使用这两个模式时,都是在上升沿采样数据,可以不用过多的关注SCLK的电平。

SPI MODECPOLCPHA
000
101
210
311
  • 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,也就是在上升沿采样数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值