当前位置:首页 > 嵌入式 > 嵌入式硬件
[导读]SPI总线系统是一种同步串行外设接口,它可以使MCU与各种外围设备以串行方式进行通信以交换信息。正是由于有了通信方式,我们才能够通过芯片控制各种各样的外围器件,实现很

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 从设备片选信号,由主设备控制。

 

 

图3 SPI总线

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

 

 

图4 使能信号和时钟信号

4、解剖SPI flash

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

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

 

 

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

 

 

注意OTP

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

掌握以上方法,我们就可以轻松操作SPI flash芯片了,当然,对时序这种底层的操作,还需要不断学习和积累,小编作为刚入门的新手,也曾被时序很多微不足道的细节折磨的体无完肤,因此需要我们静下心来,不断地积累和总结经验!

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

USB接口是一种常见的串行接口,它的全称是Universal Serial Bus,由USB Implementers Forum制定。USB接口具有通用性强、传输速度快、支持多种设备同时连接等优点,因此在现代电子设备中...

关键字: USB 接口 串行接口

SPI 是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口。是Motorola(摩托罗拉)首先在其MC68HCXX系列处理器上定义的。SPI是一种单主机、高速的,全双工,同步...

关键字: spi spi通信原理

模式 0 又分为模式 0 输出和模式 0 输入两种工作状态。但应注意:在这种模式下,不管输出还是输入,通信数据总是从 P3.0(RXD) 管脚输出或输入,而 P3.1(TXD) 管脚总是用于输出移位脉冲,每一个移位脉冲将...

关键字: 串行接口 多机通信

CPU 与外部设备交换数据有并行和串行通信两种方式。并行通信是指数据的各位同时进行传送的方式。其特点是传送速度快、效率高,显然并行传送的数据有多少位,就需要有多少根传输线。当传送距离较远时,位数较多就会导致通信线路成本的...

关键字: 串行通信 MCS 51 单片机 串行接口

串行接口简称串口,也称串行通信接口或串行通讯接口(通常指COM接口),是采用串行通信方式的扩展接口。串行接口 (Serial Interface)是指数据一位一位地顺序传送。其特点是通信线路简单,只要一对传输线就可以实现...

关键字: 串行接口 远距离通信 传送速度

为什么要加锁在SMP系统中,如果仅仅是需要串行地增加一个变量的值,那么使用原子操作的函数(API)就可以了。但现实中更多的场景并不会那么简单,比如需要将一个结构体A中的数据提取出来,然后格式化、解析,再添加到另一个结构体...

关键字: spi ic ck

为什么要加锁在SMP系统中,如果仅仅是需要串行地增加一个变量的值,那么使用原子操作的函数(API)就可以了。但现实中更多的场景并不会那么简单,比如需要将一个结构体A中的数据提取出来,然后格式化、解析,再添加到另一个结构体...

关键字: spi ic ck

SPI接口通信原理

关键字: spi 通讯

串口调试软件是一款软件。串口叫做串行接口,也称串行通信接口,按电气标准及协议来分包括RS-232-C、RS-422、RS485、USB等。

关键字: 串口调试软件 串行接口

  对单一设备的控制操作比较方便,但是要实现对多个设备的控制就不那么简单了。它需要的时序、接口标准、通信协议等相互配合,才能够实现相互之间的通信。最近开始了《智能化车位指示管理系统》的设计,才体

关键字: 串行接口 rs-232 串口通信协议
关闭
关闭