介绍一款常用的SPI Flash芯片,搭配MCU和FPGA都很好!

今天给大家推荐一块Flash芯片,本人第一次接触这款芯片是在黑金的FPGA开发板上。这个Flash在开发板上的功能是固化jic文件,固化之后FPGA每次上电就都会跑这里面的程序,常用于工程调试好之后固化,避免每次上电都要重新烧写。

Flash芯片型号与基本功能

这块Flash型号为M25P16,总容量为16Mbit,通过SPI总线读写数据,最高频率可以跑到75MHz.

介绍一款常用的SPI Flash芯片,搭配MCU和FPGA都很好!

基本功能特点如下:

1.对一个page(256bytes) program在典型情况下是0.64ms.

2.对一个sector(512Kbit)擦除典型情况下是0.6ms.

3.对16Mbit全擦除大概需要13s.

4.供电电压支持2.7~3.6V之间。

5.通信方面是通过SPI总线。

6.时钟频率最高可以跑到75MHz。

7.深度低功耗模式下能把电流降到1uA.

8.支持十万次以上的擦写次数。

9.支持硬件写保护功能

10.数据保存年限超过20年。

功能概况描述

这款Flash数据单元位宽是8bit,所以是2Mx8bit,通过高速SPI总线读写,能达到非常高的读写速度。通过page编程指令可以一次完成对1~256bytes的编程。

它的16Mbit容量按照这样分布的:总共有32个sector,每个sector里面包含256个page,每个page有256个byte,所以总共是8192个page,擦除可以选择对这个Flash擦,或者擦除一个sector。

它的引脚图和信号列表如下所示,非常简单明了。

介绍一款常用的SPI Flash芯片,搭配MCU和FPGA都很好!

管脚信号介绍

为了更详细的了解这款Flash每一个管脚的意义,下面对每个引脚都做个介绍:

1.D信号(Serial Data input):SPI接口的数据输入信号,用于接收主控给flash发送的指令,地址和要写入flash的数据。

2.Q信号(Serial Data Output):SPI接口数据输出信号,当主控需要读flash数据时,通过Q端按照串行的方式把数据传输出去。

3.C信号(Serial Clock):由于SPI接口的时钟信号是由主机发出的,在这里flash属于从机。所以时钟信号对于它来说是输入脚,D信号在时钟的上升沿被锁存,Q信号在时钟的下降沿变化。

4.S信号(Chip Select):片选信号,低电平有效,当该信号被拉底时,说明该flash被选中,此时主控可以通过SPI总线读写或者擦除flash。

5.Hold信号:该信号用于暂停flash和主控之间的通信,该操作需要在S信号为低电平的时候进行,也就是主控想暂时停止与flash通信,又不想取消S信号时使用,该模式下Q信号是高电平的。

6. W信号(Write Protect):flash内部会有一些区域被硬件保护起来,不能读写或者擦除,该信号的作用就是释放这些被保护的区域。

7.VCC和VSS:这就是电源和地管脚,大家都了解就不多介绍了。

实际芯片SOP16的管脚排布图如下所示,DU是无用的PIN,不用关心。

介绍一款常用的SPI Flash芯片,搭配MCU和FPGA都很好!

Flash操作模式

1.Page Programming

想要对flash写入1byte 数据,需要两条指令:写使能指令和Page Program序列,也就是说要先发两条指令告诉flash接下来要进行什么操作,再把要写的数据传进去。也就是说会有4byte的冗余数据,当然,它支持最高一次写入256byte数据,这时候的有效带宽就很高了。需要注意的是,program指的是对flash内的存储bit从1改成0.

2.Sector擦除或者整块擦除

上面说了编程是从1到0,那么擦除就是从0到1.通常flash在使用前都是先擦除成1,然后program。其中,擦除方式可以根据用户需求选择擦除一个sector或者这个存储空间。

下图是整个flash的结构框架图:

介绍一款常用的SPI Flash芯片,搭配MCU和FPGA都很好!

关于flash的读写指令,以及读写控制的时序波形图在这里就不再详细介绍,因为只有当您需要真正需要使用这款flash的时候才需要去了解。如果大家有需要详细资料也可以在评论区留言,小编可以分享给大家。


分享到:


相關文章: