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为擦除完结,详细循环时刻视芯片而定。
别的,咱们要特别注意SPI flash的 OTP区,即(ONE TIME PROGRAMMABLE),也便是说这个区域只能编程一次,编程之后不能再修正及擦除,因而咱们操作的时分要特别注意。对OTP区域的读写之前,咱们首要要发送进入OTP区域的指令,其他的操作和以上一般flash区域的操作是相同的。
把握以上办法,咱们就能够轻松操作SPI flash芯片了,当然,对时序这种底层的操作,还需要不断学习和堆集。