SPI通信协议

一、SPI通信协议跟I2C通信协议的对比

二、SPI的四根通信线

三、SPI工作示意图

上面这图可以大概理解为两个寄存器在时钟的配合下交换数据,切换边沿是指两个寄存器的数据在MOSI/MISO线上,采样边沿是指在MOSI/MISO的数据进入寄存器。

其中有两个重要参数:CPOL,CPHA。CPOL可以理解为SCK的起始电平,0为低电平,1为高电平。

CPHA可以理解为数据在第几个边沿采样,CPHA=0为第一个边沿采样(即数据进入寄存器,SCK起始信号为第一个边沿采样),CPHA=1为第二个边沿采样,如模式0 CPOL=0,CPHA=0,起始SCK为低电平,在SCK为低电平时,数据进入寄存器,看时序图,在SS发出起始信号后,SCK并未改变,但是寄存器已经将数据放到MISO/MOSI上了。模式1 CPOL=0,CPHA=1,可以理解为SCK起始为低电平,寄存器将数据放到MISO/MOSI线上,等SCK上升沿时为第二个边沿采样,这时数据进入寄存器。模式2、模式3以此类推。

另外需要注意的是MISO跟MOSI的起始,终止时序图不同,这是因为避免多个从设备同时驱动MISO线导致信号冲突(短路风险)。开始前跟结束MISO为高阻态,高阻态相当于断开电路(阻抗极高,约兆欧级),此时MISO线既不输出高电平也不输出低电平,由外部上拉电阻或主设备控制电平。

模式0时序图:

软件SPI读写W25Q64例子,以模式0为例子

根据时序图一一对应,主要是看时序图

交换单个字

利用循环交换一个字节

优化

W25Q64模块

需要注意的点:写入不能跨页写入,当超过当前页,会覆盖当前页初始的数据。写前验证busy跟写后验证busy的区别,写入前应擦除内存,不然得到的数据是当前数据与上写入的数据

写后验证省略时间的意思是"当写入操作后 没有紧接的依赖操作(如读取、新的写入),且系统能容忍短暂延迟时,可以省略写后验证以节省时间。"

W25Q64的结构

跨页写入数据:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值