W25Q256JV简介
1 W25Q256JV 总体描述
W25Q256JV 256Mb 串行Flash存储,运行电压在2.7到3.6V电压之间,power-down 模式电流消耗低至1ua。
131,072 个可编写page,每个page大小256Byte,一次可擦写256Byte,page可以一个,16个(sector4KB),128个(32KB),256个(64KB),为一组擦除。也可以整片存储器擦除。
4KB大小的sector在数据储存中有着很大的灵活性。
支持标准SPI,双/四IO模式SPI
3.2引脚功能
标准SPI选IO0,IO1
/CS | 片选 |
DO/IO1 |
data output |
DO/IO2 | |
GND | 接地 |
DI/IO0 | data input |
CLK | 时钟 |
IO3 | |
VCC | 电源 |
/RESET | 重置 |
5 储存结构图示:
1Chip = 512Block , 1Block = 16 Sector , 1Sector = 16 Page , 1Page=256Byte
1page | 256B | ||
1Sector | 4096B | 4KB | |
1Block | 65536B | 64KB | |
1Chip | 33,554,432B | 32764KB | 32MB/256Mb |
32位地址0x00000000
Block | Block | Sector | Page | Byte | |
0x | 00 | 00 | 0 | 0 | 00 |
Block0,Sector0,Page0尾地址 | 00 | 00 | 0 | 0 | FF/255 |
Block0,Sector0,Page15首地址 | 00 | 00 | 0 | F | 00 |
Block0,Sector15,page0首地址 | 00 | 00 | F | 0 | 00 |
Block255,Sector0,Page0首地址 | 00 | FF | 0 | 0 | 00 |
Block511,Sector0,Page0首地址 | 01 | FF | 0 | 0 | 00 |
Block511,Sector15,Page15首地址 | 01 | FF | F | F | 00 |
Block511,Sector15,Page15 尾地址 W25Q256JV结束地址 |
01 | FF | F | F | FF |
6.1.1 标准SPI模式
芯片通过四信号SPI兼容总线访问:CLK,/CS,DI,DO。使用DI输入引脚连续写入命令,地址,数据,CLK上升沿写入。使用DO输出引脚读数据或状态,下降沿读出。
SPI总线支持mode 0 和 mode 3,
6.1.4 3B/4B 地址模式
3Byte模式最大容量 = 0x 00 00 00 = 16MB = 128Mbit
4Byte模式最大容量 = 0x 00 00 00 00 =4GB = 32Gbit
W25Q256JV 支持两种地址模式
3Byte模式兼容之前的产品,仅支持128Mbit的数据,为了在3B模式访问更多数据,需要使用 Extended Address 寄存器。
4Byte模式支持访问256Mb到32Gb的数据,4B模式打开时,Extended Address 寄存器不必使用。
Non-Volatile Status Register Bit ADP 控制3B/4B模式,3B模式ADP=0,4B模式ADP=1。出厂默认ADP=0
3B/4B 模式切换命令:Enter 4-Byte Mode (B7h) / Exit 4-Byte Mode (E9h)
6.2 写保护
Note that the chip select pin (/CS) must track the VCC supply level, a pull-up resistor on /CS pin can be used to accomplish this 。/CS引脚电压要参考VCC
上电后,芯片自动进入写失能状态,Status Register Write Enable Latch (WEL) 置0,编写前或擦除前必须写入 写使能 命令,写入或擦除完成时又会自动进入写失能状态。
芯片可以整个写保护或对单独的Block写保护
7 状态和配置寄存器
7.1Status Registers1 状态寄存器1
S7 | S6 | S5 | S4 | S3 | S2 | S1 | S0 |
reserved | TB | BP3 | BP2 | BP1 | BP0 | WEL | BUSY |
Top/Bottom Block Protect 控制BP之上还是之下的block被保护 |
r/w Block Protect 位 |
r 0表示芯片不能编写 |
r 1=芯片忙,正在写入或者擦除,会忽略其他指令 |
SR2
S15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
SUS | CMP | LB3 | LB2 | LB1 | / | QE | SRL |
暂停状态位 |
Complement Protect 反转TB,BP状态 |
Security Register Lock Bits | Quad Enable |
Status Register Protect/Lock 锁定SR,直到一次掉电上电后解锁 |
SR3
S23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
/ | DRV1 | DRV0 | / | / | WPS | ADP | ADS |
Output Driver Strength |
Write Protect Selection 0 = 使用CMP,TB,BP模式写保护 1=单独Block写保护 |
Power-Up Address Mode 表示上电后进入的地址模式 |
Current Address Mode 0表示3Byte地址 1表示4Byte地址 |
7.2Extended Address Register
EA7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
/ | / | / | / | / | / | / |
0:选择上128Mb 1:选择下128Mb |
8 指令
指令在/CS下降沿开始,写入到第一个Byte数据被认为是指令
指令种类:
读取ID |
NOTE:
2. 状态寄存器和设备ID会一直重复直到/CS结束指令
3,Page编写至少1Byte数据,至多256Byte数据输入,超过256B的数据从Page开头覆盖写入
8.2指令描述
8.2.1 Write Enable (06h)
WE命令 设置WEL位,每一次Page编写/擦写WEL位都必须置为1,
8.2.3 Write Disable (04h)
8.2.4 Read Status Register
驱动/CS低时,移入读SR命令,之后SR状态值会在CLK下降沿从DO移出,任何时候都可以读取状态寄存器,甚至在编写,擦写,SR周期,正在进行时。这样允许BUSY状态位被随时检测。
SR数据可以被一直读出。
8.2.5 Write Status Register
写入非易失寄存器时,先发送 Write Enable (06h)命令
写入易失寄存器时,先发送Write Enable for Volatile Status Register (50h) 命令
8.2.8 Enter 4-Byte Address Mode (B7h)
8.2.10 Read Data (03h)
读数据指令允许读一个或连续读多个数据,/CS拉低指令开始,发送完地址后,读出数据,数据地址会自动递增。
BUSY=1时,读数据命令会被忽略。无论3Byte或4Byte地址模式,此命令输入24位地址。
8.2.11 Read Data with 4-Byte Address (13h)
无论3Byte或4Byte地址模式,此命令输入32位地址。
8.2.23 Page Program (02h)
页编写命令允许在已经擦除的位置写入1Byte到256Byte的数据,接收页写入命令前需要发送写使能指令,/CS拉低驱动命令初始化,发送代码“02h”再加上地址,之后发送至少1Byte的数据,数据发送的整个长度内/CS一直保持低电平。
如果整个页 256Byte被编写完,地址的最后8位归零。如果最后8位不是零,时钟的数量超过了这页剩下空间的长度,地址会绕到页的开头。特定情况下,少于156Byte的编写不会影响这一页的其他字节,如果超过256字节被发送到存储器,地址会绕到页的开始,覆盖掉之前发送的字节。
对于写入和擦除命令,最后1Byte发送完成,/CS引脚必须拉高,否则编写指令不会执行。/CS拉高后,在tpp时间内,自动计时的页编写指令就会开始。当页编写过程中,BUSY位可以被读取。页编写过程中BUSY位为1,当编写完成可以接收其他指令时,BUSY位为0. 页编程完成后, 写使能 Write Enable Latch (WEL) 位被清除为0. 如果地址被锁保护,页编程指令无效。
8.2.27 Sector Erase (20h)
扇区擦除命令会将指定扇区擦写为FFh,使用扇区擦除命令前,必须发送写使能命令。/CS拉低并发送“20h”和地址,指令开始。指令发送完拉高/CS指令生效。擦除期间BUSY位为1,擦除完成后BUSY为0,才可以接收其他命令。擦除完成,写使能 Write Enable Latch (WEL) 位被清除为0. 如果地址被锁保护,擦除指令无效。
9.2 Operating Ranges