news center
LED电子显示屏产品开发、设计、制造和销售
新闻资讯
LED显示屏SPI Flash控制模块介绍

SPI Flash芯片简介

SPI(serial peripheral interface) Flash是一种串行外围设备接口的存储芯片,可以为用户提供较大的存储空间,具有占用PCB空间少、管脚数量少、控制方便、 存储容量大等优点。与普通的Flash芯片相比,SPI Flash使用更灵活,性能更出色,适合用于下载代码以及存储数据等。该控制系统所用的芯片为 W25Q64FV,存储空间为64M,有32768可编程页,每页256字节。该芯片支持标准的SPI接口(串行时钟引脚CLK、芯片选择引脚CS、串行数据输出引脚DO、串行数据输入引脚DI),此外该芯片还具有保持引脚HOLD、写保护引脚 WP、可编程写保护等特性,使得芯片使用起来更灵活。

SPI Flash操作简介

W25Q64FV可以进行写使能、写禁能、读状态寄存器、读数据、快读、快速双输出等操作,操作方式十分灵活.该控制系统SPI Flash主要有两个作用,一 是存储二进制的FPGA程序,在控制卡上电时,将程序写进FPGA中;二是存 储LED显示屏的配置信息,供FPGA驱动LED显示屏时使用。主要使用的SPI Flash操作为写使能(Write Enable)操作、读数据(Read Data)操作、页编程(Page Program)操作以及扇区擦除(Sector Erase)操作。

(1)写使能操作

写使能指令会使“状态寄存器”的WEL位置位,在执行和改变SPI Flash存储内容页相关的操作之前(如Page Program, Sector Erase, Block Erase, Chip Erase 等),都需要线执行写使能操作,写使能操作的管脚时序图如图5.1所示。

图5.1 W25Q64FV SPI Flash写使能操作管脚时序图

由上图可看出写使能操作具体步骤为先将CS引脚拉低,再将写使能指令代码06h从DI引脚输入,在CLK上升沿采集,较后再拉高CS引脚,这样就完成 了写使能操作。

(2)读数据操作

读数据操作允许读出一个或以上的字节,操作时管脚时序图如图5.2所示。

图5.2  W25Q64FV SPI Flash读数据操作管脚时序图

由上图可看出读数据操作时,先把CS脚拉低,然后将03h通过DI管脚写入芯片,之后再将需要读取数据的地址通过DI脚写入芯片,这些数据在CLK的上升沿被采集。芯片在执行完上述操作之后,就会把相应地址的数据通过DO引脚在CLK下降沿送出,高位在前。读完当前地址的数据之后,地址自动加一,然后通过DO引脚把下一个地址的数据送出去,形成一个数据流。也就是说,只要CLK时钟一直存在,使用一条Read指令就可以将W25Q64FV芯片存储的所有 数据读出来。当CS引脚被拉高时,读数据操作结束。芯片在执行编程、擦除和读状态寄存器操作的周期内,读数据指令不起作用。

(3)页编程操作

页编程操作将数据写入到SPI Flash芯片中,在执行页编程之前需要执行写使能操作,而且要求待写入的区域每一位都为1,也就是说先要将待写入的区域 擦除,页编程操作的管脚时序图如5.3所示。

图5.3  W25Q64FV SPI Flash页编程操作管脚时序图

由上图可以看出页编程操作时,先将CS引脚拉低,然后将02h通过DI引脚送到芯片,然后再将24位地址送到芯片,然后将要写入SPI Flash芯片的数据通 过DI引脚送到芯片,写完所有数据后将CS引脚拉高。

写完一页数据(256bit)后,需要把地址改为0,不然的话可能会出现一些问题,主要表现为当写入的数据大于256字节时,这时候如果任然有时钟的话,多 于256个字节之外的字节很可能从起始地址开始写入芯片从而覆盖刚刚写入的数据,所以为了稳妥起见需要保证写入的字节小于等于256个字节。

(4)扇区擦除操作

扇区擦除操作将一个扇区的所有的数据擦除。在执行扇区擦除操作之前,需要执行写使能操作,保证WEL位为1,扇区擦除操作的管脚时序如图5.4所示。

图5.4  W25Q64FV SPI Flash扇区擦除操作管脚时序图

由上图可以看出,执行扇区擦除操作时,先将CS引脚拉低,然后将20h通过DI管脚送到芯片,接着将24位扇区地址通过DI管脚送进芯片,较后拉高CS引脚。操作执行期间,状态寄存器的BUSY位为I,操作执行结束后,状态寄存器的BUSY位变为0, WEL位也变为0.

因为W25Q64FV芯片执行页编程操作时只可以将存储区域的数据从0变为1,无法将数据位从0变为1,所以在对一个有数据的存储区域进行页编程操作之前都需要先对其执行扇区擦除或芯片擦除操作。

SPI Flash控制模块设计

SPI Flash控制设计成主从模式,FPGA部分为主,SPI Flash芯片为从,其基本架构如图5.5所示。

图5.5  SPI Flash控制模块架构

FPGA通过结构向SPI Flash芯片发送复位、读写、擦除等操作以及操作地址、操作数等信息。SPI接口作为主机与从机的通讯结构,主要完成以下工作:①将 从主机接收到的8位的并行数据,转换为从机所能接收的串行数据,并将该数据根据SPI协议送给从机;②主机产生从机所需的时钟信号SCLK,片选信号CS;③ 接收从机传回的读信号和串行数据,并将其转换为并行数据。用FPGA实现SPI 串行外围接口是一个比较复杂的系统,为了保证方案的可实现性,此方案采用了状态机来设计,使得我们可以相对清晰的思路完成该方案。

SPI Flash控制模块的具体控制方案如图5.6所示。

图5.6  SPI Flash控制棋块具体设计方案

由上图可看出,control模块为FPGA接口模块,用来控制执行的操作以及操作的地址和数据,当执行写操作时,wr_sig置1,地址从addr_in[23:0]口输入, 数据从wr_data[7:0]口输入,当检测到operating_flag信号变为1时,即可将wr_sig 置0;执行读操作时,将rd_sig置1,数据就会从read_data输出,要停止读数据 时,将rd_sig置0,即可停止读数据;当执行擦除操作时,er_sig置1,地址从addr_in[23:OJ口输入,当检测到operating_flag信号变为1时,即可将er_sig置O。 spi模块将从control模块接受到的8位并行数据转换层串行数据,并在s_clk上升沿按照标准spi时序输出,与此同时将在s_clk下降沿从miso接受到的1位串行数据转换成8位并行数据输出。为了使整个系统更加稳定,设置了write_fifo与read_fifo两个8进8出fifo,以免写入太快或者读取太快造成数据丢失或时序混乱的情况。按照此方案设计的程序进行逻辑仿真得到的波形如图5.7所示。

 

图5.7  SPI Flash控制模块逻辑仿真时序图

用逻辑分析仪在控制卡上测得的实际时序如图5.8所示。

图5.8  SPI Flash控制模块实侧时序图

通过对比图5.7与图5.8可以看出实际测得的时序图与仿真时序图相符,并 且经过测试,该方案可以实现W25Q64FV的所有操作。

关于佳恒

关注我们


微信扫描关注我们
版权所有:武汉市佳恒光电广告有限公司  备案号:鄂ICP备15001456号-5   鄂公网安备42010402001622 xml
友情链接:
进口磨刀机
武汉LED显示屏
武汉保安加盟
武汉彩色LED显示屏
潜水艇地漏
密度板
广州保安公司
X

截屏,微信识别二维码

微信号:18007171419

(点击微信号复制,添加好友)

微信号已复制,请打开微信添加咨询详情!