SPI通信协议详解


介绍SPI

SPI由时钟线、主机发送线、主机接收线、从机选择线(一个或多个)组成,拥有高速的速率,使用比较简单,但是需要的线更多,更容易造成资源的浪费。
四根通讯线的命名在不同的地方可能会有差异,需要甄别。
在这里插入图片描述

硬件电路

主机与从机通信线对应,对于多从机发送时,为了避免冲突,当从机的SS高电平(未被选中时)设为高阻态,选中时配置为推挽输出
在这里插入图片描述

移位示意图

SPI的数据收发原理如下:波特率发生器产生一个上升沿,通过时钟线影响,主机与从机的移位寄存器都向左(高位)移位一位,然后把数据保存到对应的数据寄存器中,然后波特率产生下降沿,主机与从机的移位寄存器把数据寄存器的数据取出,依次8次完成一个字节的数据的交换。当想只发送或接收数据,就时另一个移位寄存器发送一个特定的字节当做没有内容即可。
在这里插入图片描述

SPI时序

开始与结束时序单元

数据交换期间ss都为低电平
在这里插入图片描述

交换字节时序单元

可以通过配置CPOL、CPHA来确定这个时序的模式。
MISO的中间高度的线表示高阻态。

模式0(最常用)

这里对比模式1来理解,时钟相位提前,第一个上升沿就要移入数据,所以在时钟线产生上升沿之前就要先移出一位数据,才能在第一个上升沿移入数据,因此在最后一个时钟线下降沿之后要提前把下一个字节的最高位放入,如果是最后一位也要放入一个特定的数据。
在这里插入图片描述

模式1

这个模式与上面移位示意图所讲的时序一致
在这里插入图片描述

模式2

对比与模式0颠倒了时钟线
在这里插入图片描述

模式3

对比与模式1颠倒了时钟线
在这里插入图片描述

发送时序

在这里插入图片描述

指定地址写

由于使用的W25Q64外设内存大,需要指定3个字节的地址
在这里插入图片描述

指定地址读

在这里插入图片描述


  • 9
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值