基于verilog驱动M25P16(FALSH)--------- (二)

  • M25P16原理

M25P16是一款带有先进写保护机制和高速SPI总线访问的串行Flash存储器。M25P16特点如下:

  1. 存储结构:16M Bit(2M Byte)的存储空间,一共32个扇区(sector),每个扇区256页,每页256字节。
  2. SPI总线兼容的串行接口。
  3. 可以单扇区擦除,也可以整块擦除。
  4. 可以同时编程1~256字节,页编程速率高达256Byte/1.4ms,即写入一页数据需要1.4ms。
  5. 数据保存至少20年。
  6. 支持SPI工作模式0和3。

1、M25P16引脚图

2、信号名称

C: 时钟信号,相当于SPI总线的SCLK。

D:数据输入,相当于SPI总线的主机输出、从机输入MOSI。

Q:数据输出,相当于SPI总线的主机输入、从机输出MISO。

S#:片选信号,相当于SPI总线的片选信号CS_N。

HOLD:在选中期间期间输出高阻态,实际上比较像SDRAM的“掩码”。

W#:写保护,低电平有效,在写保护有效时无法写入数据。

VCC:电源。

VSS:电源地。

3、SPI Modes

4、指令

常用的指令:

WREN:写使能指令,在进行PP、SE、BE、RDSR指令前,都需要发 送一次写使能指令。

READ:读使能指令,发送读使能指令后需要发送3字节的地址数据, 分别为扇区地址、页地址和字节地址,可以一直读,直到将 片选拉低才停止读取数据,

PP:页编程指令,发送页编程指令后,需要再发送3字节的地址数据, 然后再发送需要写的数据,最多一次可以写256个数据(1页)。 如果页编程的字节地址不是全零的话,就会在本页内循环写入数 据(到了本页最后一字节,下一字节会回到本页起始地址编程,

即字节地址全零的地方开始)。如果写入数据超过256字节,那么前面的数据会被覆盖,只有最后的256字节数据会被保留。如果少于256字节,则正常写入,且不会对本页其他字节数据造成影响。

SE:扇区擦除指令,发送扇区擦除指令后,需要发送3字节的地址。 然后等待1~5ms,扇区擦除时间。

BE:批量删除指令,发送该指令后等待17~40ms,全部擦除时间。

RDSR:读状态寄存器指令,读取状态寄存器(RDSR)指令允许读取状态寄存器。状态寄存器可以在任何时候被读取,即使在一个程序、擦除或写状态寄存器周期正在进行中。当其中一个循环正在进行时,建议在向设备发送新指令之前检查“正在写入”(WIP)位。

WIP BIT:“正在写入”(WIP)位指示内存是忙于写入状态寄存器、程序还是擦除周期。当设置为1时,这样的循环正在进行,当重置为0时,没有这样的循环正在进行。

WEL BIT:写入启用锁存器(WEL)位表示内部写入启用锁存器的状态。当设置为1时,内部写启用锁存器被设置为1,当设置为0时,内部写启用锁存器被重置,并且不接受写状态寄存器、程序或擦除指令。

在进行擦除指令时,可以通过读取状态寄存器的WIP BIT来判断擦除周期是否完成,这样就可以不用进行擦除等待。

注意:PP指令只能将FLASH中存储单元中的‘1’写为‘0’,而不能将‘0’写成‘1’。所以对同一地址进行重复写数据要进行擦除操作,否则写入的数据会产生干扰。

SE、BE擦除指令操作,就是将FLASH中的存储单元中的‘0’擦除为‘1’。所以进行完擦除指令后,存储单元中的数据全为‘1’,16进制下即为‘F’。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值