【接口协议】05.SPI

【嵌入式八股】一、语言篇https://www.nowcoder.com/creation/manager/columnDetail/mwQPeM

【嵌入式八股】二、计算机基础篇https://www.nowcoder.com/creation/manager/columnDetail/Mg5Lym

【嵌入式八股】三、硬件篇(本专栏)https://www.nowcoder.com/creation/manager/columnDetail/MRVDlM

【嵌入式八股】四、嵌入式Linux篇https://www.nowcoder.com/creation/manager/columnDetail/MQ2bb0

SPI

SPI 基础

简介

SPI(Serial Peripheral Interface)串行外设接口,高速,全双工,同步的通信总线,四根线。

硬件连接

  • 多NSS独立片选方式
  • 菊花链方式

alt

引脚 含义
DO(MOSI) Master Output, Slave Input,
SPI主控用来发出数据,SPI从设备用来接收数据,输出引脚设置为推挽输出
DI(MISO) Master Input, Slave Output,
SPI主控用来发出数据,SPI从设备用来接收数据,输入引脚设置为浮空或上拉输入,从机不输出时为高阻态。
SCK Serial Clock,时钟
CS Chip Select,芯片选择引脚,NSS 信号线由高变低,是 SPI 通讯的起始信号。NSS 信号由低变高,是 SPI 通讯的停止信号,表示本次通讯结束,从机的选中状态被取消。

alt

alt

时序

  • 起始:CS从高到低
  • 终止:CS从低到高

alt

SPI的时钟极性CPOL和时钟相位CPHA可以分别为0或1,由此构成了四种组合:

CPOL CPHA 模式 含义
0 0 0 CLK初始电平为低电平,在第一个时钟沿采样数据
0 1 1 CLK初始电平为低电平,在第二个时钟沿采样数据
1 0 2 CLK初始电平为高电平,在第一个时钟沿采样数据
1 1 3 CLK初始电平为高电平,在第二个时钟沿采样数据

常用的是模式0和模式3,因为它们都是在上升沿采样数据,不用去在乎时钟的初始电平是什么,只要在上升沿采集数据就行。

IIC有效字节流数据第一个字节是寄存器地址,之后是读写的数据,使用的是读写寄存器模型

SPI用指令码加读写数据模型,发送指令字节的方式来读取,从机中有指令集对应,

代码

io模拟

void MySPI_Start(void)
{
	MySPI_W_SS(0);
}

void MySPI_Stop(void)
{
	MySPI_W_SS(1);
}

uint8_t MySPI_SwapByte(uint8_t ByteSend) //交换字节,发送的话就不需要读取返回值,接收的话就发送0XFF接收返回的数据。
{
	uint8_t i, ByteReceive = 0x00;
	
	for (i = 0; i < 8; i ++)
	{
		MySPI_W_MOSI(ByteSend & (0x80 >> i));
		MySPI_W_SCK(1);
		if (MySPI_R_MISO() == 1){ByteReceive |= (0x80 >> i);}
		MySPI_W_SCK(0);
	}
	
	return ByteReceive;
}

常见面试问题

SPI总线的工作频率

SPI是一种事实标准,由Motorola开发,并没有一个官方标准。已知的有的器件SPI已达到50Mbps。具体到产品中SPI的速率主要看主从器件SPI控制器的性能限制。

SPI最大传输速率受以下几个条件影响:

1)SPI的最大时钟频率;

2)CPU处理SPI数据的能力;

3)输出端驱动能力(PCB所允许的最大信号传输速率);

W25Qxx系列时钟频率:80MHz/160MHz(Dual SPI)/320MHz(Quad SPI)

SPI可以挂载多少个器件

独立片选方式:看GPIO引脚个数,不够也可以用译码器扩展

菊花链方式:看IO驱动能力,硬件方面考虑更多,会有信号延迟问题。

SPI是一种常见的串行通信协议,它通过主设备和多个从设备之间进行数据交换。在SPI菊花

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

【嵌入式八股】三、硬件篇 文章被收录于专栏

查阅整理上千份嵌入式面经,将相关资料汇集于此,主要包括: 0.简历面试 1.语言篇 2.计算机基础 3.硬件篇【本专栏】 4.嵌入式Linux (建议PC端查看)

全部评论
SPI引脚DI是不是写错了
点赞 回复 分享
发布于 2024-06-11 09:04 湖北

相关推荐

05-12 16:34
已编辑
东华理工大学 Java
Nasida:27届双非真的有实习吗
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
5
6
分享

创作者周榜

更多
牛客网
牛客企业服务