SPI

定义

SPI是一种串行外设设备接口(串行、同步、全双工),SPI接口主要应用在存储芯片、AD转换器以及LCD中。
SPI接口共有4根信号线,分别是:

设备选择线、时钟线、串行输出数据线、串行输入数据线。
在这里插入图片描述
SCLK:时钟信号,由主设备产生
MOSI :读数据,主设备数据输入,从设备数据输出
MOSO :写数据,主设备数据输出,从设备数据输入
CSS:从设备使能信号,由主设备控制,不同设备使能信号不同

工作模式

在SPI操作中,最重要的两项设置就是时钟极性(CPOL或UCCKPL)和时钟相位(CPHA或UCCKPH)。
时钟极性设置时钟空闲时的电平:
CPOL=0,时钟空闲时低电平
CPOL=1,时钟空闲时高电平

时钟相位设置读取数据和发送数据的时钟沿:
CPHA=0,SCK的第一(奇数)边沿进行数据位采样、锁存
CPHA=1,SCK的第二(偶数)边沿进行数据位采样、锁存

SPI工作模式介绍:
在这里插入图片描述
在主设备这边配置SPI接口时钟的时候一定要弄清楚从设备的时钟要求,因为主设备这边的时钟极性和相位都是以从设备为基准的。因此在时钟极性的配置上一定要搞清楚从设备是在时钟的上升沿还是下降沿接收数据,是在时钟的下降沿还是上升沿输出数据。

读写数据示例

SPI选用工作模式0,写数据示例(根据外设决定):
主设备设置起始位1,01操作码(写数据),7位地址(外设决定),数据位

SPI选用工作模式0,读数据示例(根据外设决定):
主设备设置起始位1,10操作码(读数据),7位地址(外设决定),数据位

SPI与IIC的区别

在这里插入图片描述

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐