SPI 是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口。是Motorola首先在其MC68HCXX系列处理器上定义的。
SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,主要应用在 EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。
一,SPI部分内容介绍
1,SPI内部示意图
MISO 主设备数据输入,从设备数据输出;
MOSI 主设备数据输出,从设备数据输入;
SCLK时钟信号,由主设备产生;
CS从设备片选信号,由主设备控制。
2,SPI工作原理
(1)主机和从机都有一个串行移位寄存器,主机通过向它的SPI串行寄存器写入一个字节来发起一次传输。
(2)串行移位寄存器通过MOSI信号线将字节传送给从机,从机也将自己的串行移位寄存器中的内容通过MISO信号线返回给主机。这样,两个移位寄存器中的内容就被交换。
(3)外设的写操作和读操作是同步完成的。如果只进行写操作,主机只需忽略接收到的字节;反之,若主机要读取从机的一个字节,就必须发送一个空字节来引发从机的传输。
二,程序编写实验
与IIC的读写程序相类似。
用开关KEY_UP的按下与松开来切换不同的字符串分别写入Flash,再通过LCD显示出来。
实验预期效果:程序启动运行后,LCD显示出一组字符串,代表从Flash中读取出来的数据;当按下KEY_UP,LCD显示出另一组字符串,代表Flash又重写入另一组数据;KEY_UP再松开,LCD显示出原先的字符串。
程序编写,只需要一个主VI。
(一)程序步骤:
1,LCD初始化
2,SPI2初始化
3,Flash ID读取
4,Flash字节数组写入
5,Flash字节数组读取
6,LCD清除背景
7,LCD字符串显示
程序编写:
1,LCD初始化
2,SPI2初始化
硬件SPI W25Q64连接图:
3,Flash ID读取
4,Flash字节数组写入
KEY_UP按下或松开,分别给Flash写入不同的字符串:字符串转换成字节数组再写入。
5,Flash字节数组读取
字节数组转换成字符串,将送至LCD显示。
6,LCD清除背景
7,LCD字符串显示
完整的程序
三,编译,下载到开发板,程序运行后,进行KEY_UP按键操作,效果如预期。