一文读懂SPI串行外设接口

一文读懂SPI串行外设接口,第1张

SPI总线系统是一种同步串行外设接口,它可以使MCU与各种外围设备以串行方式进行通信以交换信息。正是由于有了通信方式,我们才能够通过芯片控制各种各样的外围器件,实现很多“不可思议”的现代科技。这里将以SPI为题,从编程角度来介绍SPI总线

1、SPI协议简介

图 1 SPI接口

SPI 是英语 Serial Peripheral interface 的缩写,顾名思义就是串行外围设备接口。是 Motorola首先在其 MC68HCXX 系列处理器上定义的。SPI是一种高速的,全双工,同步的通信总线,由于其简单易用的特性,现在很多的nor flash和nandflash芯片集成了这种通信协议,也就是我们说的SPI flash。

2、应用及现状

图 2 SPI应用

SPI flash 芯片应用十分广泛,在很多电子产品上面或多或少都有它的踪影,如手机、数码、液晶显示器、机顶盒、电脑主板等。最近,有消息透露,苹果新手机iPhone 8将导入采用编码型快闪存储(NOR Flash),让已经处于缺货状态的NOR芯片更为恼火,另外据存储业者透露,今年NOR芯片供给缺口将可能扩大至20%。

3、解剖SPI总线

SPI 接口一般使用 4 条线通信,MISO 主设备数据输入,从设备数据输出。MOSI 主设备数据输出,从设备数据输入。SCLK 时钟信号,由主设备产生。CS 从设备片选信号,由主设备控制。

一文读懂SPI串行外设接口,第2张

图 3 SPI总线

SPI接口在Master控制下产生的从器件使能信号和时钟信号,两个双向移位寄存器按位传输进行数据交换,传输数据高位在前,低位在后(MSB)。在SCK的下降沿上数据改变,上升沿一位数据被存入移位寄存器。

一文读懂SPI串行外设接口,第3张

图 4 使能信号和时钟信号

4、解剖SPI flash

搞懂了SPI协议之后,下面就让小编来带你轻松 *** 作SPI flash芯片。对flash芯片的 *** 作,一般包括对flash芯片的擦除,编程和读取,各大厂商的SPI flash芯片都大同小异, *** 作命令基本是没什么变化的,当我们拿到一款芯片,要特别注意芯片的容量, *** 作分区,下面以旺宏的芯片为例为大家讲解。

其实,无论是对芯片的擦除,编程还是读取 *** 作,我们大致可以按照以下的套路来:写命令---写地址---写(读)数据。正如以下的时序图一样清晰明了,我们先把片选信号拉低,再发个0x02页编程命令,再发个地址,就可以轻松写数据了。

一文读懂SPI串行外设接口,第4张

依样画葫芦,擦除 *** 作也是一样,甚至更简单,但是我们要注意循环判断状态寄存器的WIP位直至为0为擦除完成,具体循环时间视芯片而定。

一文读懂SPI串行外设接口,第5张

另外,我们要特别注意SPI flash的 OTP区,即(ONE TIME PROGRAMMABLE),也就是说这个区域只能编程一次,编程之后不能再修改及擦除,因此我们 *** 作的时候要特别注意。对OTP区域的读写之前,我们首先要发送进入OTP区域的命令,其他的 *** 作和以上普通flash区域的 *** 作是一样的。

掌握以上方法,我们就可以轻松 *** 作SPI flash芯片了,当然,对时序这种底层的 *** 作,还需要不断学习和积累。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2475545.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-04
下一篇 2022-08-04

发表评论

登录后才能评论

评论列表(0条)

保存