时间:2024-07-25 来源:网络搜集 关于我们 0
今天给大家推荐一块Flash芯片,本人第一次接触这款芯片是在黑金的FPGA开发板上。这个Flash在开发板上的功能是固化jic文件,固化之后FPGA每次上电就都会跑这里面的程序,常用于工程调试好之后固化,避免每次上电都要重新烧写。
这块Flash型号为M25P16,总容量为16Mbit,通过SPI总线读写数据,最高频率可以跑到75MHz.
基本功能特点如下:
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。
它的引脚图和信号列表如下所示,非常简单明了。
为了更详细的了解这款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,不用关心。
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的结构框架图:
关于flash的读写指令,以及读写控制的时序波形图在这里就不再详细介绍,因为只有当您需要真正需要使用这款flash的时候才需要去了解。如果大家有需要详细资料也可以在评论区留言,小编可以分享给大家。
读完的朋友请点赞和转发一下,感谢!