SPI Flash电路设计
1、SPl Flash介绍
SPI是串行外设接口(serial Peripheral Interface)的缩写。由Motorola提出,是一种高速的、全双工﹑同步的通信总线。—般主要应用在oU和外围设备之间的通讯,广泛应用在Flash,模数转换器,通讯模块等外围芯片或者模块与U之间的通讯。
note:常使用的内部通信接口:UART,IIC,SPI
常使用的外部通信接口:RS-232,RS-485,CAN
SPI Flash就是通过串行的接口进行操作的Flash存储设备。
―般板卡会配有一个报 Flash存储芯片。因为Flash具有断电数据不丢失的特性,而我们FFGA芯片掉电数据是会丢失的,所以我们就可将Flash作为FPGA芯片的上电配置器件(主要用于嵌入式设备的引导启动程序的存储如Eootloadex.),我们将上电程序固化在Flash中,上电后FFGA芯片读取到Flash中存储的程序进行运行,这样就能做到程序断电不丢失了。
SPI Flash读写较慢,次数有限制,―般用于不经常更改的存储。
Flash按照内部存储结构不同,分为两种: nor Flash和nand Flash ,这里 Flash属于nor Flash!
区别主要就是:
1、SPI Nor Flash每次传输一bit位的数据parallel连接的Nor Flash每次传输多个bit位的数据(有x8和x16bit两种〉;
2、SPI Nor Flash 比parallel便宜:接口简单点,但速度慢。
1Byte=8bits ( 1字节等于8位)
1KB=1024Bytes ( 1KB等于1024字节)
1MB=1024KB
1GB=1024MB
注:另外,Byte通常简写为B大写)﹐而bit通常简写为b(小写)﹔ 1B=8b 。
bit意为“位”或“比特”,是计算机运算的基础。属于二进制的范筹;
Byte意为“字节”,是计算机文件大小的基本计算单位;
这两者应用的场合不同。通常用bit来作数据传输的单位,因为物理层,数据链路层的传输对于用户是透明的,而这种通信传输是基于二进制的传输。在应用层通常是用Byte来作单位,表示文件的大小,在用户看来就是可见的数据大小。
2、SPl Flash的特点
1、高速[1.受限于最大时钟频率⒉受限于CPU处理SPI数据的能力;3受限于PCB走线]﹔
2、全双工〈两个数据线可以同时收发)﹔
3、主从模式(既可当主机复可当从机工作)﹔
4、提供频率可编程时钟﹔
3、EEPROM和SPI Flash的区别
以华邦w25Q128 为例,详解SPI Flash的特点,读写注意事项,和地址范围等。以AT24C02 EEPROM和w25Q128 SPI Flash为例。
1 、EEPROM通常采用是IIC串行总线,低速,单双工,通信速率—般是百Hz。而SPI Flash是采用高速,全双工总线,相比于EEPRDM。读写速度更快。
2、EEPRDM 通常用于存储不频繁读取的数据,如配置信息等,而SPI Flash通常用来存储经常读取的数据,如字库文件等。
3 EEPEM读写比较随意·想写那个地址写那个s想读哪个地址读哪个!而SPI Flash则比较规范,擦除的最小单位是扇区。向某个地址写入数据时,要先读取这个地址的数据是否为0xFF,如果不是0xFF,那么这个数据写入失败。所以通常的写操作是,在写某个地址之前,直接擦除这个地址所在的那个扇区,然后再写数据。当然,如果这个扇区的所有内容都是OxFF,则无需察除,可以直接写入。
4、EEPROM通常容里比较小,大小为KB级的。如AT24C02是2KB,而SPI Flash容里比较大,大小为MB级的,如W25Q16是16Mbit。也就是2MB。
5 、EEFROM型号通常是xx24系列,而SPI Flazh通常是xx25系列,所以从芯片型号我们也可以看出ROM类型。
6、EEPROM教据保存时间大约是100年,而SPI Flaszh数据保存时间为2年。
7、EEPROM的读写次数为100万次左右,SPI Flash读写次数为10万次左右。
4、SPI Flash设计要点
4.1、常规注意点
1、注意:根据需求选择对应的标注SPI flash、Dual flash 、Quad flash。具体项目具体看了,理论上在CLK一定的情况下,线数越多访问速度也越快。
2、如果需要CS管脚跟踪VCC电压,防止上电或断电时,由于VCC电压不足导致写数据异常,建议CS管脚串10k电阻到VCC,起到跟踪保护作用。
3、片选信号:是否要接上拉电阻或者下拉电阻,看具体规格书要求;(一般要加上拉电阻)
4、电源接虑波电容。
5、建议IO0-IO3加上2欧姆的电阻作为阻抗匹配﹔除了SCK,其余都加上上拉电阻。
4.2 FPGA对应的专用管脚