stm32入门教程--SPI协议3 超详细!!!

简介

寻址方式、通信过程

极性和相位

SPI总线由四种不同的工作模式,取决于极性(CPOL)和相位(CPHL)这两个因素

CPOL表示SCLK(时钟线)空闲时的状态

CPOL=0,空闲时SCLK为低电平

CPOL=1,空闲时SCLK为高电平

CPHA表示采样时刻

CPHA=0,每个周期的第一个时钟沿采样

CPHA=1,每个周期的第二个时钟沿采样

详解

CPOL(极性)=0,CPHA(相位)=0

图中默认电平为低电平,即CPOL为0,

在通信开始时往数据线上发送一位数据(---),

紧接着时钟线从低电平变为高电平(),接收器就可以把刚才这位数据读走

再往下,由高电平变为低电平时(),再发送第二位数据,

紧接时钟线由低电平变为高电平(),接收器就可以读走第二位数据

一共循环八次就可以完成一个字节数据的发送。

CPOL(极性)=0,CPHA(相位)=1

图中默认电平为低电平,即CPOL为0,CPHA为1,上升沿时发送数据,

在通信开始时,SCLK(时钟线)由低电平变为高电平()发送数据,

紧接着时钟线从高电平变为低电平(),接收器就可以把刚才这位数据读走

再往下,由低电平变为高电平时(),再发送第二位数据,

紧接时钟线由高电平变为低电平(),接收器就可以读走第二位数据

一共循环八次就可以完成一个字节数据的发送。

CPOL(极性)=1,CPHA(相位)=0

图中默认电平为高电平,即CPOL为1,

在通信开始时往数据线上发送一位数据(---),

紧接着时钟线从高电平变为高电平(),接收器就可以把刚才这位数据读走

再往下,由低电平变为高电平时(),再发送第二位数据,

紧接时钟线由高电平变为低电平(),接收器就可以读走第二位数据

一共循环八次就可以完成一个字节数据的发送。

CPOL(极性)=1,CPHA(相位)=1

图中默认电平为高电平,即CPOL为1,CPHA为1,下降沿时发送数据,

在通信开始时,SCLK(时钟线)由高电平变为低电平()发送数据,

紧接着时钟线从低电平变为高电平(),接收器就可以把刚才这位数据读走

再往下,由高电平变为低电平时(),再发送第二位数据,

紧接时钟线由高电平变为低电平(),接收器就可以读走第二位数据

一共循环八次就可以完成一个字节数据的发送。

需要说明的是,对于一个特定的从设备来说,一般在出厂时就会将其设计为某种特定的工作模式;我们在使用该设备时就必须保证主设备的工作模式和从设备保持一致,否则是无法进行通信的;所以一般我们需要对主设备的CPOL和CPHA进行配置

IIC和SPI的异同

相同点

1、均采用串行、同步的方式

2、均采用TTL电平,传输距离和应用场景类似

3、均采用主从方式工作

不同点

1、IIC为半双工,SPI为全双工

2、IIC有应答机制,SPI无应答机制

3、IIC通过向总线广播从机地址来寻址,SPI通过向对应从机发送使能信号来寻址

4、IIC的时钟极性和时钟相位固定,SPI的时钟极性和时钟相位可调

相关推荐
惜.己2 小时前
Jmeter中的断言(二)
测试工具·jmeter·1024程序员节
西电研梦11 小时前
考研倒计时30天丨和西电一起向前!再向前!
人工智能·考研·1024程序员节·西电·西安电子科技大学
惜.己12 小时前
Jmeter中的断言(四)
测试工具·jmeter·1024程序员节
·云扬·19 小时前
Java IO 与 BIO、NIO、AIO 详解
java·开发语言·笔记·学习·nio·1024程序员节
网安_秋刀鱼1 天前
PHP代码审计 --MVC模型开发框架&rce示例
开发语言·web安全·网络安全·php·mvc·1024程序员节
HUODUNYUN1 天前
小程序免备案:快速部署与优化的全攻略
服务器·网络·web安全·小程序·1024程序员节
惜.己2 天前
Jmeter的后置处理器(二)
测试工具·github·1024程序员节
惜.己2 天前
Jmeter中的断言(一)
测试工具·jmeter·1024程序员节
cainiao0806052 天前
《物理学进展》
1024程序员节·核心期刊·知网期刊·职称评审
FFDUST2 天前
C++ —— string类(上)
c语言·开发语言·数据结构·c++·stl·1024程序员节