文章目录
- 前言
- 介绍W25Q系列
- 硬件电路
- 四重SPI(了解)
- 框图
- Flash操作注意
- 状态寄存器
- 指令集
- 电器特性
前言
W25Q64是一个8MByte大小的非易失性存储器,使用的是SPI协议,本文将全面介绍W25Q64的特性、工作原理以及注意事项
SPI详解见:https://blog.csdn.net/qq_53922901/article/details/137142038?spm=1001.2014.3001.5501
介绍W25Q系列
注意:使用W25Q256时,使用3字节地址不够W25Q256全部覆盖,所以想完全利用W25Q256时就需要使用4字节地址
双重SPI就是在一个时钟又收数据又发数据MISO、M0SI同时兼具接收和收发,所以相当于时钟频率翻了一倍。
硬件电路
四重SPI(了解)
WP(写保护)、HOLD(数据保持)与MISO、MOSI四个引脚同时进行输入输出,相当于4位并行传输。
框图
这个W25Q64内存为64MBit,也就是8MByte,对这8MByte进行了如下划分:
High Voltage Generators:对于非易失性存储器,想要达到掉电丢失的效果,需要给其一个“刻骨铭心”的刺激,所以这里使用这个高电压生成器对其进行高电压刺激
Page Address Latch:三地址模式,前两个地址放入此锁存器,通过写保护和行解码选择要操作第几页
Byte Address Latch:三地址模式,最后一个字节放入此锁存器,通过列解码和256字节页缓存来进行指定字节的读写操作。这两个锁存器都有一个计数器,每进行依次读写就会+1,用于连续读写。第三个字节放在Byte Address中有2^8能寻址256字节,刚好对应每一页(行)的00h到ffh
256字节页缓存:一个RAM存储器,流程是读写操作——>存入RAM缓存——>再存入对应的Flash中,所以每次的写入内容不能超过256字节,在从RAM存入Flash的过程会比较慢,此期间status register(状态寄存器)会令BUSY位置1,表示繁忙状态,此时将不会再接收新的SPI时序
Flash操作注意
状态寄存器
BUSY:在从RAM存入Flash的过程会比较慢,此期间status register(状态寄存器)会令BUSY位置1,表示繁忙状态,此时将不会再接收新的SPI时序,完成后会被擦除为0.
Write Enable Latch(WEL):写使能锁存(WEL)是状态寄存器(S1)中的一个只读位,在执行写使能指令后被设置为1。当设备禁止写时,WEL状态位被清除为0。写禁用状态发生在上电或以下任何指令之后:写禁用、页程序、扇区擦除、块擦除、芯片擦除和写状态寄存器。
指令集
不同的读指令得到的结果不一样
指令集配置表
电器特性
对比这些操作的执行时间与单片机的频率来判断是否需要添加延时