
一、W25Qxx系列芯片----简介 W25Qxx 系列 Flash 存储器可以为用户提供存储解决方案。擦写周期多达10W次,可将数据保存达20年之久,支持2.7~3.6V的电压,支持标准的SPI,还支持双输出/四输出的SPI,最大SPI时钟可达80Mhz。 W25Qxx 系列 Flash 存储器是为系统提供一个最小空间、最少引脚,最低功耗的串行Flash存储器,比普通的串行Flash存储器更灵活,性能更优越。 功耗低,正常工作状态下电流消耗0.5mA,掉电状态下电流消耗1uA。 1. 存储结构 W25Qxx 系列 Flash 存储器的存储结构 相同点: 1块 = 16扇区 = 64k字节,1扇区 = 16页 = 4k字节,1页 = 256字节。 只有三种擦除方式:扇区擦除 、 块擦除 和 全片擦除。 写操作一次可以写1~256字节,最多一次写一页256字节。 不同点: 容量和内存空间地址不同,具体如下表所示: ![]() 2. 引脚接口 下面只介绍标准SPI接口,接口如下图所示: ![]() 片选引脚:/CS (1)当CS引脚为高电平时,芯片被禁能,DO引脚高阻态,不能进行读写操作。 (2)当CS引脚为低电平时,芯片被使能,能进行读写操作。 上电后,执行一条新指令之前必须使CS引脚先有一个下降沿。 数据输出引脚:DO(IO1) 标准SPI模式: CLK上升沿捕获地址和命令,下降沿输出数据。 QSPI模式: 双向数据传输 IO1。 写保护引脚:/WP(IO2) 标准SPI模式: 写保护引脚可以被用来保护状态寄存器不被意外改写。 (1)当WP引脚为高电平时,芯片写保护失能,可以正常写入数据。 (2)当WP引脚为低电平时,芯片写保护使能,不可以正常写入数据。 QSPI模式: 双向数据传输 IO2。 地:GND 电源地 数据输入引脚:DI(IO0) 标准SPI模式: 数据、地址和命令从DI引脚送到芯片内部,在CLK引脚的上升沿捕获。 QSPI模式: 双向数据传输 IO0。 串行时钟引脚:CLK SPI时钟引脚,为输入输出提供时序。 保持引脚:/HOLD(IO3) 标准SPI模式: 当CS引脚为低电平时 (1)当HOLD为低电平时,DO引脚处于高阻态状态,而且也会忽略DIO和CLK引脚上的信号。 (2)当HOLD为高电平时,芯片恢复正常工作。 QSPI模式: 双向数据传输 IO3。 电源:VCC 电源正极 3. 原理图 ![]() 4. 内部结构框架图 ![]() 5. 型号ID W25Qxx 系列 Flash 存储器支持 JEDEC 标准,具有唯一的 64 位识别序列号,方便区别芯片型号,具体如下表所示: ![]() 二、W25Qxx系列芯片----工作原理 1. SPI 运行方式 W25Qxx系列芯片支持以下两种SPI通信方式: 模式0: CPOL = 0,CPHA = 0 模式3: CPOL = 1,CPHA = 1 2. W25Qxx系列芯片----状态寄存器 注:这里是记录所有W25Qxx系列芯片的状态寄存器,有些型号的状态寄存器,没有全部功能。 状态寄存器1 ![]() S0----总线忙标志位(BUSY) 在执行页编程、扇区擦除、块区擦除、芯片擦除以及写状态寄存器指令时,该位被硬件自动置1。这时候,除了读状态寄存器指令外的所有操作指令都会被芯片忽略。 当芯片执行完这些指令后,硬件会自动将该位清0,表示芯片器件可以接收其他的指令。 S1----写保护位(WEL) 执行完写使能指令后,该位置1 当芯片掉电后和执行写禁能、页编程、扇区擦除、块区擦除以及芯片擦除指令都会进入写保护状态,该位置0 S2、S3、S4----块区保护位(BP2、BP1、BP0) 这3个位默认状态为0,即块区处于未保护状态。可以利用“写状态寄存器”指令对这几个位进行置1来达到块区保护的目的。块区保护状态为:没有保护、部分保护和全部保护状态。 当状态寄存器的SRP位为1或读写保护管脚(/WP)为低电平时,这3个位不可被更改。 S5----底部和顶部块保护位(TB) 此位默认值为0,可以利用“写状态寄存器”指令对这个位进行置1或清零。 当TB = 0时,表示保护位从顶部开始; 当TB = 1时,表示保护位从底部开始。 当状态寄存器的SRP位为1或读写保护管脚(/WP)为低电平时,这个位不可被更改。 S6----扇区/块保护(SEC) 此位默认值为0,可以利用“写状态寄存器”指令对这个位进行置1或清零。 当SEC = 0时,表示每次保护的区域大小为4K; 当SEC = 1时,表示每次保护的区域大小为64K。 状态寄存器2 ![]() S7、S8----状态寄存器保护位(SRP、SRL) 这两个位的默认值为0,可以利用“写状态寄存器”指令对这个位进行置1或清零。 这两位和读写保护管脚(/WP)决定了状态寄存器写保护的方式。 状态寄存器写保护的方式有:软件保护,硬件保护、电源锁定或一次性可编程(OTP)保护。 S9----快速SPI通讯使能(QE) 此位默认值为0,可以利用“写状态寄存器”指令对这个位进行置1或清零。 当QE = 0时,设置为标准速度模式或快速模式,保持管脚(/HOLE)和读写保护管脚(/WP)启用; 当QE = 1时,设置为高速模式,保持管脚(/HOLE)和读写保护管脚(/WP)被设置为IO2和IO3功能使用。 S10、S11、S12、S13----安全寄存器锁位(LB3、LB2、LB1) LB3-1的默认状态为0,安全寄存器被解锁。 可以使用写状态寄存器指令将LB3-1单独设置为1。 LB3-1是一次性可编程(OTP),一旦它设置为1,相应的256字节安全寄存器将成为永久只读。 S14----补码保护位(CMP) 它与SEC、TB、BP2、BP1和BP0位结合使用,为阵列保护提供更大的灵活性。 一旦CMP设置为1,之前SEC、TB、BP2、BP1和BP0设置的阵列保护将被逆转。例如: 当CMP=0时,一个最高64KB的块可以被保护,而数组的其他部分则不受保护; 当CMP=1时,最上面的64KB块将成为不受保护的,而数组的其余部分将成为只读的。 默认设置为CMP=0。 S15----暂停状态位(SUS) 在执行**擦除/程序暂停(75h)指令后设置为1。 通过擦除/程序恢复 (7Ah)**指令以及下电、上电周期将SUS状态位清除为0。 状态寄存器3 ![]() S16----当前地址模式(ADS) 表示设备当前运行的地址模式。 当ADS=0时,设备处于3字节地址模式, 当ADS=1时,设备处于4字节地址模式。 S17----启动时地址模式(ADP) 决定设备上电或复位时的初始地址模式,该位仅在上电或设备复位初始化期间使用。 当ADP=0(出厂默认)时,设备将启动到3字节地址模式,扩展地址寄存器必须用于访问超过128Mb的内存区域。当ADP=1时,设备将直接启动到4字节地址模式。 S18----写保护方案(WPS) 当WPS=0时,设备将使用CMP、SEC、TB、BP[2:0]位的组合来保护存储阵列的特定区域。 当WPS=1时,设备将使用单独块锁来保护任何单独的扇区或块。 设备上电或复位后,所有单个块锁定位的缺省值为1。 S22、S21 ---- 输出信号强度(DRV1、DRV0) ![]() S23----HOLD/RST引脚功能选择 当HOLD/RST=0(出厂设置)时,引脚为/HOLD。 当HOLD/RST=1时,引脚为/RESET。 但是,只有当QE=0时,/HOLD或/RESET函数才可用。 QE设置为1时,关闭/HOLD和/RESET功能,引脚为专用数据I/O引脚。 3. W25Qxx系列芯片----常用操作命令 (1)单字节操作 单字节操作,只往芯片中写入1字节的操作命令,具体代码如下:
操作命令 如下表所示: ![]() ![]() 注:如果想要实现其他功能,替换操作指令数据,便可实现功能。 (2)双字节操作 双字节操作,先往芯片中写入1字节的操作命令,接下来是读取/写入的字节数据。 具体代码如下:
操作命令 如下表所示: ![]() 注:如果想要实现其他功能,替换操作指令数据,便可实现功能。 (3)读取ID操作 具体代码如下:
操作命令 如下表所示: 指令名称 指令数据(hex) 字节1 字节2 字节3 字节4 字节5 功能 Device ID 0xAB 0x00 0x00 0x00 (ID7-ID0) 读取设备ID Manufacturer/Device ID 0x90 0x00 0x00 0x00 (MF7-MF0) (ID7-ID0) 读取制造商+设备ID JEDEC ID 0x9F (MF7-MF0) (ID15-ID8) (ID7-ID0) 读取全部ID Read Unique ID 0x4B 0x00 0x00 0x00 0x00 (UID63-0) 读取唯一ID号 注:如果想要实现其他功能,替换操作指令数据,便可实现功能。 (4)带地址操作 带地址操作主要分两种: 3字节地址:W25Qxx系列芯片都可以使用。 4字节地址:只有W25Q256和W25Q512可用。 3字节地址 具体代码如下:
操作命令 如下表所示: ![]() ![]() 4字节地址 具体代码如下:
注:如果想要实现4字节地址,需要启用4字节地址模式。 操作命令 如下表所示: ———————————————— 版权声明:根号五 |