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的时钟极性和时钟相位可调

相关推荐
技术专家4 小时前
Stable Diffusion系列的详细讨论 / Detailed Discussion of the Stable Diffusion Series
人工智能·python·算法·推荐算法·1024程序员节
学传打活3 天前
古代汉语是源,现代汉语是流,源与流一脉相承。
微信公众平台·1024程序员节·汉字·中华文化
学传打活8 天前
【边打字.边学昆仑正义文化】_19_星际生命的生存状况(1)
微信公众平台·1024程序员节·汉字·昆仑正义文化
unable code15 天前
[HNCTF 2022 WEEK2]ez_ssrf
网络安全·web·ctf·1024程序员节
unable code16 天前
[NISACTF 2022]easyssrf
网络安全·web·ctf·1024程序员节
unable code17 天前
BUUCTF-[第二章 web进阶]SSRF Training
网络安全·web·ctf·1024程序员节
开开心心就好18 天前
进程启动瞬间暂停工具,适合调试多开
linux·运维·安全·pdf·智能音箱·智能手表·1024程序员节
仰泳之鹅19 天前
【51单片机】第一课:单片机简介与软件安装
单片机·嵌入式硬件·51单片机·1024程序员节
海海不瞌睡(捏捏王子)19 天前
C#知识点概要
java·开发语言·1024程序员节
小浣熊熊熊熊熊熊熊丶20 天前
飞牛NAS 安装 Teslamate 教程(docker版)
1024程序员节