SPI(Serial Peripheral Interface)串行外设接口

1 SPI时钟信号的相位与极性

SPI接口由CPOL和CPHA设置四种不同传输格式的时序。其中:

CPOL(Clock Polarity)时钟极性

CPHA(Clock Phase)时钟相位

CPOL决定时钟信号SCK的有效脉冲方式 0:表示空闲状态时,SCK保持低电平;1:表示空闲状态时,SCK保持高电平;

CPHA决定数据线MOSI、MISO什么时候输出数据或什么时候采集数据 0:表示数据采样从第一个时钟边沿开始;1:表示数据采样从第二个时钟边沿开始。

一 (CP0L=0;CPHA=0):

在这里插入图片描述
此方式下,空闲状态SCK处于低电平;数据采样是在第1个边沿,也就是SCK电平到高电平的跳变,由图可以看出每一个上升沿到来之前数据已经准备好,所以上升沿进行数据采集;同时可以看出SCK从高电平向低电平跳变时进行数据发送,即下降沿进行数据发送。

二 (CPOL=1;CPHA=0):

在这里插入图片描述此方式下,空闲状态SCK处于高电平;数据采样是在第1个边沿,也就是SCK电平到低电平的跳变,由图可以看出每一个下降沿到来之前数据已经准备好,所以下降沿进行数据采集;同时可以看出SCK从低电平向高电平跳变时进行数据发送,即上升沿进行数据发送。

三 (CPOL=0;CPHA=1):

在这里插入图片描述
此方式下,空闲状态SCK处于低电平;数据发送是在第一个边沿,也就是SCK电平到高电平的跳变,由图可以看出每个上升沿到来之前数据还未准备好,所以上升沿进行数据发送;同时可以看出当下降沿到来时数据已经准备完成,可以进行数据采集,所以下降沿进行数据采集。

四 (CPOL=1;CPHA=1):

在这里插入图片描述
此方式下,空闲状态SCK处于高电平;数据发送是在第一个边沿,也就是SCK电平到低电平的跳变,由图可以看出每一个下降沿到来之前数据还未准备好,所以下降沿进行数据发送;同时可以看出当上升沿到来时数据已经准备完成,可以进行数据采集,所以上升沿进行数据采集。

2 总结:数据与时钟的相位关系表

CPOL/CPHA的设定第一位数据的输出其它位的输出数据采样
CPOL=0,CPHA=0在第一个SCK上升沿之前SCK下降沿SCK上升沿
CPOL=1,CPHA=0在第一个SCK下降沿之前SCK上升沿SCK下降沿
CPOL=0,CPHA=1第一个SCK上升沿SCK上升沿SCK下降沿
CPOL=1,CPHA=1第一个SCK下降沿SCK下降沿SCK上升沿

3 数据传输分析

在这里插入图片描述
主机移位寄存器中的一个数据通过MOSI传到从机移位寄存器(即写操作);同时,从机移位寄存器中的一个数据通过MISO传到主机移位寄存器(即读操作);读写操作同时进行。

1.如果主机只进行写操作,主机只需忽略接收到的字节

2.如果主机要读取从机的一个字节,必须先发送一个空字节0xFF,才能使从机中的数据移到主机。

注:所谓的空字节,SPI通信都是由主机发起的,想要从从机读取数据,就必须给它提供时钟,而SPI主机产生时钟的方法,一般都是通过SPI_DR寄存器写值,这里写入0xFF表示要发送0xFF这个数据了,SPI就会产生SCK,输出给从机,从而给从机提供时钟。

原文链接:https://www.cnblogs.com/dongry/p/9921216.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值