当前位置:   article > 正文

FPGA--FLASH(M25P16芯片)

m25p16

FLASH(串行 用spi的00或者11模式)

16Mbit = 2M X 8bit    其中2M分为32个扇区,每个扇区有256页,每页有256byte 

addr[20:0] = A20-A0

例如21'h123456处于第18扇区52页86个地址

M25P16芯片

1.信号名称

2.封装(8/16引脚)

3.信号功能描述

serial data output (Q):输出

serial data input (D):输入

serial clock(C):串行时钟线,上升沿采样,下降沿输出。

chip select:片选。输入为高时,输出Q为高阻状态,芯片待机,输入为低时,Q正常输出,芯片处于激活状态。

hold:用来暂停串行通信, 只有在激活状态下,暂停端才能使用,暂停状态下,Q为高阻,D和C都不可用

write protect:写入保护,通过状态机寄存器中BP2,BP1,BP0来决定呗保护区域的值的大小

spi详细内容参考:https://blog.csdn.net/weixin_42509369/article/details/83096349

二、SPI协议

 1.SPI的四种模式

1)00:时钟初始值为0且在上升沿采样(CPOL=0,CPHA=0) 

2)01:时钟初始值为0且在下降沿采样(CPOL=0,CPHA=1)

3)10:时钟初始值为1且在下降沿采样(CPOL=1,CPHA=0)

4)11:时钟初始值为1且在上升沿采样(CPOL=1,CPHA=1)

上面说到flash需要上升沿采样,所以可以选择00和11模式

2.操作命令

1)PP命令(页编程):a. 只有写使能(一个字节)和页编程(四个字节)两条指令同时起作用才能进行编程。

                                       b. 页编程指令可以一次完成256个字节

                                       c. 为了优化时序,建议一个PP指令后面跟尽可能多的字节,而不是使用多个PP指令,每个PP指令后面                                              仅包含几个字节 

2)SE(扇区擦除)指令和BE(整片擦除)指令:页编程是将1变成0的过程,所以进行页编程前需要保证是白片(全为1),所以需要                                                                       擦除指令,擦除指令执行前,需要打开写使能指令。

3)WIP(一个byte) : 监视写循环、编程循环和擦除周期是否完成。WIP=1,还在擦除,WIP=0,擦除完成,无需等到13s。

4)DP指令:深度掉电模式(省电),同时发送RDP和RES会回到待机状态或激活状态。深度掉电模式下,写、编程、擦除指令                      都无效,起到软件保护作用。

5)保护机制:a. 上电复位

                        b. 脉冲数是8的倍数,写、编程、擦除等指令才会执行

3.状态寄存器

1)WEL=1表示打开了写使能

2)状态寄存器写使能失效(SRWD)= 1且写保护位(W杠)=0,进入硬件写保护模式。此时SRWD、BP2、BP1、BP0变为只读,此时写状态寄存器(WRSR)不能改变这四个比特的值。下图为SRWD和W杠的模式。

3)不能直接读WIP信息,但WIP在状态寄存器中,可以通过读状态寄存器(RDSR=0000_0101)指令来获取WIP信息,即下图D输入0000_0101,Q会输出状态寄存器信息,其中第0位是WIP。但第一次读取时,若WIP=1,则可以等待50us,直到WIP=0,说明操作已完成。

4)Read Data Bytes(READ):READ指令后需要跟三个byte的地址(A23-A0),通过拉高S杠来停止READ指令

m25p16仿真模型文件:https://download.csdn.net/download/weixin_42263208/12889963

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/703931
推荐阅读
相关标签
  

闽ICP备14008679号