首页/文章/ 详情

SPI时序,看不懂你打我

1年前浏览511

一、SPI主从通信:


SPI的基本结构相当于两个8位移位寄存器的首尾相接,构成16位的环形移位寄存器,从而实现了主机与从机的数据交换;


二、SPI通讯模式


SPI有4种不同的传输时序,取决于时钟极性CPOL和时钟相位CPHA的组合。

CPHA是用来控制数据是在第一个跳变沿还是第二个跳变沿采集的


通过上图可以看到:

CPHA=0的时候,数据是在第一个跳变沿的时候就会被采集

CPHA=1的时候,数据是在第二个跳变沿的时候才会被采集

那问题来了,到底是上升沿还是下降沿采集?

这个就由CPOL来决定了:

CPOL=1的时候是上升沿采集。CPOL=0的时候是下降沿采集

除此以外,CPOL还决定了我们时钟线SCLK空闲时的状态。

CPOL=0的时候表示SCLK在空闲时为低电平。

CPOL=1的时候表示SCLK在空闲时为高电平

Ok,明白了这个,我们再分析4种模式的时序图

1.模式0(CPOL=0 CPHA=0)

CPOL = 0:时钟线空闲时是低电平,第1个跳变沿是上升沿,第2个跳变沿是下降沿

CPHA = 0:数据在第1个跳变沿(上升沿)采样

时序图如下:

2.模式1(CPOL=0 CPHA=1)

CPOL = 0:空闲时是低电平,第1个跳变沿是上升沿,第2个跳变沿是下降沿

CPHA = 1:数据在第2个跳变沿(下降沿)采样

时序图如下:

3.模式2(CPOL=1 CPHA=0)

CPOL = 1:空闲时是高电平,第1个跳变沿是下降沿,第2个跳变沿是上升沿

CPHA = 0:数据在第1个跳变沿(下降沿)采样

时序图如下:

4.模式3(CPOL=1 CPHA=1)

CPOL = 1:空闲时是高电平,第1个跳变沿是下降沿,第2个跳变沿是上升沿

CPHA = 1:数据在第2个跳变沿(上升沿)采样

时序图如下:

三、示例分析


实际芯片的Datasheet中,大部分是不会给出SPI时序图工作模式,此时需要根据时钟和数据读取方式判断工作模式。



从CLK看支持Mode 0,空闲时低电平,第一个上升沿采样。


时序分析如下:

  1. CS拉低,开始通信;

2. CLK引脚上出现脉冲,在脉冲的边沿上,I/O引脚开始脱离高阻态,最多占用一个时钟周期;

3. MOSI引脚发送指令0x0Bh,MISO引脚处于高阻态,占用八个时钟周期;

4. MOSI引脚按照大端序发送24位地址,先发送高字节,MISO引脚处于高阻态,共占用24个时钟周期;

5. MOSI和MISO均进入高阻态,等待八个时钟周期;

6. MOSI进入空闲,MISO上开始出现数据脉冲,在该芯片上,数据按照写入的顺序读出,读出N个字节,占用N*8个时钟周期;

7. CS拉高,MOSI/MOSI进入高阻态,CLK引脚回到空闲电平,通信结束。

来源:EEDesign
芯片通信控制SCL
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2025-07-16
最近编辑:1年前
EE小新
硕士 签名征集中
获赞 91粉丝 120文章 788课程 1
点赞
收藏
作者推荐
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈