S25FL256L 256 Mbit SPI Flash Memory Datasheet (Chinese).pdf

预览资料
S25FL256L
256 Mb (32 MB) 3.0 V 的 FL-L 闪存存储器
特性
 具有多个 I/O 的串行外设接口 (SPI)
 通常情况下,数据保持时间为 20 年
–
–
–
–
–
支持时钟极性以及相位模式 0 和 3
具有双倍数据速率 (DDR)选项
具有四线外设接口 (QPI)选项
具有扩展地址:24 或 32 位地址选项
串行指令子集和封装兼容 S25FL-A、 S25FL1-K、 S25FL-P、 S25FL-S
以及 S25FS-S 的 SPI 系列
– 多个 I/O 指令子集和封装兼容 S25FL-A、 S25FL1-K、 S25FL-P、
S25FL-S 以及 S25FS-S 的 SPI 系列
 读取
– 指令:普通、快速、双线 I/O、四线 I/O、双线输出、四线输出、 DDR
四线 I/O
– 模式:回卷突发、持续突发 (XIP)、 QPI
– 串行闪存可发现参数 (SFDP)用于配置信息
 编程结构
 安全特性
–
–
–
–
具有状态和配置寄存器保护
主闪存阵列外有四个安全区域,每个大小为 256 字节
传统块保护:块范围
单独和区域保护
– 单独块锁定:易失性单独扇区 / 块保护
– 指针区域:非易失性扇区 / 块范围
– 安全区域 2 和 3 以及指针区域的电源锁定、密码和永久保护
 技术
– 65 nm 浮栅技术
 CMOS I/O 的单个供电电压
– 2.7 V ~ 3.6 V
 温度范围
– 工业级范围 (–40°C ~ +85°C)
– 扩展的工业级范围 (–40°C ~ +105°C)
– 扩展范围 (–40°C ~ +125°C)
– 含有 256 字节页编程缓冲区的 3.0 V FL-L 闪存存储器
– 编程挂起和恢复
 擦除结构
 封装类型 (所有均无铅)
– 统一的 4 KB 扇区擦除
– 统一的 32 KB 半块擦除
– 统一的 64 KB 块擦除
– 芯片擦除
– 擦除挂起和恢复
 最少具有 10 万次编程 / 擦除周期
– WSON 6 x 8 mm (WNH008)
– 16-SOIC 300 mil (SO3016)
– BGA-24 6 x 8 mm
– 5 x 5 球 (FAB024)封装
– 4 x 6 球 (FAC024)封装
框图
X Decoders
CS#
SCK
SI/IO0
SO/IO1
Memory Array
Y Decoders
I/O
Data Latch
WP#/IO2
Control
Logic
RESET#/IO3
Data Path
RESET#
赛普拉斯半导体公司
文档编号:002-03823 版本 *A
•
198 Champion Court
•
San Jose, CA 95134-1709
•
408-943-2600
修订日期 :March 17, 2016
预览资料
S25FL256L
性能总结
最大读取速度 SDR
时钟速率 (MHz)
50
MBps
快速读取
133
16.5
双线读取
133
33
四线读取
133
66
时钟速率 (MHz)
66
MB/s
指令
读取
6.25
最大读取速度 SDR
指令
DDR 四线读取
66
典型编程和擦除速率
KB/s
操作
854
页编程
4 KB 扇区擦除
80
32 KB 半块擦除
168
64 KB 块擦除
237
典型的电流消耗, –40°C ~ +85°C
操作
快速读取 5 MHz
典型电流
10
单位
mA
快速读取 10 MHz
10
mA
快速读取 20 MHz
10
mA
快速读取 50 MHz
15
mA
快速读取 108 MHz
25
mA
快速读取 133 MHz
30
mA
四线 I/O / QPI 读取 108 MHz
25
mA
四线 I/O / QPI 读取 133 MHz
30
mA
四线 I/O / QPI DDR 读取 33 MHz
15
mA
四线 I/O / QPI DDR 读取 66 MHz
30
mA
编程
40
mA
擦除
40
mA
待机 SPI
20
µA
待机 QPI
60
µA
深度掉电
2
µA
文档编号:002-03823 版本 *A
页 2/143
预览资料
S25FL256L
目录
特性 ........................................................................................ 1
框图 ........................................................................................ 1
性能总结 ................................................................................ 2
1.
1.1
1.2
FL-L 产品系列概况......................................................... 4
概述................................................................................ 4
移植时注意事项.............................................................. 5
硬件接口
6
6
7
7
7
7
7
7
8
8
8
8
8
8
9
9
2.
2.1
2.2
2.3
2.4
2.5
2.6
2.7
2.8
2.9
2.10
2.11
2.12
2.13
2.14
2.15
信号说明.........................................................................
输入 / 输出简介...............................................................
多路输入 / 输出 (MIO).................................................
串行时钟 (SCK)..........................................................
芯片选择 (CS#)..........................................................
串行输入 (SI) /IO0 .....................................................
串行输出 (SO) / IO1...................................................
写保护 (WP#) / IO2....................................................
IO3/RESET# ..................................................................
RESET# .........................................................................
电源电压 (VDD)...........................................................
电源和信号接地 (VSS)................................................
无连接 (NC)................................................................
保留供将来使用 (RFU)...............................................
请勿使用 (DNU)..........................................................
系统框图.........................................................................
3.
3.1
3.2
3.3
3.4
信号协议.......................................................................
SPI 时钟模式................................................................
命令协议.......................................................................
接口状态.......................................................................
数据保护.......................................................................
11
11
12
17
21
4.
4.1
4.2
4.3
4.4
4.5
电气规范.......................................................................
最大绝对额定值............................................................
闭锁特性.......................................................................
工作范围.......................................................................
加电和掉电 ...................................................................
直流特性.......................................................................
22
22
22
23
24
26
5.
5.1
5.2
5.3
5.4
5.5
5.6
时序规范.......................................................................
切换波形的关键............................................................
交流测试条件 ...............................................................
复位..............................................................................
SDR 交流特性 ..............................................................
DDR 交流特性 ..............................................................
嵌入式算法性能表 ........................................................
29
29
29
30
33
36
38
6.
6.1
6.2
物理接口....................................................................... 39
连接图 .......................................................................... 39
物理框图....................................................................... 42
7.4
JEDEC JESD216 串行闪存可发现参数
(SFDP)空间............................................................... 47
7.5 安全区域地址空间 ......................................................... 47
7.6 寄存器 ........................................................................... 48
8.
8.1
8.2
8.3
8.4
8.5
8.6
8.7
数据保护 ....................................................................... 62
安全区域 ....................................................................... 62
深度掉电 ....................................................................... 63
写入使能指令 ................................................................ 63
写入保护信号 ................................................................ 64
状态寄存器保护 (SRP1、 SRP0).............................. 64
阵列保护 ....................................................................... 65
单独和区域保护............................................................. 69
9.
9.1
9.2
9.3
9.4
9.5
9.6
9.7
9.8
9.9
9.10
9.11
9.12
命令............................................................................... 75
命令集汇总 .................................................................... 75
标识命令 ....................................................................... 81
寄存器访问命令............................................................. 84
读取闪存阵列命令 ......................................................... 97
编程闪存阵列命令 ....................................................... 106
擦除闪存阵列命令 ....................................................... 108
安全区域阵列命令 ....................................................... 114
单块锁定命令 .............................................................. 116
指针区域命令 .............................................................. 120
单独和区域保护 (IRP)命令 ..................................... 121
复位命令 ..................................................................... 126
深度掉电命令 .............................................................. 127
10. 数据完整性 .................................................................. 130
10.1 耐久性 ......................................................................... 130
10.2 数据保持时间 .............................................................. 130
11.
11.1
11.2
11.3
软件接口参考 .............................................................. 131
JEDEC JESD216B 串行闪存可发现参数 .................... 131
器件 ID 地址映射 ......................................................... 138
初始供应状态 .............................................................. 138
12. 订购信息 ..................................................................... 139
12.1 订购器件型号 .............................................................. 139
术语表
13.
文档修订记录 .............................................................. 142
软件接口
7.
7.1
7.2
7.3
地址空间映射 ...............................................................
概述..............................................................................
闪存存储器阵列............................................................
ID 地址空间 ..................................................................
文档编号:002-03823 版本 *A
46
46
46
47
页 3/143
预览资料
S25FL256L
1. FL-L 产品系列概况
1.1
概述
赛普拉斯 FL-L 器件系列是非易失性闪存存储器产品,它们采用了以下两种技术:

浮栅技术

65 nm 光刻技术
FL-L 系列产品通过串行外设接口 (SPI)连接主机系统。该产品支持传统 SPI 的一比特串行输入和输出 (即单线 I/O 或 SIO)、可选
的两比特 (即双线 I/O 或 DIO)、四比特 (四线 I/O 或 QIO) 以及四线外设接口 (QPI)命令。另外,它还为 QIO 和 QPI 提供了双
倍数据速率 (DDR)命令支持,在时钟的双边沿上传送地址和读取数据。
该产品具有页编程缓冲区,允许在一个操作中最多编程 256 字节 ,并提供单独的 4 KB 大小扇区、32 KB 大小半块、64 KB 大小块或
全芯片擦除能力。
FL-L 系列器件支持更高的时钟频率和四线命令,因此指令读取的传输率能够等于或超过传统的并行接口、异步、 NOR 闪存存储器,
同时可明显降低信号连接的计数。
FL-L 系列产品为各种移动或嵌入式应用提供了大容量、灵活性高和速度快等性能。该产品系列为空间,信号连接,功耗有限的系统提
供了一个理想的存储解决方案。这些存储器的灵活性和性能比普通串行闪存器件好很多。最适合将它们用于传送代码到 RAM,直接
执行代码 (XIP)和存储可重新编程的数据。
文档编号:002-03823 版本 *A
页 4/143
预览资料
1.2
S25FL256L
移植时注意事项
1.2.1
特性比较
FL-L 系列的命令集以及封装与前代 FL-S、 FL1-K 和 FL-P 系列相兼容。
表 1.1 赛普拉斯 SPI 系列比较
参数
技术节点
架构
FL-L
FL-S
FL1-K
65 nm
65 nm
90 nm
90 nm
浮栅
MirrorBit® Eclipse™
浮栅
MirrorBit®
量产中
量产中
量产中
256 Mb
128 Mb - 1 Gb
4 Mb - 64 Mb
32 Mb - 256 Mb
x1、 x2、 x4
量产状态
容量
FL-P
总线宽度
x1、 x2、 x4
x1、 x2、 x4
x1、 x2、 x4
供电电压
2.7 V - 3.6 V
2.7 V - 3.6 V / 1.65 V - 3.6 V VIO
2.7 V - 3.6 V
2.7 V - 3.6 V
正常读取速度
6 MB/s (50 MHz)
6 MB/s (50 MHz)
6 MB/s (50 MHz)
5 MB/s (40 MHz)
快速读取速度
16.5 MB/s (133 MHz)
17 MB/s (133 MHz)
13 MB/s (108 MHz)
13 MB/s (104 MHz)
双线读取速度
33 MB/s (133 MHz)
26 MB/s (104 MHz)
26 MB/s (108 MHz)
20 MB/s (80 MHz)
四线读取速度
66 MB/s (133 MHz)
52 MB/s (104 MHz)
52 MB/s (108 MHz)
40 MB/s (80 MHz)
四线读取速度 (DDR)
66 MB/s (66 MHz)
80 MB/s (80 MHz)
–
–
256 B
256 B/512 B
256 B
256 B
4 KB/32 KB/64 KB
64 KB/256 KB
4 KB/64 KB
64 KB/256 KB
–
4 KB (可选)
–
4 KB
500 KB/s
136 KB/s (4 KB)
437 KB/s (64 KB)
130 KB/s
854 KB/s (256 B)
1.2 MB/s (256 B)
1.5 MB/s (512 B)
365 KB/s
170 KB/s
1024 B
1024 B
768 B (3 256 B)
506 B
单独和区域保护或高级的扇区保护
有
有
无
无
擦除挂起 / 恢复
有
有
有
无
编程挂起 / 恢复
有
有
有
无
编程缓冲区大小
擦除扇区 / 块大小
参数扇区大小
80 KB/s (4 KB)
扇区 / 块擦除速率 (典型值)
168 KB/s (32 KB)
237 KB/s (64 KB)
页编程速率 (典型值)
安全区域 /OTP
–40°C 到 +85°C
工作温度
–40°C 到 +105°C
–40°C 到 +125°C
–40°C 到 +85°C
–40°C 到 +105°C
–40°C 到 +85°C
–40°C 到 +85°C
–40°C 到 +105°C
注意:
欲了解详细信息,请参考单独的数据手册。
文档编号:002-03823 版本 *A
页 5/143
预览资料
S25FL256L
硬件接口
支持多输入 / 输出的串行外设接口 (SPI-MIO)
很多具有独立的并行控制、地址和数据信号的存储器件与其主机系统连接时,需要大量的信号连接和更大的封装。由于大量信号交
换,因此信号连接的数量越多,功耗也越高;较大的封装尺寸会增加成本。
FL-L 系列通过 6 个信号将所有控制、地址和数据信息串行传输给主机系统,因此可以减少信号连接的数量。这样可以降低存储器封
装的成本和信号交换的功耗,减少主机信号连接的数量,主机可以节省连接以供其他功能使用。
FL-L 系列使用了业界标准的单比特 SPI,同时支持可选的扩展命令,用于进行两比特 (双线)或 4 比特 (四线)宽的串行传输。
这种多宽度接口被称为 SPI Multi-I/O 或 SPI-MIO。
2. 信号说明
2.1
输入 / 输出简介
表 2.1 信号表
信号名称
类型
说明
RESET#
输入
硬件复位:低 = 器件复位并返回待机状态,准备接收命令。该信号具有一个内部上拉电阻;在主机系统中如果不使用,
可以不连接。
SCK
输入
串行时钟
CS#
输入
芯片选择
SI/IO0
I/O
单比特数据命令的串行输入或双线 / 四线命令的 IO0。
SO/IO1
I/O
单比特数据命令的串行输出双线或四线命令的 IO1。
I/O
在四线模式 (CR1V[1] = 1)下,为 IO2。
不在四线模式 (CR1V[1] = 0 和 SR1NV[7] = 1)下时,为写保护。
WP#/IO2
该信号具有一个内部上拉电阻;在主机系统中,如果不使用四线模式或不用于写保护,可以不连接。如果通过设置
SR1NV[7] = 1 和 CR1V[1] = 0 使能写保护,那么在 WRR 或 WRAR 命令期间,主机系统需要将 WP# 驱动为高或低电平。
IO3/RESET#
I/O
IO3:处于四线 I/O 模式 (当配置寄存器 1 的 QUAD 位 CR1V[1] = 1 时)或处于 QPI 模式 (CS# 低,且配置寄存器 2
的 QPI 位 CR2V[3] = 1 时)。
RESET# :(CR2V[7] = 1,并且未处于四线 I/O 模式(CR1V[1] = 0)时或在四线模式下(CR1V[1] = 1)且 CS# 高时)。
该信号具有一个内部上拉电阻;在主机系统如果不使用四线模式或不用于 RESET#,可以不连接。
VDD
电源
电源
VSS
电源
接地
NC
未使用
未连接:没有任何器件内部信号连接到封装连接器,将来也不计划用于信号连接。该连接可以安全地用于印刷电路板
(PCB)上的信号路由空间。然而,连接到 NC 的任何信号电压电平不能大于 VDD。
RFU
保留
保留供将来使用:当前没有任何器件内部信号连接到封装连接器,但是将来可能使用。不建议将 RFU 连接到 PCB 电路
板上的任何信号,以便 PCB 可以在尺寸兼容的器件中实现未来的增强型特性。
DNU
保留
请勿使用:器件的内部信号可能被连接到封装连接器。赛普拉斯可能使用该连接进行测试或其他用途,不应使该信号与
任何主机系统信号连接。DNU 信号等于 VIL 时,与该信号有关的所有功能均无效。该信号有一个内部下拉电阻,在主机
系统中可以不连接或连接到 VSS 电压请勿将这些连接用于 PCB 信号路由通道。请勿将主机系统的任何信号连接到该信
号。
注意:
1. 使用内部上拉或下拉电阻的输入驱动电流低于 2 A。只有在上电过程中,该电流才最大 (在 4 S 内为 150 A)。如果采用普通的工艺技术、 Vcc = 3.3 V 和
温度 = –40°C,则上拉或下拉电阻的阻值为 ~4.5 M ;温度 = 90°C 时,该值为 ~6.6 M。
文档编号:002-03823 版本 *A
页 6/143
预览资料
2.2
S25FL256L
多路输入 / 输出 (MIO)
传统 SPI 单比特命令 (即单 IO 或 SIO)只能通过串行输入 (SI)信号将主机的数据发送到存储器内。数据会通过串行输出 (SO)
信号从存储器内串行回送到主机
双线或四线输入 / 输出 (I/O)命令只能通过 SI/IO0 信号将指令发送给存储器。地址或数据可按两比特一组通过 IO0 和 IO1 从主机发
送到存储器内,也可以按照四位 (半字节)一组通过 IO0、 IO1、 IO2 和 IO3 发送。数据同样可以按照两比特一组通过 IO0 和 IO1 从
存储器回送给主机,也可以按照四位 (半字节)一组通过 IO0、 IO1、 IO2 和 IO3 被回送。
QPI 模式允许以四位 (半字节)一组的方式将所有指令、地址和数据通过 IO0、 IO1、 IO2 和 IO3 从主机传送到存储器内。数据同样
可以按四位 (半字节)一组的方式通过 IO0、 IO1、 IO2 和 IO3 回送到主机内。
2.3
串行时钟 (SCK)
该输入信号为 SPI 接口提供了同步参考。可以在 SCK 信号的上升沿上锁存指令、地址或数据。在 SDR 命令中,数据输出会在 SCK
的下降沿后发生变化。
2.4
芯片选择 (CS#)
芯片选择信号指示某一命令将信息发送到器件或从器件发送信息出来,并指示存储器件的相关信号。
当 CS# 信号为高逻辑状态时,不会选择芯片,所有输入信号均被忽略,并且所有输出信号均为高阻抗。除非正在进行某个内部嵌入式
操作,否则器件会处于待机模式。嵌入式操作将状态寄存器 1 正在写入位 (SR1V[0])设置为 1,直到该操作完成为止。嵌入式操作
的示例包括:编程、擦除或写入寄存器 (WRR)等操作。
将 CS# 输入驱动为低逻辑状态可以启用器件,使器件进入工作模式。上电后,必须等到 CS# 的下降沿到来后才能执行其他命令。
2.5
串行输入 (SI) /IO0
该输入信号 用于将数据串行传输给器件。它接收命令、地址和要写入闪存的数据。各个数值在串行 SCK 时钟信号的上升沿上被锁存。
在执行双线和四线命令过程中, SI 变成 IO0 (一个输入和输出),用于接收指令、地址和数据 (数值在串行 SCK 时钟信号的上升沿
上被锁存),并在 SCK 下降沿上 (若执行 SDR 命令)或在任意一个边沿上 (若执行 DDR 命令)移出数据。
2.6
串行输出 (SO) / IO1
该输出信号 用于串行传输器件中的数据。在串行 SCK 时钟信号的下降沿上移出数据。在执行双线和四线命令过程中, SO 变成 IO1
(一个输入和输出),用于接收地址和数据 (数值在串行 SCK 时钟信号的上升沿上被锁存),并在 SCK 下降沿上 (若执行 SDR 命
令)或在任意边沿上 (若执行 DDR 命令)移出数据。
2.7
写保护 (WP#) / IO2
将 WP# 驱动为低电平(VIL)时,如果将状态寄存器 1(SR1NV[7])或(SR1V[7])的状态寄存器保护位 0(SRP0_NV)或(SRP0)
设置为 1,那么不能写入到状态寄存器、配置寄存器或 DLR 寄存器内。在这种情况下,会忽略选择 SR1NV、SR1V、CR1NV、CR1V、
CR2NV、 CR2V、 CR3NV、 DLRNV 和 DLRV 的命令,并且不会报告任何错误。
这样可以防止传统的块保护设置发生更改。因此,在执行更改状态寄存器、配置寄存器或 DLR 寄存器 (通过将 SRP0_NV 设置为 1)
的命令时,如果 WP# 为低电平,则不能改变存储器中受传统块保护功能保护的所有数据字节。同样,也不能编程安全区域锁定位
(LB3-LB0)。
使能四线模式 (CR1V[1] = 1)或 QPI 模式 (CR2V[3] = 1)时,会禁用 WP# 的功能。当使能四线模式或 QPI 模式 (CR2V[3] = 1)
时,WP# 将被 IO2 输入 / 输出替换,用于接收地址和数据(数值在串行 SCK 时钟信号的上升沿上被锁存),并在 SCK 下降沿上(若
执行 SDR 命令)或在任意边沿上 (若执行 DDR 命令)移出数据。
WP# 具有一个内部上拉电阻;未连接时,WP# 为高电平(VIH),如果四线模式、QPI 模式或保护功能未使用该引脚,则在主机系统
中它可以被保持为不连接状态。
文档编号:002-03823 版本 *A
页 7/143
预览资料
2.8
S25FL256L
IO3/RESET#
当使能四线模式 (CR1V[1] = 1)或 QPI 模式 (CR2V[3] = 1)时,会将 IO3 作为输入 / 输出使用,用于接收地址和数据 (数值在串
行 SCK 时钟信号的上升沿上被锁存),并在 SCK 下降沿上 (若执行 SDR 命令)或在任意边沿上 (若执行 DDR 命令)移出数据。
通过写入配置寄存器 2 的非易失性位 (7CR2NV[7] = 1)来启用 IO3/RESET# 功能时, IO3/RESET# 也可用于初始化硬件复位功能。
如果器件并非处于四线模式 (114、 144、 444),即 CR1V[1] = 0 或 CS# 为高电平,则只能将该输入作为 RESET# 使用。如果使能
了四线模式 (CR1V[1] = 1)或 QPI 模式 (CR2V[3] = 1)或通过将 CS# 设置为低电平来选择器件,则只能将 IO3/RESET# 作为 IO3
传送信息。 CS# 为高电平时, IO3/RESET# 不能传送信息,只能将它作为复位输入使用。在四线模式 (114、 144、 444)下,
如果在 CS# 为高电平时,则复位功能在这些模式下仍可用。
当系统进入复位状态时,必须将 CS# 信号驱动为高电平 (作为复位过程的一部分),并将 IO3/RESET# 信号驱动为低电平。 CS# 变
为高电平时,IO3/RESET# 输入便从 IO3 切换为复位输入。当 CS# 保持为高电平和 IO3/RESET# 信号保持为低电平(tRP)时,会检
测到复位条件。如果不需要进行复位操作,则系统必须在向存储器发送数据的操作结束时将 IO3/RESET# 和 CS# 驱动为高电平。将
数据发送给主机系统后,存储器会驱动 IO3 为高电平,使之保持高电平 tCS 的时长。这样可确保 IO3/RESET# 不进入悬空状态,也不
会被内部或外部被动上拉电阻慢慢地上拉到高电平。因此, tRP 时间结束前 IO3/RESET# 不会被视为高电平,从而也不会触发意外的
复位事件。
CR2V[7] = 0 时, IO3/RESET# 输入的复位功能被禁用。
IO3/RESET# 输入具有一个内部上拉电阻;如果四线模式或复位功能未使用该输入,则在主机系统中它可以保持为不连接状态。如果
主机系统将 IO3/RESET# 信号驱动为高电平,然后停止驱动该信号,则通过使用内部上拉电阻将它保持为高电平。
请注意,如果多个 SPI-MIO 存储器中任意一个工作于四线 I/O 模式,则它们不能共享 IO3/RESET# 输入,因为可能将发送给或从一个
选定存储器发送的 IO3 作为第二个非选定存储器的复位信号,如果该存储器共享了同一个 IO3/RESET# 信号。
2.9
RESET#
RESET# 输入提供了一种硬件复位方法,该方法可使器件返回待机状态,准备好接收命令。如果将 RESET# 驱动为逻辑低 (VIL)
的时间不小于 tRP 时长,则器件将启动硬件复位过程。
给器件上电并经过 tPU 时间后, RESET# 也会导致相同的初始化过程。
当 RESET# 被拉为低电平时,为保证数据的完整性,一旦器件复位完成,准备好接收一个命令序列,则应该重新启动被硬件复位中
断的操作。
RESET# 具有一个内部上拉电阻;如果不使用该引脚,则在主机系统中它可以保持为不连接状态。如果主机系统将复位信号驱动为
高电平,然后停止驱动该信号,则通过使用内部上拉电阻将该信号保持为高电平。
如果 RESET# 输入在某种封装中定义为不可用时,器件的 RESET# 被锁定为非活动状态。
2.10
电源电压 (VDD)
VDD 是所有器件内部逻辑的电源电压。这种单个电源电压为器件的所有内部功能 (包括读取、编程和擦除操作)供电。
2.11
电源和信号接地 (VSS)
VSS 器件内核、输入信号接收器和输出驱动器的公共电压开漏和接地参考。
2.12
无连接 (NC)
没有任何器件内部信号被连接到封装连接器,将来也不计划用于信号连接。该连接可以安全地用作印刷电路板 (PCB)上的信号路
由空间。
2.13
保留供将来使用 (RFU)
当前没有任何器件内部信号被连接到封装连接器,留给将来使用。不建议将 RFU 连接到 PCB 电路板上的任何信号,以便 PCB 可以
在尺寸兼容的器件中实现未来的增强型特性。
文档编号:002-03823 版本 *A
页 8/143
预览资料
2.14
S25FL256L
请勿使用 (DNU)
器件的内部信号被连接到封装连接器。赛普拉斯可能使用该连接进行测试或其他用途,不应使该信号与任何主机系统信号连接。
DNU 信号处于低电平 (VIL)时,与该信号有关的所有功能均无效。该信号使用了一个内部下拉电阻,在主机系统中可以保持为不连
接状态或被连接到 VSS。请勿将该 DNU 信号连接到 PCB 板上的任意信号。请勿将主机系统的任何信号连接到该信号。
2.15
系统框图
图 2.1 SPI 总线上的总线主设备和存储器件之间的关系 — 单比特数据路径
RESET#
WP#
RESET#
WP#
SI
SO
SCK
SI
SO
SCK
CS2#
CS1#
CS#
CS#
SPI
Bus Master
SPI Flash
SPI Flash
图 2.2 SPI 总线上的总线主设备和存储器件之间的关系 — 双比特数据路径
RESET#
WP#
RESET#
WP#
IO1
IO0
SCK
IO1
IO0
SCK
CS2#
CS1#
SPI
Bus Master
文档编号:002-03823 版本 *A
CS#
CS#
SPI Flash
SPI Flash
页 9/143
预览资料
S25FL256L
图 2.3 SPI 总线上的总线主设备和存储器件之间的关系 — 四比特数据路径 - 单独 RESET#
RESET#
IO3
IO2
IO1
IO0
SCK
RESET#
IO3
IO2
IO1
IO0
SCK
CS2#
CS1#
SPI
Bus Master
CS#
CS#
SPI Flash
SPI Flash
图 2.4 SPI 总线上的总线主设备和存储器件之间的关系 — 四比特数据路径 - I/O3 / RESET#
IO3 / RESET#
IO2
IO1
IO0
SCK
CS#
SPI
Bus Master
文档编号:002-03823 版本 *A
IO3 / RESET#
IO2
IO1
IO0
SCK
CS#
SPI Flash
页 10/143
预览资料
3.
S25FL256L
信号协议
3.1
SPI 时钟模式
3.1.1
单倍数据速率 (SDR)
通过嵌入式微控制器 (总线主设备)可以将 FL-L 系列驱动到以下任意一种时钟模式。

模式 0:时钟极性 (CPOL) = 0、时钟相位 (CPHA) = 0

模式 3:CPOL = 1、 CPHA = 1
在这两种模式中,器件的输入数据总是在 SCK 信号的上升沿上被锁存,输出数据总是在 SCK 时钟信号的下降沿上可用。
两种模式间的区别主要是:当总线主设备处于待机模式并且不传输数据时的时钟极性。

CPOL = 0、 CPHA = 0 时, SCK 将处于逻辑低状态

CPOL = 1、 CPHA = 1 时, SCK 将处于逻辑高状态
图 3.1 支持 SPI SDR 模式
CPOL=0_CPHA=0_SCLK
CPOL=1_CPHA=1_SCLK
CS#
SI_IO0
SO_IO1
MSB
MSB
整个文档其余部分的时序图通常都是通过显示 SCK 在 CS# 下降沿时的高和低电平来显示模式 0 和模式 3 的。在某些情况下,时序图
可能通过显示 SCK 在 CS# 下降沿时的低电平来显示唯一的模式 0。而唯一的模式 3 的时序图只是表示在 CS# 的下降沿上时钟信号为
高电平,因此模式 3 不需要从 CS# 下降沿后到 SCK 上升沿前的建立和保持时间。
SCK 周期是从一个 SCK 下降沿到下另一个 SCK 下降沿进行测量 (计数)得到的。在模式 0 下,由于开始执行某个命令时 SCK 已经
处于低电平状态,因此执行命令时的第一个 SCK 周期指的是从 CS# 的下降沿到第一个 SCK 下降沿。
3.1.2
双倍数据速率 (DDR)
DDR 命令也支持模式 0 和模式 3。与 SDR 命令相同,在 DDR 命令中,指令位也是在时钟的上升沿上被锁存的。但是指令后的地址
和输入数据则在 SCK 的双边沿上被锁存。最后指令位在 SCK 的下降沿上被锁存之后,第一个地址位会在随后的第一个 SCK 上升沿
上被锁存。第一个输出数据位则在最后访问延迟 (虚拟)周期结束后的下降沿上被发送。
与 SDR 命令相同,SCK 周期也是从一个 SCK 下降沿到下一个 SCK 下降沿进行测量(计数)得到的。在模式 0 下,由于开始执行某
个命令时 SCK 已经处于低电平状态,因此执行命令时的第一个 SCK 周期指的是从 CS# 的下降沿到第一个 SCK 下降沿。
文档编号:002-03823 版本 *A
页 11/143
预览资料
S25FL256L
图 3.2 支持 SPI DDR 模式
CPOL=0_CPHA=0_SCLK
CPOL=1_CPHA=1_SCLK
CS#
Transfer_Phase
IO0
3.2
Instruction
Inst. 7
Address
Inst. 0
Mode
Dummy / DLP
A28 A24
A0 M4 M0
DLP.
DLP.
D0 D1
IO1
A29 A25
A1 M5 M1
DLP.
DLP.
D0 D1
IO2
A30 A26
A2 M6 M2
DLP.
DLP.
D0 D1
IO3
A31 A27
A3 M7 M3
DLP.
DLP.
D0 D1
命令协议
主机系统和 FL-L 存储器件系列之间都是以单位 (unit)形式 (称为命令)进行通信的。请参考第 75 页上的 9.,命令了解所有命令的
定义和详情。
所有命令都以一个 8 位指令开始,该指令用于选择信息传输类型或器件将被执行的操作。命令可能也具有一个地址、指令修饰符、延
迟周期、传送到存储器或者是从存储器传送的数据。主机系统和存储器件之间的所有指令、地址和数据信息都是按顺序传输的。
通过一个使用 3 个数字的数字命令法来划分命令协议,以便能参考三个命令阶段的发送宽度。

指令;

地址和指令修饰符 (连续读取模式位);

数据。
单比特宽的命令只通过 SI 信号依次传输指令和地址或数据。数据会通过 SO 信号从存储器串行回送到主机内。对于单比特宽指令、单
比特宽地址和修饰符、单比特数据的结构,被称为 1-1-1 命令协议。
双线输出 (O)或四线输出 (O)命令从主机端通过 SI (IO0)将地址和虚拟周期依次进行发送。数据可以按照两比特一组通过 IO0
和 IO1 从存储器回送到主机或按照四比特 (半字节)一组通过 IO0、 IO1、 IO2 和 IO3 回送。对于双线输出和四线输出命令,这种结
构分别被称为 1-1-2 和 1-1-4 命令协议。
双线或四线输入 / 输出 (I/O)命令会按照两比特一组通过 IO0 和 IO1 将主机的数据传输给存储器或按照四比特 (半字节)一组通过
IO0、 IO1、 IO2 和 IO3 从主机发送,然后传送虚拟周期。数据也可以按照同样的方式回送给主机。对于双线 I/O 和四线 I/O 命令,这
种结构分别被称为 1-2-2 和 1-4-4 命令协议。
FL-L 系列也支持 QPI 模式,在该模式下所有信息 (包括指令、地址、修饰符和数据)都以 4 比特的宽度传输。这种形式被称为 4-44 命令协议。
命令的结构如下:

每个命令都从 CS# 的下降沿开始执行,并在 CS# 的上升沿结束。主机通过一个命令将芯片选择(CS#)信号驱动为低电平,
从而能够选择器件。

串行时钟 (SCK)标记了主机和存储器之间所传输的单个位或一组位。

每个命令都以一个 8 位(一字节)的指令开始。该指令用于选择信息传输类型或器件将被执行的操作。该指令在 SCK 的上升
沿上进行传送。但某些读指令被前一个读指令修改,因此该指令要从更早的命令中显示。这种形式被称为连续读取模式。器
件处于连续读取模式时,由于该指令和用于初始化连续读取模式的读取命令相同,因此各个指令位不会在开始执行命令时被
传输。在该模式下,命令会从读取地址开始。因此,连续读取模式会将处于相同类型的读取命令中的每个读命令内删除 8 个
指令位。

该指令可以单独在设备的某些地址空间中选择一个位置或者跟着地址位一起选择。该指令用于确定所使用的地址空间。地址
可能是 24 位或 32 位(字节边界)的地址。地址会在 SCK 的上升沿(若执行 SDR 命令)或在 SCK 双边沿上(若执行 DDR
命令)得到传送。

在传统的 SPI 模式下,传输指令后所有传输宽度都由已发送的指令确定。以下表示的可能是其中一种传输类型:仅通过串行
输入 (SI)或串行输出 (SO)信号传输单一比特;通过 IO0 和 IO1 信号每一 (双线)传输以两比特形式进行发送;或通过
IO0-IO3 信号每一 (四线)传输以 4 比特形式进行。在双比特或四比特组中,最低有效位是通过 IO0 信号发送的。其他更高
有效位则按照权值大小通过编号更高的 IO 信号发送。单一位或并行位组则按照从最高有效位到最低有效位的顺序进行传输。
文档编号:002-03823 版本 *A
页 12/143
预览资料
S25FL256L

在 QPI 模式下,所有信息都按照 4 比特宽 (四线传输)通过 IO0-IO3 信号进行发送。

双线和四线 I/O 读命令在发送地址后将发送一个指令修饰符(称为连续读取模式位),以指明下一个命令的类型与之前的命令
相同,而它并不是明确的命令。这些模式位用于初始化或结束连续读取模式。因此,下一条命令只会提供新地址和模式位,
并不提供指令字节。当某个命令序列中重复了相同的命令类型时,会减少发送每一个命令所需要的时间。模式位会在 SCK 的
上升沿 (若执行 SDR 命令)或在 SCK 双边沿上 (若执行 DDR 命令)进行传送。

地址或模式位发送之后可以接着发送将被写入存储器的数据,也可以是一个读延迟周期 (数据返回给主机前)。

写入数据位传输会在 SCK 的上升沿 (若执行 SDR 命令)或在 SCK 双边沿上 (若执行 DDR 命令)锁存。

SCK 会在读访问的延迟周期内继续进行切换。该延迟(又称为虚拟周期)可能为 0 到几个 SCK 周期。最后的读取延迟周期结
束后,第一次读取的数据位会在 SCK 下降沿上被输出。第一次读取的数据位被认为是在下一个 SCK 下降沿上传输给主机的。
将在 SCK 的下一个上升沿 (若执行 SDR 命令)或在 SCK 的任一沿上 (若执行 DDR 命令)进行下一次传输操作。

如果命令将读数据返回给主机,则存储器件会继续发送数据,直到主机将 CS# 信号驱动为高电平为止。结束读取数据序列中
任一个传输操作后,都可以将 CS# 信号驱动为高电平。这样会终止命令。

命令被终止时,不会再返回数据,此时主机可将 CS# 输入信号驱动为高电平。传输单独指令的第八位或最后写数据字节的第
八位后,CS# 信号必须变为高电平。这样,当位数量在 CS# 被驱动为低电平后是 8 位的整数倍时,必须将 CS# 信号驱动为
高电平。如果 CS# 信号在指令或写入数据的 8 位边界后没有变为高电平,该命令将被拒绝,并且不能执行该命令。

所有指令、地址和模式位均被移入到器件内,并且先发送最高有效位 (MSB)。数据位都被移入到器件或从器件移出,并且
要先传输 MSB。所有数据都以字节为单位进行传输,并且先发送最低地址字节。随后的数据字节按照从最低到最高字节地址
的顺序 (即字节地址递增)进行发送。

在编程、擦除或写周期 (嵌入式操作)中,尝试读取闪存阵列的操作均被忽略。嵌入式操作仍继续进行而不受任何影响。执
行嵌入式操作时只接受少数命令集。这些信息会在单独命令的说明部分进行介绍。

执行时间会因命令不同而发生变化。提供用于读取某个执行命令的状态信息的命令,可确定命令结束的时间,并且确定该命
令是否被成功执行。
文档编号:002-03823 版本 *A
页 13/143
预览资料
3.2.1
S25FL256L
命令顺序示例
图 3.3 单独指令的命令
CS#
SCK
SI_IO0
7
6
5
4
3
2
1
0
SO_IO1-IO3
Phase
Instruction
图 3.4 单线输入命令
CS#
SCLK
SO_IO1-IO3
7
6
5
4
3
2
1
0
7
6
5
4
3
2
1
0
SO
Phase
Instruction
Input Data
图 3.5 单线输出命令 (没有延迟)
CS#
SCLK
SI
7
6
5
4
3
2
1
0
SO
7
Phase
6
5
Instruction
4
3
2
1
0
7
6
5
4
Data 1
3
2
1
0
1
0
Data 2
图 3.6 单线 I/O 命令 (有延迟)
CS#
SCLK
SI
7
6
5
4
3
2
1
0 31
1
0
SO
7
Phase
Instruction
Address
6
5
Dummy Cycles
4
3
2
Data 1
图 3.7 双线输出读命令
CS#
SCK
IO0
7
6
5
4
3
2
1
0
31
1
0
IO1
Phase
文档编号:002-03823 版本 *A
Instruction
Address
Dummy Cycles
6
4
2
0
6
4
2
0
7
5
3
1
7
5
3
1
Data 1
Data 2
页 14/143
预览资料
S25FL256L
图 3.8 四线输出读命令
CS#
SCK
IO0
7
6
5 4
4 0
4
0 4
0
4 0
4
0 4
IO1
5 1
5
1 5
1
5 1
5
1
5
IO2
6 2
6
2 6
2
6 2
6
2
6
IO3
7 3
7
3 7
3
7 3
7
3
7
Phase
3
2 1
0 31
Instruction
1
0
Address
Dummy
D1
D2
D3
D4
D5
图 3.9 双线 I/O 命令
CS#
SCK
IO0
7
6
5
4
3
2
1
0
IO1
Phase
30
2
0
6
4
2
0
6
4
2
0
6
4
2
0
31
3
1
7
5
3
1
7
5
3
1
7
5
3
1
Instruction
Address
Mode
Dum
Data 1
Data 2
图 3.10 四线 I/O 命令
CS#
SCLK
IO0
7
6
5
0 28
4
0
4
0
4
0
4
0
4
0
4
0
IO1
29
5
1
5
1
5
1
5
1
5
1
5
1
IO2
30
6
2
6
2
6
2
6
2
6
2
6
2
IO3
31
7
3
7
3
7
3
7
3
7
3
7
3
Phase
4
3
2
1
Instruction
Address Mode
Dummy
D1
D2
D3
D4
注意:灰色显示的是可选位,在该周期中主机无需发送这些位。
图 3.11 在 QPI 模式下的四线 I/O 读命令
CS#
SCLK
IO0
4
0
28
4
0
4
0
4
0
4
0
4
0
4
0
IO1
5
1
29
5
1
5
1
5
1
5
1
5
1
5
1
IO2
6
2
30
6
2
6
2
6
2
6
2
6
2
6
2
IO3
7
3
31
7
3
7
3
7
3
7
3
7
3
7
3
Phase
Instruct.
Address
Mode
Dummy
D1
D2
D3
D4
注意:灰色显示的是可选位,在该周期中主机无需发送这些位。
文档编号:002-03823 版本 *A
页 15/143
预览资料
S25FL256L
图 3.12 DDR 双线 I/O 读命令
CS#
SCLK
IO0
7
6
5
0 2824201612 8 4 0 4 0
7 6 5 4 3 2 1 0 4 0 4 0
IO1
2925211713 9 5 1 5 1
7 6 5 4 3 2 1 0 5 1 5 1
IO2
302622181410 6 2 6 2
7 6 5 4 3 2 1 0 6 2 6 2
IO3
312723191511 7 3 7 3
7 6 5 4 3 2 1 0 7 3 7 3
Phase
4
3
2
1
Instruction
Address
Mode
Dummy
DLP
D1 D2
注意:
1. 灰色显示的是可选位,在该周期中主机无需发送这些位。
图 3.13 在 QPI 模式下的 DDR 四线 I/O 读命令
CS#
SCLK
IO0
4
0
28 24 20 16 12 8 4 0 4 0
7 6 5 4 3 2 1 0 4 0 4 0
IO1
5
1
29 25 21 17 13 9 5 1 5 1
7 6 5 4 3 2 1 0 5 1 5 1
IO2
6
2
30 26 22 18 14 10 6 2 6 2
7 6 5 4 3 2 1 0 6 2 6 2
IO3
7
3
31 27 23 19 15 11 7 3 7 3
7 6 5 4 3 2 1 0 7 3 7 3
Phase
Instruct.
Address
Mode
Dummy
DLP
D1
D2
注意:
1. 灰色显示的是可选位,在该周期中主机无需发送这些位。
有关每个命令的其他序列框图,请参考第 75 页上的命令中的内容。
文档编号:002-03823 版本 *A
页 16/143
预览资料
3.3
S25FL256L
接口状态
本节将说明与 SPI 接口状态相应的输入和输出信号电平。
表 3.1 接口状态汇总
接口状态
VDD
SCK
CS#
RESET#
IO3/RESET#
WP#/IO2
SO/IO1
SI/IO0
下电状态
< VDD (低)
X
X
X
X
X
Z
X
< VDD (关闭)
X
X
X
X
X
Z
X
上电 (冷)复位
≥ VDD (最小值)
X
HH
X
X
X
Z
X
硬件 (热)复位非四线模式
≥ VDD (最小值)
X
X
HL
HL
X
Z
X
硬件 (热)复位四线模式
≥ VDD (最小值)
X
HH
HL
HL
X
Z
X
接口待机
≥ VDD (最小值)
X
HH
HH
HH
X
Z
X
指令周期
(传统 SPI)
≥ VDD (最小值)
HT
HL
HH
HH
HV
Z
HV
≥ VDD (最小值)
HT
HL
HH
HH
X
Z
HV
≥ VDD (最小值)
HT
HL
HH
HH
X
Z
X
≥ VDD (最小值)
HT
HL
HH
HH
X
MV
X
≥ VDD (最小值)
HT
HL
HH
HH
X
HV
HV
≥ VDD (最小值)
HT
HL
HH
HH
X
X
X
≥ VDD (最小值)
HT
HL
HH
HH
X
MV
MV
≥ VDD (最小值)
HT
HL
HH
HV
HV
HV
HV
≥ VDD (最小值)
HT
HL
HH
X
X
X
X
≥ VDD (最小值)
HT
HL
HH
MV
MV
MV
MV
≥ VDD (最小值)
HT
HL
HH
HV
HV
HV
HV
≥ VDD (最小值)
HT
HL
HH
X
X
X
X
≥ VDD (最小值)
HT
HL
HH
MV
MV
MV
MV
低电压
硬件数据保护
单线输入周期
从主机到存储器的传输
单线延迟 (虚拟)周期
单线输出周期
从存储器到主机的传输
双线输入周期
从主机到存储器的传输
双线延迟 (虚拟)周期
双线输出周期
从存储器到主机的传输
四线输入周期
从主机到存储器的传输
四线延迟 (虚拟)周期
四线输出周期
从存储器到主机的传输
DDR 四线输入周期
从主机到存储器的传输
DDR 延迟 (虚拟)周期
DDR 四线输出周期
从存储器到主机的传输
注意:
– Z
– HL
– HH
– HV
– X
– HT
– ML
– MH
– MV
3.3.1
= 无驱动信号 - 悬空信号
= 由主机驱动的 VIL
= 由主机驱动的 VIH
= HL 或 HH
= HL 或 HH 或 Z
= 在 HL 和 HH 间切换
= 由存储器驱动的 VIL
= 由存储器驱动的 VIH
= ML 或 MH
断电状态
当内核供电电压不大于 VDD (Low) 电压时,器件被视为断电。这时,器件不对外部信号做出响应,防止对该器件执行的所有编写或擦
除操作。
文档编号:002-03823 版本 *A
页 17/143
预览资料
3.3.2
S25FL256L
低功耗时的硬件数据保护
如果 VDD 小于 VDD (Cut-off),那么存储器器件会忽略各条命令,以保证内核供电电压在工作范围外时不会启动编写和擦除操作。如果
内核电压在 ≥ tPD 时间内保持不超过 VDD (Low),然后上升到 ≥ VDD (Minimum) 值时,器件将开始执行加电复位(POR)程序。继续执行
POR 程序,直到 tPU 时间结束为止。在 tPU 期间,器件不会对外部输入信号做出响应,也不会驱动任何输出。经过 tPU 时间后,器件
将切换到接口待机状态,并能够接受各条命令。欲了解有关 POR 的更多信息,请参见 第 30 页上的 5.3.1,加电 (冷)复位。
3.3.3
硬件 (暖)复位状态
这是一种配置选项,当器件未处于任何四线或 QPI 模式时或者当器件处于任何四线模式或 QPI 模式且 CS# 为高电平时,通过使用该
选项,可以将 IO3 / RESET# 作为硬件复位输入。在四线模式或 QPI 模式下,某些封装中会提供单独的复位输入(RESET#)。在 tRP
期间,如果 IO3 / RESET# 或 RESET# 被置为低电平,则器件将启动硬件复位程序。继续执行该程序 tRPH 时间。经过 tRPH 时间以及
在 RESET# 上升后的复位保持时间(tRH)后,器件将切换到接口待机状态,并能够接受各条命令。欲了解有关硬件复位的更多信息,
请参见 第 30 页上的 5.3,复位。
3.3.4
接口待机状态
如果 CS# 为高电平,则 SPI 接口处于待机状态。其他输入 (RESET# 除外)均被忽略。接口会保持等待状态,直到开始执行新命令
为止。当 CS# 变为低电平以启动一个新指令时,下一个接口状态是命令周期。
在接口待机状态下,如果不再执行任何嵌入式算法,存储器器件将消耗待机电流 (ISB)。如果正在执行某个嵌入式算法,那么将消耗
相应的电流,直到完成该算法为止,此时整个器件将消耗待机电流。
3.3.5
指令周期状态 (传统的 SPI 模式)
当主机驱动了一个指令的最高有效位 (MSB)且 CS# 变为低电平时,在 SCK 的下一个上升沿上,器件将捕获指令 (开始新命令)
的最高有效位。在后面每一个 SCK 的上升沿上,器件都将捕获 8 位指令的下一个较低有效位。主机保持 CS# 为低电平并驱动写保护
(WP#)和 IO3 / RESET# 信号以供指令使用。不过,仅在处理 WRR 或 WRAR 命令或任何影响状态寄存器、配置寄存器和 DLR 寄
存器命令的指令周期内,WP# 才被验证。除非执行这些指令周期期间,否则 WP# 被忽略。如果器件未处于四线模式(CR1V[1] = 0)
或 QPI 模式 (CR2V[3] = 0),并且不需要硬件复位, IO3 / RESET# 将被置为高电平。
每个指令选择了用于操作的地址空间和在执行命令的其余部分期间使用的传输格式。传输格式可能为单线、双线 O、四线 O、双线
I/O、四线 I/O 或 DDR 四线 I/O。下一个接口的状态取决于所接收到的指令。
一些指令可以独立使用,无需将地址或数据传输到存储器或传输存储器的地址或数据。经过 SCK (在这种命令中指令的第八位)上
升沿后,主机将 CS# 返回高电平状态。在这种情况下,下一个接口状态是接口待机。
3.3.6
指令周期状态 (QPI 模式)
在 QPI 模式下,如果 CR2V[3] = 1,则在每个周期内各条指令能够传输 4 比特。在该模式下,指令周期与四线输入周期相同。请参见
第 19 页上的 3.3.13, QPP 或 QOR 地址输入周期状态。
3.3.7
单线输入周期状态 — 从主机到存储器的传输
将单线串行输入 (SI)信号上的指令从主机发送到存储器器件后,一些命令会传输信息。主机保持 RESET# 为高电平、 CS# 为低电
平,并驱动 SI 以供命令使用。存储器不会驱动串行输出 (SO)信号。
下一个期望接口的状态取决于该指令。通过使用额外的单线输入周期,某些指令会连续将地址或数据发送给存储器。其他指令可能会
切换到单线延迟状态或直接转到单线、双线或四线输出周期状态。
3.3.8
单线延迟 (虚拟)周期状态
读取命令可能没有延迟周期,也可能会有若干个延迟周期,在这些周期内,直到发送到主机前,主闪存存储器阵列内的数据都被读
取。配置寄存器 (CR3V[3:0])中的延迟代码决定了延迟周期的数量。在延迟周期内,主机会保持 RESET# 和 IO3 / RESET# 为高
电平、 CS# 为低电平, SCK 会进行切换。写保护 (WP#)信号被忽略。在这些周期内,主机可能会驱动 SI 信号 或者将 SI 保持为
悬空状态。在延迟周期内,存储器不会使用在 SO 或其他 I/O 信号上所驱动的任意数据。在延迟周期内,存储器不会驱动串行输出
(SO)或其他 I/O 信号。
下一个接口状态取决于命令结构,例如,延迟周期数量以及读取方式是单线、双线或四线宽度。
文档编号:002-03823 版本 *A
页 18/143
预览资料
3.3.9
S25FL256L
单线输出周期状态 — 从存储器到主机的传输
通过单线串行输出 (SO)信号,若干个命令会将信息返回到主机。主机将保持 RESET#,并且 IO3 / RESET# 为高电平、 CS# 为
低电平。写保护 (WP#)信号被忽略。存储器忽略了串行输入 (SI)信号。存储器使用数据驱动 SO 信号。
下一个接口状态仍是单线输出周期,直到主机使 CS# 返回高电平状态从而结束命令为止。
3.3.10
双线输入周期状态 — 从主机到存储器的传输
每个周期内,双线读取 I/O 命令都会将两个地址或模式位传输给存储器。主机将保持 RESET#,并且 IO3 / RESET# 为高电平、 CS#
为低电平。写保护 (WP#)信号被忽略。主机将驱动 SI / IO0 和 SO / IO1 上的地址。
传输地址和模式位后,下一个接口状态是双线延迟周期 (若需要延迟周期)或双线输出周期 (若无需延迟周期)。
3.3.11
双线延迟 (虚拟)周期状态
读取命令可能没有延迟周期,也可能会有若干个延迟周期,在这些周期内,直到发送到主机前,主闪存存储器阵列内的数据都被读取。
配置寄存器 (CR3V[3:0])中的延迟代码决定了延迟周期的数量。在延迟周期内,主机会保持 RESET# 和 IO3 / RESET# 为高电平、
CS# 为低电平,SCK 会持续切换。写保护(WP#)信号被忽略。在这些周期内,主机可能驱动 SI / IO0 和 SO / IO1 信号 或者将这些
信号保持为悬空状态。在延迟周期内,存储器不会使用在 SI / IO0 和 SO / IO1 或其他 I/O 信号上所驱动的任意数据。最后的延迟周期
结束时,主机必须停止驱动 SCK 的下降沿上 SI / IO0 和 SO / IO1 信号。在所有延迟周期内,建议停止主机对这些信号的驱动操作,
以便在延迟周期结束时存储器开始驱动前,有足够时间使主机驱动器停止传输操作。这样做,如果信号方向发生改变,则能够防止主
机与主机和存储器间发生冲突。在延迟周期内,存储器不会驱动 SI / IO0 和 SO / IO1 信号。
最后延迟周期结束后,下一个接口状态是双线输出周期。
3.3.12
双线输出周期状态 — 从存储器到主机的传输
在每个周期内,双线读取输出和双线读取 I/O 命令会将数据 (2 位)返回到主机内。主机将保持 RESET#,并且 IO3 / RESET# 为高
电平、 CS# 为低电平。写保护 (WP#)信号被忽略。在双线输出周期内,在 SCK 的下降沿上,存储器将驱动 SI / IO0 和 SO / IO1 信
号上的数据。
下一个接口状态仍是双线输出周期,直到主机使 CS# 返回高电平状态而结束命令为止。
3.3.13
QPP 或 QOR 地址输入周期状态
四线页编程和四线输出读取命令仅在 IO0 信号上将地址发送到存储器。其他 IO 信号均被忽略。主机将保持 RESET# 和 IO3 / RESET#
为高电平、 CS# 为低电平,并驱动 IO0。
QPP 命令发送地址后,下一个接口状态将是四线输入周期。 QOR 传输地址后,下一个接口状态是四线延迟周期 (若需要延迟周期)
或四线输出周期 (若无需延迟周期)。
3.3.14
四线输入周期状态 — 从主机到存储器的传输
每个周期内,四线 I/O 读取命令都将四个地址或模式位传输到存储器。在 QPI 模式下,每个周期 (包括指令周期)内,四线 I/O 读取
和页编程命令都会将四个数据位传输到存储器内。主机会保持 CS# 为低电平,并驱动 IO 信号。
四线 I/O 读取命令传输地址和模式位后,下一个接口状态是四线延迟周期 (若需要延迟周期)或四线输出周期 (若无需延迟周期)。
在 QPI 模式下,页编程命令传输需要编程的数据后,主机会使 CS# 返回到高电平状态,接口会返回待机状态。
3.3.15
四线延迟 (虚拟)周期状态
读取命令可能没有延迟周期,也可能会有若干个延迟周期,在这些周期内,直到发送到主机前,主闪存存储器阵列内的数据都被读取。
配置寄存器 (CR3V[3:0])中的延迟代码决定了延迟周期的数量。在延迟周期内,主机会保持 CS# 为低电平,并持续切换 SCK。在
这些周期内,主机可能驱动 IO 信号 或者将 IO 保持为悬空状态。在延迟周期内,存储器不会使用 IO 信号上所驱动的任意数据。最后
的延迟周期结束时,主机必须停止驱动下降沿上的 IO 信号。在所有延迟周期内,建议停止主机对这些信号的驱动操作,以便在延迟
周期结束时存储器开始驱动前,有足够时间使主机驱动器停止传输操作。这样做,如果信号方向发生改变,则能够防止主机与主机和
存储器间发生冲突。在延迟周期内,存储器不会驱动 IO 信号。
最后延迟周期结束后,下一个接口状态是四线输出周期。
文档编号:002-03823 版本 *A
页 19/143
预览资料
3.3.16
S25FL256L
四线输出周期状态 — 从存储器到主机的传输
每个周期内,四线 O 和四线 I/O 读取命令会将 4 位的数据返回给主机。主机保持 CS# 为低电平。在四线输出周期期间,存储器会驱
动 IO0-IO3 信号上的数据。
下一个接口状态仍是四线输出周期,直到主机使 CS# 返回高电平状态而使命令结束为止。
3.3.17
DDR 四线输入周期状态 — 从主机到存储器的传输
DDR 四线 I/O 读取命令会通过所有 IO 信号将地址和模式位发送给存储器。 每个周期内,在 SCK 的上升沿上传输 4 比特,在下降沿上
传输 4 比特。主机保持 CS# 为低电平。
传输地址和模式位后,下一个接口状态是 DDR 延迟周期。
3.3.18
DDR 延迟周期状态
DDR 读取命令可能具有一个或若干个延迟周期,在这些周期内,数据被发送给主机前,主闪存存储器阵列内的数据将被读取。配置寄
存器(CR3V[3:0])中的延迟代码决定了延迟周期的数量。在延迟周期内,主机会保持 CS# 为低电平。此外,主机不会驱动 IO 信号。
因此,在存储器开始驱动前,有足够的时间使主机驱动器停止传输操作。这样做,如果信号方向发生改变,便能够防止主机与主机和
存储器间发生冲突。在最后 4 个延迟周期内,存储器可以选择使用一个数据学习模式 (DLP)驱动所有 IO 信号。如果延迟周期数小
于 5,则不应该使能 DLP 选项。因此,在存储器开始驱动 DLP 前,至少有一个高阻抗的周期以等待 IO 信号经过处理并返回。如果有
多于 4 个延迟周期,则存储器不会驱动 IO 信号,直到最后四个延迟周期为止。
最后延迟周期结束后,下一个接口状态是 DDR 四线输出周期,具体情况取决于指令。
3.3.19
DDR 四线输出周期状态 — 从存储器到主机的传输
DDR 四线 I/O 读取命令会通过所有 IO 信号将数据位发送给主机。 每个周期内,在 SCK 的上升沿上传输 4 比特,在下降沿上传输 4
比特。主机保持 CS# 为低电平。
下一个接口状态仍是 DDR 四线输出周期,直到主机使 CS# 返回高电平状态而使命令结束为止。
文档编号:002-03823 版本 *A
页 20/143
预览资料
3.4
S25FL256L
数据保护
硬件设计提供并管理着某些基本的保护功能,用于防止对存储数据进行意外的更改。具体内容如下。其它软件管理的保护方式将在本
文档的软件章节中进行讨论。
3.4.1
加电
当内核供电电压不大于 VDD (Low) 电压时,器件被视为断电。这时,器件不对外部信号做出响应,防止对该器件执行的所有编写或擦
除操作。在 tPU 期间,用户不能输入任何有效命令。
3.4.2
低功耗
如果 VDD 小于 VDD (Cut-off),那么存储器器件会忽略各条命令,以保证内核供电电压在工作范围外时不会启动编写和擦除操作。
3.4.3
时钟脉冲数量
器件会验证所有修改非易失性存储器和寄存器数据的命令是否包含了一个时钟脉冲数量。执行这些命令前,该时钟脉冲数量是 8 的倍
数 (字节边界)。不在 8 位 (字节)边界上结束的命令将被忽略,该命令不存在任何错误状态。
3.4.4
深度掉电 (DPD)
在 DPD 模式下,器件仅对从 DPD 模式恢复的命令 (RES ABh)发出响应。在该模式下,所有其他命令均被忽略,从而防止对存储
器执行编程和擦除操作。如果 IO3 / RESET# 功能被使能 (CR2V[7] = 1)或 RESET# 有效,那么 IO3 / RESET# 或 RESET# 被置为
低电平状态将启动硬件复位并使器件退出 DPD 模式。
文档编号:002-03823 版本 *A
页 21/143
预览资料
4.
S25FL256L
电气规范
4.1
最大绝对额定值
(注释 3)
存储温度,塑料包装 ....................................................................................................................................................–65°C ~ +150°C
通电时的环境温度 .......................................................................................................................................................–65°C ~ +125°C
VDD................................................................................................................................................................................–0.5 V ~ +4.0 V
相对于地 (VSS)的输入电压 (注意 1) ........................................................................................................–0.5 V ~ VDD + 0.5 V
输出短路电流 (注意 2) ..........................................................................................................................................................100 mA
注意:
1. 请参考第 23 页上的 4.3.3,输入信号过冲以了解信号切换期间受允许的最大值。
2. 不能有多个输出同时对地短路。并且短路时间不能超过一秒。
3. 超过 “ 最大绝对额定值 ” 列出的值可能造成器件永久性损坏。它只是一个额定值,并不表示器件一定要采用这些值或者采用本数据手册操作部分所显示的数值都能正
常运行。如果让器件长时间工作在最大绝对额定值情况下,会影响器件的可靠性。
4.2
闭锁特性
表 4.1 闩锁规范
最小值
最大值
单位
所有输入连接上相对于 VSS 的输入电压
说明
–1.0
VIO + 1.0
V
所有 I/O 连接上相对于 VSS 的输入电压
–1.0
VIO + 1.0
V
VDD 电流
–100
+100
mA
注意:
1. 不包括 VDD 电源。测试条件:VDD = 3.0 V,每次检查一个连接, VSS 下的连接不被检查。
文档编号:002-03823 版本 *A
页 22/143
预览资料
4.3
S25FL256L
工作范围
工作范围定义了一些限值,在这些限值之间能够保证设备正常运行。
4.3.1
供电电压
VDD ……………………………….....................................................................................................................2.7 V ~ 3.6 V
4.3.2
温度范围
工业级 (I)器件
环境温度 (TA) .......................................................................................................................................... –40°C ~ +85°C
工业级扩展 (A)器件
环境温度 (TA) .......................................................................................................................................... –40°C ~ +105°C
扩展 (E)器件
环境温度 (TA) .......................................................................................................................................... –40°C ~ +125°C
4.3.3
输入信号过冲
在直流条件下,输入或 I/O 应处于从 VSS 到 VDD 之间。在电压转换期间,输入或 I/O 可能低于 VSS,降到 -1.0 V 或达到 VDD +1.0 V,
时间最长为 20 ns。
图 4.1 最大负过冲波形
VSS 到 VDD
–1.0
V
< = 20 ns
图 4.2 最大正过冲波形
< = 20 ns
VDD + 1.0 V
VSS 到 VDD
文档编号:002-03823 版本 *A
页 23/143
预览资料
4.4
S25FL256L
加电和掉电
发生加电或掉电 (CS# 的电压必须采用 VDD 上的电压)时,不能选择器件,直到 VDD 准确满足以下值:

加电时为 VDD (最小值)并在 tPU 的更长延迟期间持续保持该值

掉电时为 VSS
为保证安全、准确进行加电和掉电操作,可以在片选 (CS#)上安装一个简单的上拉电阻。
用户不能输入任何命令,直到 VDD 上升超过 VDD 最小阈值后再经过 tPU 的有效延迟时间结束为止。请参见图 4.3。但在 tPU 期间,
如果 VDD 回到低于 VDD (最小值)的电平状态,将不能保证器件正常操作。在 tPU 结束前,不应该发出任何命令。
在 tPU 期间,器件消耗的电流为 IPOR。加电 (tPU)后,器件将进入待机模式,并消耗 CMOS 待机电流 (ISB), WEL 位被复位。
在掉电期间或电压降至 VDD (截止)以下时,电压必须在 tPD 的时间内保持小于 VDD (低电平),这样,器件加电后能够正常初始
化。请参见图 4.4。如果在电压下降过程中, VDD 保持为高于 VDD (截止)的状态,那么当 VDD 再次超过 VDD (最小值)时,器件
将被初始化,并正常运行。如果加电后不能正常完成上电复位 (POR)事件,那么当激活 RESET# 信号或接收到一个软件复位命令
(RST 99h 随后的 RSTEN 66h)时,器件将重启 POR 程序。
在执行嵌入式编程或擦除操作期间, VDD 下降到到 VDD (Cut-off) 以下,嵌入式操作可能被中止,存储器区域中的数据可能不正确。
为了稳定器件的 VDD 电源,必须采取正常的预防措施进行电源退耦。系统中的每个器件都应该由封装连接附近大小合适的电容对
VDD 轨进行退耦 (该电容通常为 0.1µf)。
表 4.2 上电 / 下电电压和时序
符号
参数
VDD (最小值)
VDD (关闭)
VDD (低)
最小值
最大值
单位
VCC (最小工作电压)
2.7
–
V
VDD (关闭电压,在此需要重新进行初始化)
2.4
–
V
VDD (确保发生初始化的低电压)
1.0
–
V
–
300
µs
10.0
–
µs
tPU
从 VDD 为最小值到进行读取操作的时间
tPD
VDD 为低电平的时间
图 4.3 加电
VDD(最大值)
VDD(最小值)
tPU
完全的器件访问
时间
文档编号:002-03823 版本 *A
页 24/143
预览资料
S25FL256L
图 4.4 掉电或电压下降
VDD(最大值)
不允许访问器件
VDD(最小值)
tPU
VDD(关闭)
VDD(低)
tPD
时间
文档编号:002-03823 版本 *A
页 25/143
预览资料
4.5
S25FL256L
直流特性
4.5.1
工业级的直流特性
适用的工作范围为 –40°C 至 +85°C 。
表 4.3 直流特性 — 工业级
符号
参数
测试条件
最小值
典型值 (1)
最大值
单位
V
VIL
输入低电压
–
–0.5
–
0.3 VDD
VIH
输入高电压
–
0.7 VDD
–
VDD+0.4
V
VOL
输出低电压
IOL = 0.1 mA、 VDD = VDD 最小值
–
0.2
V
VOH
输出高电压
IOH = –0.1 mA
VDD - 0.2
–
V
ILI
输入漏电流
VDD = VDD 最大值、 VIN = VIH 或 VSS、 CS# = VIH
–
–
±2
µA
ILO
输出漏电流
VDD = VDD 最大值、 VIN = VIH 或 VSS、 CS# = VIH
–
–
±2
µA
ICC1
串行 SDR@5 MHz
串行 SDR@10 MHz
串行 SDR@20 MHz
串行 SDR@50 MHz
串行 SDR@108 Mhz
有源电源电流 (读取)(2)
串行 SDR@133 MHz
QIO/QPI SDR@108 MHz
QIO/QPI SDR@133 MHz
QIO/QPI DDR@30 MHz
QIO/QPI DDR@66 MHz
–
10
10
10
15
25
30
25
30
15
30
15
15
15
20
30
35
30
35
20
35
mA
ICC2
有源电源电流 (页编程)
CS# = VDD
–
40
50
mA
ICC3
有源电源电流 (WRR 或
WRAR)
CS# = VDD
–
40
50
mA
ICC4
有源电源电流 (SE)
CS# = VDD
–
40
50
mA
ICC5
有源电源电流(HBE、BE) CS# = VDD
–
40
50
mA
20
35
µA
待机电流
RESET#、 CS# = VDD ; SI、 SCK = VDD 或
VSS:SPI、双线 I/O 和四线 I/O 模式
–
ISB
RESET#、 CS# = VDD ; SI、 SCK = VDD 或
VSS:QPI 模式
–
60
100
µA
IDPD
深度下电电流
RESET#、 CS# = VCC, VIN = GND 或 VCC
–
2
20
µA
IPOR
上电复位电流
RESET#、 CS# = VDD ; SI、 SCK = VDD 或 VSS
–
15
30
mA
注意:
1. 典型值的条件为 TAI = 25°C 和 VDD = 3.0 V。
2. 读取返回数据期间,输出处于未连接状态。不包含输出开关电流。
文档编号:002-03823 版本 *A
页 26/143
预览资料
4.5.2
S25FL256L
工业级扩展的直流特性
适用的工作范围为 –40°C 至 +105°C 。
表 4.4 直流特性 — 扩展的工业级
符号
测试条件
最小值
典型值 (1)
最大值
单位
VIL
输入低电压
参数
–
–0.5
–
0.3 VDD
V
VIH
输入高电压
–
0.7 VDD
–
VDD+0.4
V
V
VOL
输出低电压
IOL = 0.1 mA、 VDD = VDD 最小值
VOH
输出高电压
IOH = –0.1 mA
ILI
输入漏电流
ILO
输出漏电流
ICC1
串行 SDR@5 MHz
串行 SDR@10 MHz
串行 SDR@20 MHz
串行 SDR@50 MHz
串行 SDR@108 Mhz
有源电源电流 (读取)(2)
串行 SDR@133 MHz
QIO/QPI SDR@108 MHz
QIO/QPI SDR@133 MHz
QIO/QPI DDR@30 MHz
QIO/QPI DDR@ 66 MHz
ICC2
有源电源电流 (页编程)
ICC3
有源电源电流 (WRR 或
WRAR)
ICC4
有源电源电流 (SE)
ICC5
ISB
–
–
0.2
VDD - 0.2
–
–
V
VDD = VDD 最大值、 VIN = VIH 或 VSS、 CS# = VIH
–
–
±4
µA
VDD = VDD 最大值、 VIN = VIH 或 VSS、 CS# = VIH
–
–
±4
µA
–
10
10
10
15
25
30
25
30
15
30
20
20
20
25
35
40
35
40
25
40
mA
CS# = VDD
–
40
60
mA
CS# = VDD
–
40
60
mA
CS# = VDD
–
40
60
mA
有源电源电流(HBE、BE) CS# = VDD
–
40
60
mA
RESET#、 CS# = VDD ; SI、 SCK = VDD 或
VSS:SPI、双线 I/O 和四线 I/O 模式
–
20
45
µA
RESET#、 CS# = VDD ; SI、 SCK = VDD 或
VSS:QPI 模式
–
60
110
µA
待机电流
IDPD
深度下电电流
RESET#、 CS# = VCC, VIN = GND 或 VCC
–
2
30
µA
IPOR
上电复位电流
RESET#、 CS#=VDD ; SI、 SCK = VDD 或 VSS
–
15
30
mA
注意:
1. 典型值的条件为 TAI = 25°C 和 VDD = 3.0 V。
2. 读取返回数据期间,输出处于未连接状态。不包含输出开关电流。
文档编号:002-03823 版本 *A
页 27/143
预览资料
4.5.3
S25FL256L
扩展的直流特性
适用的工作范围为 –40°C 至 +125°C 。
表 4.5 直流特性 - 扩展范围
符号
参数
测试条件
最小值
典型值 (1)
最大值
单位
VIL
输入低电压
–
–0.5
–
0.3 VDD
V
VIH
输入高电压
–
0.7  VDD
–
VDD + 0.4
V
VOL
输出低电压
IOL = 0.1 mA、 VDD = VDD 最小值
VOH
输出高电压
IOH = –0.1 mA
–
–
0.2
V
VDD - 0.2
–
–
V
ILI
输入漏电流
VDD = VDD 最大值、 VIN = VIH 或 VSS、 CS# = VIH
–
–
±4
µA
ILO
输出漏电流
VDD = VDD 最大值、 VIN = VIH 或 VSS、 CS# = VIH
–
–
±4
µA
ICC1
串行 SDR@5 MHz
串行 SDR@10 MHz
串行 SDR@20 MHz
串行 SDR@50 MHz
串行 SDR@108 Mhz
有源电源电流 (读取)(2)
串行 SDR@133 MHz
QIO/QPI SDR@108 MHz
QIO/QPI SDR@133 MHz
QIO/QPI DDR@30 MHz
QIO/QPI DDR@66 MHz
–
10
10
10
15
25
30
25
30
15
30
30
30
30
35
45
50
45
50
35
50
mA
ICC2
有源电源电流 (页编程)
CS# = VDD
–
40
70
mA
ICC3
有源电源电流 (WRR 或
WRAR)
CS# = VDD
–
40
70
mA
ICC4
有源电源电流 (SE)
CS# = VDD
–
40
70
mA
ICC5
有源电源电流(HBE、BE) CS# = VDD
–
40
70
mA
20
75
µA
待机电流
RESET#、 CS# = VDD ; SI、 SCK = VDD 或
VSS:SPI、双线 I/O 和四线 I/O 模式
–
ISB
RESET#、 CS# = VDD ; SI、 SCK = VDD 或
VSS:QPI 模式
–
60
150
µA
IDPD
深度下电电流
RESET#、 CS# = VCC, VIN = GND 或 VCC
–
2
50
µA
IPOR
上电复位电流
RESET#、 CS# = VDD ; SI、 SCK = VDD 或 VSS
–
15
35
mA
注意:
1. 典型值的条件为 TAI = 25°C 和 VDD = 1.8 V。
2. 读取返回数据期间,输出处于未连接状态。不包含输出开关电流。
4.5.4
有效功耗模式和待机功耗模式
如果片选 (CS#)为低电平,器件被使能且处于有效功耗模式。如果 CS# 为高电平,器件将被禁用,但仍处于有效功耗模式,直到
完成所有编程、擦除以及写入操作为止。然后,器件会进入待机功耗模式,功耗降低到 ISB。
4.5.5
深度掉电模式 (DPD)
通过输入命令指令代码 “B9h”,并将功耗降低到 IDPD,可使能深度掉电模式。在 DPD 模式下,器件仅对从 DPD 模式恢复的命令
(RES ABh)或硬件复位 (RESET# 和 IO3 / RESET#)发出响应。在 DPD 模式下,所有其他命令均被忽略。
文档编号:002-03823 版本 *A
页 28/143
预览资料
5.
5.1
S25FL256L
时序规范
切换波形的关键
图 5.1 波形因素的含义
Input
Valid at logic high or low
High Impedance
Any change permitted
Logic high
Logic low
Valid at logic high or low
High Impedance
Changing, state unknown
Logic high
Logic low
Symbol
Output
5.2
交流测试条件
图 5.2 测试设置
待测器件
CL
表 5.1 交流测量条件
符号
参数
最小值
最大值
单位
CL
负载电容
–
15/30 (1)
pF
–
输入脉冲电压
0.2  VDD
0.8 VDD
V
–
输入时序参考电压
0.5 VDD
V
输出时序参考电压
0.5 VDD
V
–
注意:
1. 负载电容取决于操作频率或操作模式。
2. 交流特性表假定时钟和数据信号具有相同的转换速率 (斜率)。请参见第 33 页上的 SDR 交流特性。注意 6 中的内容说明了在操作频率时的转换速率。
图 5.3 输入、输出和时序的参考电平
输入电平
输出电平
VDD + 0.4 V
0.8 × VDD
0.5 x VDD
0.2 x VDD
- 0.5 V
文档编号:002-03823 版本 *A
VDD - 0.2 V
时序参考电平
0.2 V
页 29/143
预览资料
5.2.1
S25FL256L
电容特性
表 5.2 电容
参数
5.3
测试条件
最小值
最大值
单位
CIN
输入电容 (SCK、 CS#、 RESET#、 IO3/RESET# 上)
1 MHz
–
8
pF
COUT
输出电容 (所有 I/O 上)
1 MHz
–
8
pF
复位
如果在执行对寄存器的擦除、编程或写入操作期间,启动了硬件复位,并且扇区、页面或寄存器内的数据不稳定,那么需要重新启动
被中断的操作。在执行软件复位操作期间,如果启动硬件复位,该硬件复位可能被忽略。
5.3.1
加电 (冷)复位
器件会执行上电复位 (POR)程序,直到 VDD 上升到超过 VDD 最小阈值后经过 tPU 延迟时间为止 . 请参考第 24 页上的图 4.3、第
24 页上的表 4.2。加电期间 (tPU),不能选择器件 (不允许 CS# 的电压上升到 VDD)。例如,可能未将任何命令发送给器件,直到
经过 tPU 为止。
在 POR 期间, RESET# 和 IO3 / RESET# 复位功能被忽略。如果在 POR 期间, RESET# 或 IO3 / RESET# 为低电平,并且在 tPU
期间以及之后仍然保持为低电平状态,那么 CS# 必须保持为高电平,直到 RESET# 和 IO3 / RESET# 返回高电平状态并经过 tRH 为
止。在比 tRS 更长的时间内,并且返回低电平状态前, RESET# 和 IO3 / RESET# 必须返回高电平状态,以便启动一次硬件复位。
在比 tCS 更长的时间内或者未使能四线模式或 QPI 模式 (CR1V[1] = 0 或 CR2V[3] = 0)时, IO3 / RESET# 输入可作为 RESET# 信
号使用。
图 5.4 POR 结束时,复位信号为低电平
VCC
tPU
RESET#
If RESET# is low at tPU end
tRH
CS#
CS# must be high at tPU end
图 5.5 POR 结束时,复位信号为高电平
VCC
tPU
RESET#
If RESET# is high at tPU end
tPU
CS#
文档编号:002-03823 版本 *A
CS# may stay high or go low at tPU end
页 30/143
预览资料
S25FL256L
图 5.6 由硬件复位随后的 POR
VCC
tPU
tRS
RESET#
tPU
CS#
5.3.2
启动硬件 (暖)复位的 RESET # 和 IO3 / RESET# 输入
RESET# 和 IO3 / RESET# 输入可作为 RESET# 信号使用。根据条件,两个输入可以启动复位操作。
在比 tRP 更长的时间内,当从 VIH 转换为 VIL 时,RESET# 输入启动了复位操作,器件会使用与上电复位相同的方式复位寄存器状态,
但没有经过 POR 期间所执行的完整复位程序。完成硬件复位程序需要 tRPH 时长。RESET# 输入仅在 SOIC 16 含铅封装和 BGA 球型
焊盘封装中有效。
当在比 tCS 更长的时间内 CS# 为高电平时或者当未使能四线模式或 QPI 模式 (CR1V[1] = 0 或 CR2V[3] = 0)时, IO3 / RESET# 输
入将启动复位操作。 IO3/RESET# 输入具有一个连接至 VDD 的内部上拉电阻;如果不处于四线模式或 QPI 模式,该输入会保持为无
连接状态。 CS# 为低电平时该输入用作为四线或 QPI 模式 I/O 信号后,需要 CS# 变为高电平后经过 tCS 延迟时间,以便存储器或主
机系统将 IO3 驱动为高电平。然后,将内部上拉电阻连接到 VDD,可保持 O3 / RESET# 为高电平,直到主机系统开始驱动 IO3 /
RESET# 为止。在 tCS 期间, CS# 保持高电平状态时, IO3 / RESET# 输入将被忽略,从而可以避免发生意外的复位操作。如果 CS#
被驱动为低电平,便会启动一个新命令, IO3 / RESET# 被作为 IO3。
当器件未处于四线模式或 QPI 模式时或者当 CS# 为高电平,并且 IO3 / RESET# 在大于 tRP (随后 tCS)的时间内从 VIH 转换为 VIL
时,器件会使用与上电复位相同的方式复位寄存器状态,但没有经过在 POR 期间所执行的完整复位程序。
完成硬件复位程序需要 tRPH 时长。如果由于任意原因不能在加电 (tPU)期间完成 POR 程序, RESET# 变为低电平会启动完整的
POR 程序 (而不是硬件复位程序),并需要占用 tPU 长的时间才能完成 POR 程序。
软件复位命令 (由 RST 99h 随后的 RSTEN 66h)独立于 RESET # 和 IO3 / RESET# 的状态。如果 RESET# 和 IO3 / RESET# 为高
电平,且已经发送了软件复位指令,则器件将执行软件复位。
其他注意事项:

如果 RESET# 和 IO3 / RESET# 输入选项均可用,那么在您的系统中仅使用了一个复位选项。通过将 CR2NV[7] 设置为 ‘0’
(请参考第 53 页上的表 7.8 配置寄存器 2 非易失性(CR2NV)),并且 IO3_RESET 设置仅能作为 IO3 使用,可以禁用 IO3
/ RESET# 输入复位操作。不连接 RESET# 输入或将其绑定到 VIH 上,可以禁用该输入。重新变为低电平以启动硬件复位前,
在经过加上 tPU 或 tRPH 的 tRS 时间内, RESET# 和 IO3 / RESET# 必须为高电平。

当 IO3 / RESET# 被驱动为低电平的时间不短于一个最小周期(在 tCS 后面的 tRP)时,器件会立即终止正在执行的所有操作,
使所有输出为高阻抗,并在 tRPH 期间忽略所有读 / 写命令。器件将接口复位为待机状态。

如果使能了四线模式或QPI模式和IO3 / RESET#性能,则在tCS期间,主机系统不会将IO3驱动为低电平,从而可以避免在IO3
上发生冲突。执行以下各条命令 (在四线模式或 QPI 模式下将数据传输到主机)(例如,四线 I/O 读取命令)后,在 tCS 期
间,存储器会立即将 IO3 / RESET# 驱动为高电平,从而可以避免意外发生复位操作。在执行以下各命令 (在四线模式下将
数据传输到存储器)(例如,页编程命令)后,在 tCS 期间,主机系统会立即将 IO3 / RESET# 驱动为高电平,从而可以避免
意外发生复位操作。

如果未使能四线模式或QPI模式,并且IO3 / RESET#被置为低电平时CS#为低电平,那么CS#经过tRH后可能被重新置为低电
平前,该信号必须在 tRPH 时间内返回高电平。
文档编号:002-03823 版本 *A
页 31/143
预览资料
S25FL256L
表 5.3 硬件复位参数
参数
说明
限制
时间
tRS
复位设置 — 从前面复位结束 RESET# 为高到 RESET# 为低的时间
最小值
50
单位
ns
µs
tRPH
复位脉冲保持 — RESET# 为低到 CS# 为低
最小值
100
tRP
RESET# 脉冲宽度
最小值
200
ns
tRH
复位保持 — CS# 为低前 RESET# 为高的时间
最小值
150
ns
注意:
1. 加电 (tPU)期间, RESET# 和 IO3 / RESET# 低电平将被忽略。如果 tPU 结束时 Reset# 被激活,那么器件将保持为复位状态, tRH 会决定 CS# 变为低电平的时间。
2. 如果使能了四线模式或 QPI 模式,则在 tCS 期间, IO3 / RESET# 低电平将被忽略。
3. tRP + tRH 的和不能小于 tRPH。
图 5.7 使用 RESET# 输入的硬件复位
tRP
RESET#
Any prior reset
tRH
tRH
tRPH
tRS
tRPH
CS#
图 5.8 未使能四线模式或 QPI 模式,并且使能了 IO3 / RESET# 时的硬件复位
tRP
IO3_RESET#
Any prior reset
tRH
tRH
tRPH
tRS
tRPH
CS#
图 5.9 使能了四线模式或 QPI 模式和 IO3 / RESET# 时的硬件复位
tDIS
IO3_RESET#
tRP
Reset Pulse
tRH
tCS
CS#
文档编号:002-03823 版本 *A
tRPH
Prior access using IO3 for data
页 32/143
预览资料
5.4
S25FL256L
SDR 交流特性
表 5.4 SDR 交流特性
最小值
最大值
单位
FSCK, R
符号
使用于 READ 和 4READ 指令的 SCK 时钟频率
DC
50
MHz
FSCK, C
使用于 QOR、4QOR、DIOR、4DIOR、QIOR、4QIOR 等双线命令和
四线命令的 SCK 时钟频率
DC
133
MHz
1/FSCK
–
–
ns
PSCK
参数
SCK 时钟周期
tWH, tCH
时钟为高电平的时间
50% PSCK ±5%
–
tWL, tCL
时钟为低电平的时间
50% PSCK ±5%
–
ns
tCRT, tCLCH
时钟上升时间 (转换速率) (6)
0.1
–
V/ns
tCFT, tCHCL
时钟下降时间 (转换速率) (6)
0.1
–
V/ns
CS# 为高电平的时间 (执行任何读指令时)
20
–
ns
CS# 为高电平的时间 (执行所有的其他非读指令时)
50
–
ns
CS# 有效的建立时间 (相对于 SCK)
3
–
ns
tCSH
CS# 有效的保持时间 (相对于 SCK)
5
–
ns
tSU
数据输入的建立时间
3
–
ns
tHD
数据输入的保持时间
2
–
ns
从时钟为低到输出有效的时间
–
8 (2)
6 (3)
ns
tHO
输出保持时间
1
–
ns
tDIS
输出禁用时间 (4)
输出禁用时间 (当复位功能和四线模式均被使能时)
–
8
20 (5)
ns
tWPS
tCS
tCSS
tV
WP# 建立时间 (1)
20
–
ns
tWPH
WP# 保持时间 (1)
100
–
ns
TDP
从 CS# 为高到进入深度下电模式的时间
–
3
us
TRES
从 CS# 为高到退出深度下电模式的时间
–
5
µs
tQEN
进入 QIO 或 QPI 模式的时间,即为发出下一条命令所需要等待的时间
–
1.5
µs
退出 QIO 或 QPI 模式的时间,即为发出下一条命令所需要等待的时间
–
1
µs
tQEXN
注意:
1. 仅在 SRP0 被设置为 1 时,才能作为 WRR 或 WRAR 指令的限制。
2. 整个 VDD 范围和 CL = 30 pF。
3. 整个 VDD 范围和 CL = 15 pF。
4. 输出高阻态是数据不再被驱动的点。
5. 当使能复位功能和四线模式时 (CR2V[7] = 1 和 CR1V[1] = 1), tDIS 需要其他时间。
6. tCRT、 tCLCH 时钟上升沿和下降沿转换速率,使用快速时钟 (133 MHz)时,最小的转换速率为 1.5 V/ns,使用慢速时钟 (50 MHz)时,该值为 1.0 V/ns。
文档编号:002-03823 版本 *A
页 33/143
预览资料
5.4.1
S25FL256L
时钟时序
图 5.10 时钟时序
PSCK
tCL
tCH
VIH min
VDD/2
VIL max
tCFT
tCRT
5.4.2
输入 / 输出时序
图 5.11 SPI 单比特输入时序
tCS
CS#
tCSH
tCSS
SCK
tSU
tHD
SI_IO0
MSB IN
LSB IN
SO
图 5.12 SPI 单比特输出时序
tCS
CS#
SCK
SI_IO0
tV
SO_IO1
文档编号:002-03823 版本 *A
tHO
MSB OUT
tDIS
LSB OUT
页 34/143
预览资料
S25FL256L
图 5.13 SDR MIO 时序
tCS
CS#
tCSH
tCSS
SCLK
tSU
tHD
IO
MSB IN
tV
LSB IN
tHO
tV
MSB OUT.
tDIS
LSB OUT
图 5.14 WP# 输入时序
CS#
tWPS
tWPH
WP#
SCLK
SI
7
6
5
4
3
2
1
0
7
6
5
4
3
2
1
0
SO
Phase
文档编号:002-03823 版本 *A
WRR or WRAR Instruction
Input Data
页 35/143
预览资料
5.5
S25FL256L
DDR 交流特性
表 5.5 工作频率为 66 MHz 时的 DDR 交流特性
最小值
最大值
单位
FSCK, R
符号
使用于 DDR READ 指令的 SCK 时钟频率
DC
66
MHz
PSCK, R
使用于 DDR READ 指令的 SCK 时钟周期
1/FSCK
–
ns
1.5
–
V/ns
tcrt
参数
时钟上升时间 (转换速率)
1.5
–
V/ns
tWH, tCH
时钟为高电平的时间
50% PSCK - 5%
–
ns
tWL, tCL
时钟为低电平的时间
50% PSCK - 5%
–
ns
20
50
–
ns
tcft
时钟下降时间 (转换速率)
tCS
CS# 为高电平的时间 (执行读取指令时)
CS# 为高电平的时间 (复位功能使能并执行读取指令时)
tCSS
CS# 有效的建立时间 (相对于 SCK)
3
–
ns
tSU
IO 输入的建立时间
3
–
ns
tHD
数据输入的保持时间
2
–
ns
从时钟为低电平到输出有效的时间
–
8 (1)
6 (2)
ns
tHO
输出保持时间
1
–
ns
tDIS
输出禁用时间
输出禁用时间 (当复位功能使能时)
–
8
20
ns
从第一个 IO 数据有效到最后 IO 数据有效的时间
–
600 (3)
ps
tV
tO_skew
注意:
1. 整个 VDD 范围和 CL = 30 pF。
2. 整个 VDD 范围和 CL = 15 pF。
3. 未经测试。
5.5.1
DDR 输入时序
图 5.15 SPI DDR 输入时序
tCS
CS#
tCSS
SCK
tHD
tSU
tHD
tSU
IO's
文档编号:002-03823 版本 *A
Inst. MSB
MSB IN
LSB IN
页 36/143
预览资料
5.5.2
S25FL256L
DDR 输出时序
图 5.16 SPI DDR 输出时序
tCS
CS#
SCK
tHO
IO's
tV
tV
MSB
tDIS
LSB
图 5.17 SPI DDR 数据有效窗口
pSCK
tCL
tCH
SCK
tIO_SKEW
tV
tOTT
IO Slow
Slow D1
S.
Slow D2
tV
IO Fast
Fast D1
Fast D2
tV_min
tHO
tDV
IO_valid
D1
D2
注意:
1. tCLH 是 tCL 或 tCH 中较小的那个。
2. tO_SKEW 是所有 IO 信号中最小值同最大 tV (输出有效)间的最大差值 (偏差)。
3. tOTT 是每个 IO 上从一个有效数据值到下一个有效数据值的最大输出转换时间。
4. tOTT 由系统级注意事项决定,这些注意事项包括:
a.
b.
c.
d.
e.
存储器器件输出阻抗 (强驱动)。
IO 上的系统级寄生电容 (通常为总线电容)。
主存储控制器输入 vIH 和 vIL 电平,在该电平下可以识别 0 到 1 和 1 到 0 的转换。
例如,假设上述注意事项导致存储器输出转换速率为 2 V/ns 而且主机需要 3 V 转换 (从 1 到 0 或从 0 到 1),那么 tOTT 将为:tOTT = 3 V/(2 V/ns) = 1.5 ns。
tOTT 不是由赛普拉斯测试的规范。它的大小由 系统决定,并且系统设计师必须根据上述注意事项推导出该值。
文档编号:002-03823 版本 *A
页 37/143
预览资料
5.5.3
S25FL256L
DDR 最小数据有效窗口
最小数据有效窗口 (tDV)如下计算:
例如,假设:66 MHz 时钟频率 = 15 ns 时钟周期,而且 DDR 操作的占空比被指定为 45% 以上。

tCLH = 0.45*PSCK = 0.45  15 ns = 6.75 ns

tO_SKEW = 600 ps

tOTT = 1.5 ns

tDV = tCLH - tO_SKEW - tOTT
– tDV = 6.75ns - 600ps - 1.5ns = 4.65 ns

tV _min = tHO + tO_SKEW + tOTT
– tV _min = 1.0 ns + 600 ps + 1.5 ns = 3.1 ns
5.6
嵌入式算法性能表
表 5.6 双四线编程和擦除性能
符号
最小值
典型值 (1)
最大值
单位
tW
非易失性寄存器写入时间
参数
–
145
750
ms
tPP
页编程时间 (256 字节)
–
300
1200
µs
tBP1
字节编程时间 (第一个字节) (3)
–
50
60
µs
tBP2
其他字节编程时间 (第一个字节后) (3)
–
6
20
µs
tSE
扇区擦除时间 (4 KB 物理扇区)
–
50
200
ms
tHBE
半块擦除时间 (32 KB 物理扇区)
–
190
363
ms
tBE
块擦除时间 (64 KB 物理扇区)
–
270
725
ms
tCE
芯片擦除时间 (S25FL256L)
–
140
360
s
注意:
1. 在以下条件下得到典型的编程和擦除时间:温度 = 25C、 VDD = 3.0 V、一万次循环、一个棋盘式数据组合。
2. 任何 OTP 编程命令的编程时间都与 tPP 相同。这些命令包括 IRPP 2Fh、 PASSP E8h 和 PDLRNV 43h。
3. 对于某页内第一个字节后的多个字节, tBPN = tBP1 + tBP2 * N (典型值)和 tBPN = tBP1 = tBP2 * N (最大值),其中 N = 被编程的字节数量。
表 5.7 编程或擦除挂起交流参数
参数
挂起延迟时间 (tSL)
恢复操作到下一次挂起操作的时间 (tRNS)
文档编号:002-03823 版本 *A
典型值
最大值
单位
–
40
µs
从发出挂起命令到 WIP 位为 0 的时间
注释
100
–
µs
发送下一个挂起命令所需的时间
页 38/143
预览资料
6.
6.1
6.1.1
S25FL256L
物理接口
连接图
SOIC 16 引脚
图 6.1 16 引脚 SOIC 封装 (SO3016),顶视图
IO3 / RESET#
1
16
SCK
VDD
2
15
SI / IO0
RESET#
3
14
RFU
NC
4
13
DNU
SOIC 16
NC
5
12
DNU
RFU
6
11
DNU
CS#
7
10
VSS
SO / IO1
8
9
WP# / IO2
注意:
1. RESET# 和 IO3 / RESET# 输入间连接着一个内部上拉电阻。如果未使用四线模式、模式和硬件复位模式,则在系统中,这些输入会保持为未连接状态。
6.1.2
包含 8 个连接器的封装
图 6.2 包含 8 个连接器的封装 (WSON 6x8)(WSON 5x6),顶视图
CS#
1
8
VDD
SO / IO 1
2
7
IO 3 / R ESET#
W P# / IO 2
3
6
SCK
VSS
4
5
SI / IO 0
W SO N
注意:
1. RESET# 输入上连接着一个内部上拉电阻。如果未使用四线模式和硬件复位模式,则在系统中,该输入会保持为未连接状态。
文档编号:002-03823 版本 *A
页 39/143
预览资料
6.1.3
S25FL256L
BGA 球型焊盘封装
图 6.3 24-BGA, 5x5 球型焊盘封装 (FAB024),顶视图
1
2
3
4
5
NC
NC
RESET#
NC
DNU
SCK
VSS
VDD
NC
DNU
CS#
RFU
WP#/IO2
NC
DNU
SO/IO1
NC
NC
A
B
C
D
SI/IO0 IO3/RESET#
NC
E
NC
RFU
NC
注意:
1. 信号连接位于 FAC024 BGA 的相对位置,因此单 PCB 封装可以使用两个封装中的任何一个。
2. RESET# 输入上连接着一个内部上拉电阻。如果未使用四线模式和硬件复位模式,则在系统中,该输入会保持为未连接状态。
文档编号:002-03823 版本 *A
页 40/143
预览资料
S25FL256L
图 6.4 24-BGA, 4x6 球型焊盘封装 (FAC024),顶视图
1
2
3
4
NC
NC
NC
RESET#
DNU
SCK
VSS
VDD
DNU
CS#
RFU
WP#/IO2
DNU
SO/IO1
NC
NC
NC
RFU
NC
NC
NC
NC
A
B
C
D
SI/IO0 IO3/RESET#
E
F
注意:
1. RESET# 输入上连接着一个内部上拉电阻。如果未使用四线模式和硬件复位模式,则在系统中,该输入会保持为未连接状态。
6.1.4
FBGA 封装的特殊处理指令说明
如果使用超声波清洁方法, BGA 封装中的闪存存储器器件可能被损坏。如果将封装长期放置在温度高于 150°C 的地方,封装和 / 或
数据的完整性可能受到损坏。
文档编号:002-03823 版本 *A
页 41/143
预览资料
6.2
6.2.1
S25FL256L
物理框图
SOIC 16 引脚、 300 mil 宽度的封装体 (SO3016)
NOTES:
1.
ALL DIMENSIONS ARE IN BOTH INCHES AND MILLMETERS.
PACKAGE
SO3 016 (inches)
SO3 016 (mm)
2.
DIMENSIONING AND TOLERANCING PER ASME Y14.5M - 1994.
JEDEC
MS-013(D)AA
MS-013(D)AA
3.
DIMENSION D DOES NOT INCLUDE MOLD FLASH,
PROTRUSIONS OR GATE BURRS. MOLD FLASH,
PROTRUSIONS OR GATE BURRS SHALL NOT EXCEED 0.15 mm
PER END. DIMENSION E1 DOES NOT INCLUDE INTERLEAD
FLASH OR PROTRUSION INTERLEAD FLASH OR PROTRUSION
SHALL NOT EXCEED 0.25 mm PER SIDE. D AND E1
DIMENSIONS ARE DETERMINED AT DATUM H.
SYMBOL
MIN
MAX
MIN
MAX
A
0.093
0.104
2.35
2.65
A1
0.004
0.012
0.10
0.30
A2
0.081
0.104
2.05
2.55
b
0.012
0.020
0.31
0.51
b1
0.011
0.019
0.27
0.48
c
0.008
0.013
0.20
0.33
c1
0.008
0.012
0.20
0.30
D
0.406 BSC
10.30 BSC
E
0.406 BSC
10.30 BSC
E1
0.295 BSC
7.50 BSC
e
L
.050 BSC
0.016
0.050
1.27 BSC
0.40
.055 REF
1.40 REF
L2
.010 BSC
0.25 BSC
16
0.10
0.30
0.25
0.75
θ
0˚
8˚
0˚
8˚
θ1
5˚
15˚
5˚
0˚
THE PACKAGE TOP MAY BE SMALLER THAN THE PACKAGE
BOTTOM. DIMENSIONS D AND E1 ARE DETERMINED AT THE
OUTMOST EXTREMES OF THE PLASTIC BODY EXCLUSIVE OF
MOLD FLASH, TIE BAR BURRS, GATE BURRS AND INTERLEAD
FLASH. BUT INCLUDING ANY MISMATCH BETWEEN THE TOP
AND BOTTOM OF THE PLASTIC BODY.
5.
DATUMS A AND B TO BE DETERMINED AT DATUM H.
6.
"N" IS THE MAXIMUM NUMBER OF TERMINAL POSITIONS FOR
THE SPECIFIED PACKAGE LENGTH.
7.
THE DIMENSIONS APPLY TO THE FLAT SECTION OF THE LEAD
BETWEEN 0.10 TO 0.25 mm FROM THE LEAD TIP.
8.
DIMENSION "b" DOES NOT INCLUDE DAMBAR PROTRUSION.
ALLOWABLE DAMBAR PROTRUSION SHALL BE 0.10 mm TOTAL
IN EXCESS OF THE "b" DIMENSION AT MAXIMUM MATERIAL
CONDITION. THE DAMBAR CANNOT BE LOCATED ON THE
LOWER RADIUS OF THE LEAD FOOT.
9.
THIS CHAMFER FEATURE IS OPTIONAL. IF IT IS NOT PRESENT,
THEN A PIN 1 IDENTIFIER MUST BE LOCATED WITHIN THE INDEX
AREA INDICATED.
10.
LEAD COPLANARITY SHALL BE WITHIN 0.10 mm AS MEASURED
FROM THE SEATING PLANE.
16
h
θ2
4.
1.27
L1
N
.
15˚
0˚
3601 \ 16-038.03 \ 8.31.6
文档编号:002-03823 版本 *A
页 42/143
预览资料
S25FL256L
无引脚并包含 8 个连接器的 WSON,其大小为 6  8 mm (WNH008)
6.2.2
PACKAGE
SYMBOL
NOTES:
WNH008
MIN
NOM
e
1.27 BSC.
N
8
ND
MAX
3
4
5
L
0.45
0.50
0.55
b
0.35
0.40
0.45
D2
3.90
4.00
4.10
E2
3.30
3.40
3.50
D
6.00 BSC
E
8.00 BSC
A
0.70
0.75
0.80
A1
0.00
---
0.05
K
0.20 MIN.
NOTE
1.
DIMENSIONING AND TOLERANCING CONFORMS TO
ASME Y14.5M - 1994.
2.
ALL DIMENSIONS ARE IN MILLMETERS.
3.
N IS THE TOTAL NUMBER OF TERMINALS.
4
DIMENSION “b” APPLIES TO METALLIZED TERMINAL AND IS
MEASURED BETWEEN 0.15 AND 0.30mm FROM TERMINAL
TIP. IF THE TERMINAL HAS THE OPTIONAL RADIUS ON THE
OTHER END OF THE TERMINAL, THE DIMENSION “b”
SHOULD NOT BE MEASURED IN THAT RADIUS AREA.
5
ND REFERS TO THE NUMBER OF TERMINALS ON D SIDE.
6.
MAX. PACKAGE WARPAGE IS 0.05mm.
7.
MAXIMUM ALLOWABLE BURRS IS 0.076mm IN ALL DIRECTIONS.
8
PIN #1 ID ON TOP WILL BE LASER MARKED.
9
BILATERAL COPLANARITY ZONE APPLIES TO THE EXPOSED
HEAT SINK SLUG AS WELL AS THE TERMINALS.
4
g1021 \ 16-038.30 \ 10.28.11
文档编号:002-03823 版本 *A
页 43/143
预览资料
6.2.3
S25FL256L
球栅阵列 24 球型焊盘 6  8 mm (FAB024)
文档编号:002-03823 版本 *A
页 44/143
预览资料
6.2.4
S25FL256L
球栅阵列 24 球型焊盘 6  8 mm (FAC024)
PACKAGE
FAC024
JEDEC
N/A
DxE
SYMBOL
NOTES:
8.00 mm x 6.00 mm NOM
PACKAGE
MIN
NOM
MAX
A
---
---
1.20
A1
0.25
---
---
A2
0.70
---
0.90
NOTE
PROFILE
BALL HEIGHT
BODY THICKNESS
D
8.00 BSC.
BODY SIZE
E
6.00 BSC.
BODY SIZE
D1
5.00 BSC.
MATRIX FOOTPRINT
E1
3.00 BSC.
MATRIX FOOTPRINT
MD
6
MATRIX SIZE D DIRECTION
ME
4
MATRIX SIZE E DIRECTION
N
24
BALL COUNT
Øb
0.35
0.40
e
1.00 BSC.
SD/ SE
0.5/0.5
J
0.45
BALL DIAMETER
1.
DIMENSIONING AND TOLERANCING METHODS PER
ASME Y14.5M-1994.
2.
ALL DIMENSIONS ARE IN MILLIMETERS.
3.
BALL POSITION DESIGNATION PER JEP95, SECTION
4.3, SPP-010.
4.
e REPRESENTS THE SOLDER BALL GRID PITCH.
5.
SYMBOL "MD" IS THE BALL MATRIX SIZE IN THE "D"
DIRECTION.
SYMBOL "ME" IS THE BALL MATRIX SIZE IN THE
"E" DIRECTION.
n IS THE NUMBER OF POPULATED SOLDER BALL POSITIONS
FOR MATRIX SIZE MD X ME.
6
DIMENSION "b" IS MEASURED AT THE MAXIMUM BALL
DIAMETER IN A PLANE PARALLEL TO DATUM C.
DATUM C IS THE SEATING PLANE AND IS DEFINED BY THE
CROWNS OF THE SOLDER BALLS.
7
BALL PITCHL
SOLDER BALL PLACEMENT
SD AND SE ARE MEASURED WITH RESPECT TO DATUMS A
AND B AND DEFINE THE POSITION OF THE CENTER SOLDER
BALL IN THE OUTER ROW.
DEPOPULATED SOLDER BALLS
WHEN THERE IS AN ODD NUMBER OF SOLDER BALLS IN THE
OUTER ROW SD OR SE = 0.000.
PACKAGE OUTLINE TYPE
WHEN THERE IS AN EVEN NUMBER OF SOLDER BALLS IN THE
OUTER ROW, SD OR SE = e/2
8.
"+" INDICATES THE THEORETICAL CENTER OF DEPOPULATED
BALLS.
9
A1 CORNER TO BE IDENTIFIED BY CHAMFER, LASER OR INK
MARK, METALLIZED MARK INDENTATION OR OTHER MEANS.
10 OUTLINE AND DIMENSIONS PER CUSTOMER REQUIREMENT.
3642 F16-038.9 \ 09.10.09
文档编号:002-03823 版本 *A
页 45/143
预览资料
S25FL256L
软件接口
本节介绍了与主机系统软件最紧密相关的功能和行为,这些软件与 FL-L 系列存储器器件相互配合使用。
7. 地址空间映射
7.1
概述
7.1.1
扩展地址
FL-L 系列支持 32 位 (4 个字节)地址。这样,同前一代 (旧版) SPI 器件相比,器件容量更高 (前代 SPI 器件仅支持 24 位 (3 个
字节)地址。对于 24 位、字节分辨率系统,地址寄存器允许对 16 MBytes (128 Mb)大的地址空间进行访问。对于 32 位、字节分
辨率,地址寄存器允许对 4 GBytes (32 Gbits)大的地址空间直接进行访问。
传统的命令仍支持 24 位地址,以实现软件向后兼容。通过以下两种方法可以获取扩展的 32 位地址:

扩展地址模式 — 一个易失性配置寄存器位,它更改了所有传统命令,以获取由主机系统提供的 32 位地址。

4 字节地址命令 — 执行传统的和新的功能,从而能够获取 32 位地址。
上电或复位后,扩展地址模式的默认条件是由非易失性配置位控制的。可将默认的扩展地址模式设置为 24 或 32 位地址。这样可以对
器件的前 128 Mb 空间进行传统的软件兼容访问,并允许器件在 32 位地址模式下直接启动。
7.1.2
多地址空间
许多命令在主闪存存储器阵列上运行。某些命令在独立于主闪存阵列的地址空间内运行。每个单独地址空间使用了整个 24 或 32 位地
址,但只定义可用地址空间的一小部分。
7.2
闪存存储器阵列
主闪存阵列被分为统一的擦除单位,这些单位称为物理模块 (64 KB)、半模块 (32 KB)和扇区 (4 KB)。
表 7.1 S25FL256L 扇区地址映射
块大小
(KB)
块数量
块范围
64
1
BA00
:
:
:
半块大小
(KB)
半块数量
半块范围
扇区大小
(KB)
扇区数量
扇区范围
地址范围 (字节地址)
32
1
HBA00
4
1
SA00
0000000h-0000FFFh
:
:
:
:
32
2
HBA01
4
16
SA15
000F000h-000FFFFh
:
:
:
:
:
:
:
—
1FF0000h-1FF0FFFh
扇区结束地址
32
64
512
1023
HBA1022
BA511
32
文档编号:002-03823 版本 *A
注意
1024
HBA1023
4
8176
SA8175
:
:
:
:
4
8192
SA8191
1FFF000h-1FFFFFFh
扇区起始地址
页 46/143
预览资料
7.3
S25FL256L
ID 地址空间
RDID 命令 (9Fh)从单独的闪存存储器地址空间内读取信息,以获取器件标识 (ID)。请参考第 138 页上的 11.2,器件 ID 地址映
射,了解定义 ID 地址空间内容的表格。该 ID 地址空间由赛普拉斯编程,主机系统只能对其执行读取操作。
7.3.1
器件的唯一 ID
64 位唯一编号位于唯一器件 ID 地址空间中的 8 个字节内,请参考第 138 页上的表 11.6 器件的唯一 ID。该唯一 ID 可以作为每个器
件的唯一软件可读序列号。
7.4
JEDEC JESD216 串行闪存可发现参数 (SFDP)空间
根据串行闪存可发现参数的 JEDEC JESD216 标准, RSFDP 命令 (5Ah)从单独闪存存储器地址空间读取信息,以获取器件标识、
特性和配置信息。该 ID 地址空间作为 SFDP 参数中的一个。请参考第 131 页上的 11.1, JEDEC JESD216B 串行闪存可发现参数,
了解定义 SFDP 地址空间内容的表格。该 SFDP 地址空间由赛普拉斯编程,主机系统只能对其进行读取操作。
7.5
安全区域地址空间
每个 FL-L 系列存储器器件具有一个独立于主闪存阵列的 1024 字节安全区域地址空间。该安全区域分为四个可独立锁定的 256 字节
区域。安全区域存储器空间包含某些信息,这些信息暂时被保护或长期锁定,因此无法对其进行其他的编程或擦除操作。
从赛普拉斯出厂时,这些区域的数据字节被擦除为 FFh。当该区域不被保护或锁定时,可以对其进行编程和擦除操作,就像对其他
闪存存储器地址空间进行的操作一样。可以独立擦除每个区域。安全区域锁定位 (CR1NV[5:2])位于配置寄存器 1 内。安全区域锁
定位是一次性可编程 (OTP)位。编程这些位后 (设置为 1),一个锁定位将长期防止对相关区域进行其他的擦除或编程操作。
保护寄存器 (PR) NVLock 位暂时防止对区域 2 和区域 3 进行编程或擦除操作。 NVLock 位是易失性位,通过使用 IRP 逻辑和各种
命令可以设置或清除它。请参见 第 59 页上的保护寄存器 (PR)。
IRP 寄存器 (IRP[2])中的安全区域密码保护位用于防止对区域 2 和区域 3 进行编程和擦除操作,直到提供一个密码为止。 IRP 寄存
器 (IRP[6])中的安全区域读取保护位用于防止对区域 3 进行读取操作,直到提供一个密码为止。尝试读取防止读操作的区域时,
将返回无效和未定义的数据。请参考 第 58 页上的单独和区域保护寄存器 (IRP)。
尝试擦除或编程受保护或被锁定的区域时,会导致结果失败,并且 SR2V[6:5] 中的 P_ERR 或 E_ERR 位被设置为 1。(请参考 第 50
页上的状态寄存器 2 易失性 (SR2V)了解详细说明)。
表 7.2 安全区域地址映射
区域
字节地址范围 (十六进制)
初始供应状态 (十六进制)
区域 0
000 到 0FF
所有字节 = FF
区域 1
100 到 1FF
所有字节 = FF
区域 2
200 到 2FF
所有字节 = FF
区域 3
300 到 3FF
所有字节 = FF
文档编号:002-03823 版本 *A
页 47/143
预览资料
7.6
S25FL256L
寄存器
寄存器是存储器单元的小组,用于配置 FL-L 系列存储器器件的运行方式以及报告器件的运行状态。通过使用特殊命令可以访问这些
寄存器。使用于每个寄存器的命令 (和十六进制指令代码)被注释在每个寄存器的说明内。
在旧版的 SPI 存储器器件中,独立寄存器位可以是同一个寄存器中易失性、非易失性或一次性可编程 (OTP)位的混合体。在某些配
置选项中,寄存器位的类型会发生改变,例如,从非易失性变为易失性。
FL-L 系列使用单独的非易失性或易失性存储器单元组 (区域)来实现不同类型的寄存器位。然而,继续显示了传统寄存器和各种命
令,它们始终有效,从而实现对传统软件的兼容。当传统寄存器具有易失性位或读取传统寄存器的命令具有 0 读取延迟时,每个传统
寄存器有非易性和易失性版本。在上电复位 (POR)、硬件复位或软件复位期间,寄存器的非易失性版本被复制为易失性版本,以提
供易失性寄存器的默认状态。当写入非易失性寄存器位时,寄存器的非易失性版本将被擦除并写入 / 加载新的位值,而且寄存器的易
失性版本将更新非易失性版本的新内容。当读取易失性或非易失性寄存器时,将提供该寄存器的易失性版本。当编程 OTP 位时,寄
存器的非易失性版本将被编程,而且寄存器易失性版本中的相应位被更新。当写入易失性寄存器位时,只有寄存器易失性版本中的相
应位被更新。
每位的类型被注释在每个寄存器的说明内。每位的默认状态就是执行上电复位、硬件复位或软件复位后的状态 (如果该位是易失性
的)。如果该位是非易失性或 OTP 位,则默认状态将为器件从赛普拉斯出厂时的位值。
7.6.1
7.6.1.1
状态寄存器 1
状态寄存器 1 非易失性 (SR1NV)
相关命令:非易失性写使能 (WREN 06h)、写禁用 (WRDI 04h)、写入寄存器 (WRR 01h)、读取任何寄存器 (RDAR 65h)、
写入任何寄存器 (WRAR 71h)。
表 7.3 状态寄存器 1 非易失性 (SR1NV)
位
字段名称
功能
类型
默认状态
7
SRP0_NV
状态寄存器保护 0
默认设置
说明
非易失性
0
为 SRP0 提供默认状态。
6
TBPROT_NV
TBPROT 默认设置
非易失性
0
为 TBPROT 提供默认状态。
5
BP_NV3
4
BP_NV2
3
BP_NV1
传统块保护默认
设置
非易失性
0000b
2
BP_NV0
1
WEL_D
WEL 默认设置
非易失性
只读
0
为 WEL 状态提供默认状态。用户不能编程该位。
0
WIP_D
WIP 默认
非易失性
只读
0
为 WIP 状态提供默认状态。用户不能编程该位。
为 BP 位提供默认状态。
状态寄存器保护非易失性(SRP0_NV) SR1NV[7] :为 SRP0 提供默认状态。请参见第 64 页上的状态寄存器保护(SRP1、SRP0)。
顶部或底部保护位 (TBPROT_NV)SR1NV[6]:为 TBPROT 提供默认状态。
传统模块保护 (BP_NV3、 BP_NV2、 BP_NV1、 BP_NV0)SR1NV[5:2]:为 BP_3 到 BP_0 位提供默认状态。
写使能锁存默认 (WEL_D)SR1NV[1]:为 SR1V[1] 中的 WEL 状态提供默认状态。该位由赛普拉斯编程,用户不能编程它。
正在写入默认位 (WIP_D) SR1NV[0]:为 SR1V[0] 中的 WIP 状态提供默认状态。该位由赛普拉斯编程,用户不能编程它。
文档编号:002-03823 版本 *A
页 48/143
预览资料
7.6.1.2
S25FL256L
状态寄存器 1 易失性 (SR1V)
相关命令:读取状态寄存器 1 (RDSR1 05h)、易失性的写使能 (WRENV 50h)、写入寄存器 (WRR 01h)、清除状态寄存器
(CLSR 30h)、读取任何寄存器 (RDAR 65h)、写入任何寄存器 (WRAR 71h)。通过使用 RDSR1 命令可以显示该寄存器。
表 7.4 状态寄存器 1 易失性 (SR1V)
位
字段名称
功能
类型
默认状态
说明
7
SRP0
状态寄存器保护 0
易失性
1 = 锁定 SR1NV、SR1V、CR1NV、CR1V、CR2NV、CR2V、CR3NV、DLRNV 和 DLRV
的当前状态。
WP# 为低时,(可通过不执行会影响 SR1NV、 SR1V、 CR1NV、 CR1V、 CR2NV、
CR2V、 CR3NV、 DLRNV 和 DLRV 的任何命令)。
0 = 不进行寄存器保护,即使 WP# 为低。
6
TBPROT
顶部或底部的保护
易失性
1 = BP 从底部 (低地址)开始。
0 = BP 从顶部 (高地址)开始。
5
BP3
4
BP2
3
BP1
传统块保护易失性
易失性
防止对所选的扇区 (块)范围进行编程或擦除操作。
2
BP0
1
WEL
写使能锁存
易失性
只读
0 = 不使能写入,不可执行嵌入式操作 ;1= 使能写入,可执行嵌入式操作
该位不受 WRR 或 WRAR 的影响,但受 WREN、 WRENV、 WRDI 和 CLSR 命令的影响。
0
WIP
正在执行写入操作
易失性
只读
1 = 器件处于忙碌状态,正在执行编程或擦除等嵌入式操作
0 = 器件已经处于待机模式,可以接收命令
该位不受 WRR 或 WRAR 的影响,它仅提供 WIP 状态。
SR1NV
状态寄存器保护 0 (SRP0) SR1V[7]:当该位为 1 并且 WP# 输入为低电平时,器件将处于硬件保护模式。在该模式下,由于这些
寄存器变为只读寄存器,因此,更改状态寄存器或配置寄存器的所有命令均被忽略且不被执行。从而有效地锁存状态寄存器和配置寄
存器 SR1NV、SR1V、CR1NV、CR1V、CR2NV、CR2V、CR3NV、DLRNV 和 DLRV 位 。如果 WP# 为高电平,状态寄存器和配置
寄存器 SR1NV、SR1V、CR1NV、CR1V、CR2NV、CR2V、CR3NV、DLRNV 和 DLRV 可能被更改。如果 SRP0 为 0,WP# 无效,
则状态寄存器和配置寄存器 SR1NV、SR1V、CR1NV、CR1V、CR2NV、CR2V、CR3NV、DLRNV 和 DLRV 可能被更改。WP# 不
对任何其他寄存器的写操作产生影响。 SRP0 跟踪该位 (SRP0_NV)非易失性版本的更改。当使能 QPI 或 QIO 模式 (CR2V[3] 或
CR1V[1] = “1”)时,内部 WP# 信号电平为 1。这是因为当使能某个模式时 WP# 外部输入作为 IO2 使用。这样可以有效地关闭硬
件保护。寄存器 SR1NV、SR1V、CR1NV、CR1V、CR2NV、CR2V、CR3NV、DLRNV 和 DLRV 被解锁,可以对这些寄存器进行写
操作。请参见第 64 页上的状态寄存器保护 (SRP1、 SRP0)。
TBPROT SR1V[6]:该位定义了状态寄存器中传统模块保护位 BP3、 BP2、 BP1 和 BP0 的参考点。如状态寄存器部分中所述,则通
过使用 BP3-0 位,用户可以选择保护阵列的某一部分 (1/64、 ¼、 ½ 等等)或整个阵列。将 TBPROT 设置为 “0” 时,传统模块保
护被定义为从该阵列的顶部 (最大地址)开始。将 TBPROT 设置为 “1” 时,传统模块保护被定义为从该阵列的底部 (0 地址)开
始。 TBPROT 跟踪该位 (TBPROT_NV)非易失性版本的更改。
传统模块保护 (BP3、 BP2、 BP1、 BP0)SR1V[5:2]:这些位定义了防止编程和擦除操作的主闪存阵列区域。第 65 页上的 8.6.1,
传统块保护说明了 BP 位值如何选择受保护的存储器阵列区域。
写使能锁存 (WEL) SR1V[1]:必须将 WEL 位设置为 1,这样才能使能编程、写入或擦除操作,并能防止对存储器或寄存器值进行
意外更改。 执行写使能 (WREN)命令会将写使能锁存位设置为 “1”,这样便能执行后面所有的编程、擦除或写命令。通过写禁用
(WRDI)命令,将写使能锁存位设置为 “0”,这样可以防止执行编程、擦除和写命令。编程、写入或擦除操作成功后, WEL 位将
被清除为 0。如果这些操作失败, WEL 位将保持设置状态,应该使用 CLSR 命令清除它。断电 / 上电序列、硬件复位或软件复位发生
后,写使能锁存位将被设置为 WEL_D。 WRR 或 WRAR 命令不会影响该位的状态。
正在写入 (WIP)SR1V[0]:表示器件是否正在执行编程、写入、擦除或其他操作,器件在这段时间内会忽略新的操作命令。 当该位
被设置为 “1” 时,器件会执行一个操作。当 WIP 为 “1” 时,仅接收读取状态寄存器 (RDSR1、 RDSR2)、读取任何寄存器
(RDAR)、擦除 / 编程挂起(EPS)、清除状态寄存器(CLSR)、读取配置寄存器(RDCR1、RDCR2、RDCR3)和软件复位(RST
99h 前面的 RSTEN 66h)等命令。只有正在对存储器阵列进行擦除或编程操作时, EPS 命令才被接收。当 WIP = 1 时,状态寄存器
E_ERR 和 P_ERR 位将被更新。当 P_ERR 或 E_ERR 位为 1 时,WIP 位将保持设置为 1,以表示器件的繁忙状态并且无法接收新的
操作命令。必须接收清除状态寄存器 (CLSR)命令,这样可以使器件返回待机模式。将 WIP 位清除为 0 时,便不会有任何操作正在
进行。这是一个只读位。
文档编号:002-03823 版本 *A
页 49/143
预览资料
7.6.1.3
S25FL256L
状态寄存器 2 易失性 (SR2V)
相关命令:读取状态寄存器 2 (RDSR2 07h)、读取任何寄存器 (RDAR 65h)。状态寄存器 2 中没有用户可编程的非易失性位,
它的所有定义位都是易失性只读状态位。这些位的默认状态是由硬件设置的。
表 7.5 状态寄存器 2 易失性 (SR2V)
位
字段名称
功能
7
RFU
保留
6
E_ERR
发生了擦除错误
5
P_ERR
发生了编程错误
4
RFU
3
RFU
2
类型
默认状态
说明
0
保留供将来使用
易失性
只读
0
1 = 发生了错误
0 = 无错误
易失性
只读
0
1 = 发生了错误
0 = 无错误
保留
0
保留供将来使用
保留
0
保留供将来使用
RFU
保留
0
保留供将来使用
1
ES
擦除挂起
易失性
只读
0
1 = 处于擦除挂起模式
0 = 未处于擦除挂起模式
0
PS
编程挂起
易失性
只读
0
1 = 处于编程挂起模式
0 = 未处于编程挂起模式
擦除错误(E_ERR)SR2V[6]:擦除错误位用于指出擦除操作的成功或失败。当擦除错误位被设置为 “1” 时,则表示最后擦除操作
有错误。当用户尝试擦除受保护的单独主存储器扇区或一个被锁定的安全区域时,该位将被设置。如果在执行命令期间找到受保护的
扇区时,芯片擦除命令将设置 E_ERR。当擦除错误位为 “1” 时,通过使用清除状态寄存器 (CLSR)命令可以将该位清除为 0。这
是一个只读位,它不受 WRR 或 WRAR 命令的影响。
编程错误 (P_ERR) SR2V[5]:编程错误位用于指出编程操作的成功或失败。当编程错误位为 “1” 时,则表示最后编程操作有错
误。当用户尝试在受保护的主存储器扇区或一个被锁定的安全区域中进行编程时,该位将被设置。当编程错误位为 “1” 时,通过使
用清除状态寄存器 (CLSR)命令可以将该位清除为 0。这是一个只读位,它不受 WRR 或 WRAR 命令的影响。
擦除挂起 (ES)SR2V[1]:擦除挂起位用于指出器件是否处于擦除挂起状态。用户不能写入该状态位。擦除挂起位为 “1” 时,表示
器件处于擦除挂起状态。擦除挂起位为 “0” 时,表示器件没有擦除挂起。请参考第 111 页上的 9.6.5,编程或擦除挂起(PES 75h),
了解擦除挂起 / 恢复命令的详细内容。
编程挂起 (PS)SR2V[0]:编程挂起位用于指出器件是否处于编程挂起状态。用户不能写入该状态位。当编程挂起位为 “1” 时,
表示器件处于编程挂起状态。当编程挂起位为 “0” 时,表示没有编程挂起。更多信息,请查阅第 111 页上的 9.6.5,编程或擦除挂
起 (PES 75h)。
文档编号:002-03823 版本 *A
页 50/143
预览资料
7.6.2
S25FL256L
配置寄存器 1
配置寄存器 1 控制某些接口和数据保护功能。通过使用带有十六个输入周期的 WRR 命令或通过使用 WRAR 命令可以更改这些寄存
器位。
7.6.2.1
配置寄存器 1 非易失性 (CR1NV)
相关命令:非易失性写使能 (WREN 06h)、写入寄存器 (WRR 01h)、读取任何寄存器 (RDAR 65h)、写入任何寄存器
(WRAR 71h)。
表 7.6 配置寄存器 1 非易失性 (CR1NV)
位
字段名称
功能
类型
默认状态
7
SUS_D
挂起状态默认设置
非易失性只读
0
为挂起状态提供默认状态。用户不能编程该位。
6
CMP_NV
补充保护默认设置
非易失性
0
为 CMP 提供默认状态。
5
LB3
4
LB2
3
LB1
2
LB0
1
QUAD_NV
0
SRP1_D
说明
0
安全区域锁定位
OTP
四线默认设置
非易失性
0
0
安全区域 3:0 的 OTP 锁定位 3:0
0 = 安全区域未被锁定
1 = 安全区域永久性被锁定
0
状态寄存器保护 1 默认
设置
OTP
0
为 QUAD 提供默认状态。
0
当 IRP[2:0]= “111” 时,可以编程 SRP1_D 位。
锁定 SR1NV、 SR1V、 CR1NV、 CR1V、 CR2NV、 CR2V、 CR3NV、
DLRNV 和 DLRV 的当前状态
1 = 寄存器永久锁定
0 = POR 发生后,寄存器不受 SRP1 的保护
擦除 / 编程挂起状态 (SUS_D)CR1NV[7]:为 CR1V[7] 中的 SUS 位提供默认状态。用户不能编程该位。
补充保护 (CMP_NV)CR1NV[6]:为 CR1V[6] 中的 CMP 位提供默认状态。
安全区域锁定位 (LB3、 LB2、 LB1、 LB0) CR1NV[5:2]:提供安全区域的 OTP 写保护控制。将 LB 位设置为 1 时,不能对安全区
域进行其他编程或擦除操作。
四线数据宽度非易失性 (QUAD_NV)CR1NV[1]:为 CR1V[1] 中的 QUAD 位提供默认状态。 WRR 或 WRAR 命令会影响该位的状
态。 CR1NV[1] = 1 时,在上电或复位时将默认运行四线数据宽度命令。状态寄存器保护 1 的默认值 (SRP1_D)CR1NV[0]:为
CR1V[0] 中的 SRP1 位提供默认状态。当 IRP[2:0] = “111” 时,用户可以对 SRP1_D OTP 位进行编程。当 SRP1_D = “1” 时,
寄存器 SR1NV、 SR1V、 CR1NV、 CR1V、 CR2NV、 CR2V、 CR3NV、 DLRNV 和 DLRV 被长期锁定。请参考第 64 页上的状态寄
存器保护 (SRP1、 SRP0)。
7.6.2.2
配置寄存器 1 易失性 (CR1V)
相关命令:读取配置寄存器 1 (RDCR1 35h)、易失性的写使能 (WRENV 50h)、写入寄存器 (WRR 01h)、读取任何寄存器
(RDAR 65h)、写入任何寄存器 (WRAR 71h)。通过使用 RDCR1 命令可以显示该寄存器。
文档编号:002-03823 版本 *A
页 51/143
预览资料
S25FL256L
表 7.7 配置寄存器 1 易失性 (CR1V)
位
字段名称
功能
类型
默认状态
1 = 擦除 / 编程挂起
0 = 擦除 / 编程不挂起
说明
7
SUS
挂起状态
易失性
只读
6
CMP
补充保护
易失性
0 = 正常保护映射
1 = 转换保护映射
5
LB3
4
LB2
3
LB1
安全区域锁定位的
易失性副本
易失性
只读
2
LB0
用户不可写入
请参见 CR1NV[5:2]
安全区域 3:0 的 OTP 锁定位 3:0
0 = 安全区域未被锁定
1 = 安全区域永久性被锁定
1
QUAD
四线 I/O 模式
易失性
1 = 四线
0 = 双线或串行
0
SRP1
状态寄存器保护 1
易失性
锁定 SR1NV、 SR1V、 CR1NV、 CR1V、 CR2NV、 CR2V、
CR3NV、 DLRNV 和 DLRV 的当前状态
1 = 寄存器被锁定
0 = 寄存器未被锁定
CR1NV
挂起状态 (SUS) CR1V[7] :挂起状态位指示器件是否是在擦除或编程挂起状态。用户不能写入该状态位。当挂起状态位为 “1”
时,表示器件处于擦除或编程挂起状态。当挂起状态位为 “0” 时,表示器件不在擦除或编程挂起状态。请参考第 111 页上的 9.6.5,
编程或擦除挂起 (PES 75h)了解擦除 / 编程挂起 / 恢复命令的详细内容。补充保护 (CMP) CR1V[6]:CMP 与 TBPROT、 BP3、
BP2、 BP1 和 BP0 位一起使用,旨在为阵列保护图提供更好的灵活性,这样可以为从半个阵列到整个阵列的空间提供保护。
LB[3:0] CR1V[5:2]:这些位是 CR1NV 的相关 OTP 位的易失性复制。它们跟踪相关 OTP 版本的更改。
四线数据宽度 (QUAD)CR1V[1]:设置为 1 时,这些位将器件的数据宽度切换到 4 比特四线模式。当 CS# 为低电平时, WP# 变为
IO2, IO3 / RESET# 变为有效的 I/O 信号。当 CS# 为高电平时, IO3 / RESET# 变为 RESET# 输入。 WP# 输入不被监控,因此它会
正常运行,并且它被内部设置为高电平 (无效)。可以正常执行串行和双线 I/O 读取命令,但在使用不同的数据路径宽度切换各个命
令时不用为这些命令驱动 WP# 输入。同样,在执行这些命令期间,不需要驱动 IO3 / RESET# (CS# 为低电平)。当使用四线读取输
出、四线读取 I/O 和 DDR 四线读取 I/O 命令时,必须将 QUAD 位设置为 1。 QIO 模式的易失性寄存器写操作拥有 (tQEN)时间以将
器件接口切换到 QIO 模式和 (tQEX)时间,从而能够将器件切换到 SPI 模式。因此,能以 QIO 协议方式立即发送以下命令。通过
QPIEN 和 QPIEX 命令进入 / 退出 QPI 模式或将 CR2V[3] 设置为 1 时,将使用四线数据宽度模式 (无论 QUAD 位的状态如何)。
状态寄存器保护 1(SRP1)CR1V[0] :将 SRP1 位设置为 1 时,将通过防止对 SR1NV、SR1V、CR1NV、CR1V、CR2NV、CR2V、
CR3NV、 DLRNV 和 DLRV 寄存器进行的写操作保护这些寄存器的状态。请参考第 64 页上的状态寄存器保护 (SRP1、 SRP0)。
如果 SRP1 位保持清除为 0,SR1NV、SR1V、CR1NV、CR1V、CR2NV、CR2V、CR3NV、DLRNV 和 DLRV 寄存器不受 SRP1 的
保护。然而,这些寄存器可能受 SRP0 (SR1V[7])和 WP# 输入的保护。
将一个逻辑 1 写入到 SRP1 位后,只能通过断电到上电周期或硬件复位将其清除为逻辑 0。软件复位将不影响到 SRP1 位的状态。
CR1V[0] SRP1 位是易失性的。上电后, SRP1 的默认状态由 CR1NV[0] 中的 SRP1_D 决定。通过使用单个 WRR 或 WRAR 命令
可以同时设置 SRP1 位并更新 CR1V 中的其他值。
文档编号:002-03823 版本 *A
页 52/143
预览资料
7.6.3
S25FL256L
配置寄存器 2
配置寄存器 2 控制某些接口功能。通过使用读取任何寄存器和写入任何寄存器命令可以读取和更改这些寄存器位。该寄存器的非易失
性版本允许为这些控制设置 POR、硬件复位或软件复位状态。在正常操作期间,该寄存器的易失性版本控制着功能状态。
7.6.3.1
配置寄存器 2 非易失性 (CR2NV)
相关命令:非易失性写使能 (WREN 06h)、写入寄存器 (WRR 01h)、读取任何寄存器 (RDAR 65h)、写入任何寄存器 (WRAR
71h)。
表 7.8 配置寄存器 2 非易失性 (CR2NV)
位
7
字段名称
功能
IO3R_NV
IO3_Reset
OI_NV
输出阻抗
4
RFU
保留
3
QPI_NV
QPI
2
WPS_NV
1
0
6
5
类型
默认状态
0
1
1
说明
1 = 使能 — 当 CS# 为高或四线模式被禁用 (CR1V[1] = 0)或 QPI 被禁用
(CR3V[3] = 0)时, IO3_RESET 作为 IO3/RESET# 输入使用
0 = 禁用 — IO3 没有其他功能,硬件复位被禁用。
提供默认输出阻抗状态。请参见第 53 页上的表 7.9 输出阻抗控制
0
保留供将来使用
0
1 = 使能 — 使用 QPI (4-4-4)协议
0 = 禁用 — 使用传统 SPI 协议,指令始终在 SI 线上串行传输
为 QPI 模式提供默认状态。
写保护选择
0
为 WPS 提供默认状态
0 = 传统保护
1 = 单块锁定
ADP_NV
上电时的地址长度
0
为地址长度提供默认状态
1 = 4 字节地址
0 = 3 字节地址
RFU
保留
0
保留供将来使用
非易失性
IO3 _Reset 非易失性 CR2NV[7]:该位控制 IO3 信号性能的 POR、硬件复位或软件复位状态。由于传统 SPI 器件封装中的信号数量
和连接有限,因此几乎所有传统 SPI 器件都没有硬件复位输入信号。当没有将 IO3 信号用于传输主机系统和存储器之间的信息时,
FL-L 允许将 IO3 信号作为硬件复位输入使用。通过使用该非易失性 IO3_Reset 配置位,可以立即启动 (引导)器件,而且 IO3 作为
RESET# 信号使用。
输出阻抗非易失性 CR2NV[6:5]:这些位控制 IO 信号输出阻抗 (驱动强度)的 POR、硬件复位或软件复位状态。通过多个驱动强度
可以使输出阻抗与系统印刷电路板环境相互匹配,从而能够尽量降低过冲和振铃。这些非易失性输出阻抗配置位允许器件使用合适的
驱动强度立即启动 (引导)。
表 7.9 输出阻抗控制
CR2NV[6:5] 阻抗选项
对 VSS 的阻抗 (Ω)
对 VDD 的阻抗 (Ω)
00
18
21
01
26
28
10
47
45
11
71
64
文档编号:002-03823 版本 *A
注意
工厂默认设置
页 53/143
预览资料
S25FL256L
QPI 非易失性 CR2NV[3]:该位为所有命令的预期指令宽度控制 POR、硬件复位或软件复位状态。传统 SPI 命令始终在 SI (IO0)
信号上以 1 位宽度(串行 I/O)发送指令。FL-L 系列也支持 QPI 模式。在该模式下,主机系统和存储器之间的所有传输在 IO0 到 IO3
上实现,传输宽度为 4 比特,包括所有指令。该非易失性 QPI 配置位允许器件在 QPI 模式下立即启动(引导),而不是在传统串行指
令模式下进行。转到 QPI 模式的建议流程是先使用 QPIEN (38h)命令, WRR 或 WRAR 命令也可以将 CR2V[3] 设置为 1 (QPI 模
式)。 QIO 模式的易失性寄存器写操作拥有 (tQEN)时间,用于将器件接口切换到 QIO 模式和 (tQEX)时间,从而能够将器件切换
到 SPI 模式。因此,能以 QPI 协议方式立即发送以下命令。通过使用 WRAR 命令将 CR2NV[3] 编程为 1,然后轮询 SR1V[0],以确
定编程操作是否完成。同样,使用 QPIEX (F5h)命令退出 QPI 模式。也可以使用 WRR 或 WRAR 命令将 CR2V[3] 清除为 0。
写保护选择非易失性 CR2NV[2]:该位控制写保护方法的 POR、硬件复位或软件复位状态。在使能该非易失性配置位的情况下,当器
件启动 (引导)时,将使能单独模块锁存保护 (而不是传统的模块保护)。
上电时的地址长度、非易失性 CR2NV[1]:该位为所有命令的预期地址长度控制 POR、硬件复位或软件复位状态。这些命令需要地址
而且这些地址不被固定为 3 字节或 4 字节地址。多数传统的 SPI 命令需要一个地址,这些命令通常使用 3 字节 (24 位)地址。如果
器件容量超过 128 Mb,将需要一个 4 字节 (32 位)地址来访问整个存储器阵列。通过使用地址长度配置位可以将所有 3 字节地址命
令更改为所期待的 4 字节地址。请参考第 77 页上的表 9.3FL-L 系列命令集 (按功能排列),了解命令地址长度。该非易失性地址长
度配置位允许器件在 4 字节地址模式立即启动 (引导),而不是在传统的 3 字节地址模式下进行。
7.6.3.2
配置寄存器 2 易失性 (CR2V)
相关命令:读取配置寄存器 2 (RDCR2 15h)、读取任何寄存器 (RDAR 65h)、易失性的写使能 (WRENV 50h)、写入寄存器
(WRR 01h)、写入任何寄存器 (WRAR 71h)、进入 4 字节地址模式 (4BEN B7h)、退出 4 字节地址模式 (4BEX E9h)、进入
QPI (38h)、退出 QPI (F5h)。通过使用 RDCR2 命令可以显示该寄存器。
表 7.10 配置寄存器 2 易失性 (CR2V)
位
字段名称
功能
7
IO3R
IO3_Reset
OI
输出阻抗
6
5
4
RFU
保留
类型
默认状态
说明
1 = 使能 — 当 CS# 为高或四线模式被禁用 (CR1V[1] = 0)或 QPI 被禁用
(CR3V[3] = 0)时, IO3 作为 RESET# 输入使用
0 = 禁用 — IO3 没有其他功能, IO3/RESET# 输入的硬件复位功能被禁用。
请参见 第 53 页上的表 7.9 输出阻抗控制
易失性
保留供将来使用
CR2NV
3
QPI
QPI
2
WPS
写保护选择
1
ADP
上电时的地址长度
易失性
只读
0
ADS
地址长度状态
易失性
1 = 使能 — 使用 QPI (4-4-4) 协议
0 = 禁用 — 使用传统 SPI 协议,指令始终在 SI 线上串行传输
0 = 传统块保护
1 = 单块锁定
读取状态位
1 = 4 字节地址
0 = 3 字节地址
CR2NV[1]
当前地址模式
1 = 4 字节地址
0 = 3 字节地址
IO3 复位 CR2V[7]:该位控制 IO3 / RESET# 信号的性能。当 CS# 为高电平或禁用四线模式 (CR1V[1] = 0)或禁用 QPI (CR3V[3]
= 0)时,在正常操作期间,易失性 IO3 复位配置位允许将 IO3 作为 RESET# 输入使用。
输出阻抗 CR2V[6:5]:这些位控制 IO 信号输出阻抗 (驱动强度)。通过使用该易失性输出阻抗配置位,用户可以在正常操作期间调
整驱动强度。
QPI CR2V[3]:该位控制所有命令的预期指令宽度。通过使用易失性 QPI 配置位,在正常操作期间,器件可以进入和退出 QPI 模式。
将该位设置为 QPI 模式时,四线模式将有效,无论 QIO 模式 (CR1V[1])的设置如何。将该位清除为传统的 SPI 模式时, QUAD 位
不受影响。通过使用 QPIEN(38h)命令可以将 QPI CR2V[3] 位设置为 “1”,通过使用 QPIEX(F5h)命令可以将其设置为 “0”。
表 7.11 QPI 和 QIO 模式控制位
QPI CR2V[3]
QUAD CR1V[1]
0
0
SIO 模式:单线和双线读取, WP#/IO2 输入作为 WP# 引脚使用, IO3/RESET# 输入作为 RESET# 引脚使用
0
1
QIO 模式:单线、双线和四线读取,WP#/IO2 输入作为 IO2 使用,IO3/RESET# 输入作为 IO3 或 RESET# 引脚使用
1
X
QPI 模式:四线读取, WP#/IO2 输入作为 IO2 使用, IO3/RESET# 输入作为 IO3 或 RESET# 引脚使用
文档编号:002-03823 版本 *A
说明
页 54/143
预览资料
S25FL256L
写保护选择 CR2V[2]:通过该位可以选择阵列保护方法:第 65 页上的传统块保护或 第 68 页上的单块锁定 (IBL)保护。通过易失性
配置位,用户可以在正常操作期间更改保护方法。
上电 (ADP) CR2V[1] 时的地址长度:该位为只读位,它显示了上电复位、硬件复位或软件复位后所有命令的地址长度。这些命令
需要地址,并且这些地址不被固定为 3 字节或 4 字节地址。
地址长度状态 (ADS) CR2V[0]:该位控制所有命令的预期地址长度。这些命令需要地址,这些地址不被固定为 3 字节或 4 字节地
址。请参考第 77 页上的表 9.3FL-L 系列命令集 (按功能排列),了解命令地址长度。通过易失性地址长度配置位,用户可以在正常
操作期间更改地址的长度。 4 字节地址模式 (4BEN)命令直接将该位设置为 4 字节地址模式,(4BEX)退出命令将该位设置回 3 字
节地址模式。更新地址长度非易失性 CR2NV[1] 位时,该位也被更新。
7.6.4
配置寄存器 3
配置寄存器 3 控制着主闪存阵列读命令的回卷突发性能和读取延迟。回卷突发配置不会影响读取非主闪存阵列的区域的命令,如:读
取寄存器或安全区域的命令。由于在 POR、硬件复位或软件复位期间寄存器的内容被复制到寄存器的易失性版本内,因此该寄存器的
非易失性版本允许设置该控制操作的启动 (引导)状态。正常操作期间,该寄存器的易失性版本控制功能的性能。
通过使用读取配置 3 (RDCR3 33h)、写入寄存器 (WRR 01h)、读取任何寄存器 (RDAR 65h)、写入任何寄存器 (WRAR 71h)
命令可以对这些寄存器位进行读取和更改操作。通过使用设置突发长度 (77h)命令也可以写入该寄存器的易失性版本。
7.6.4.1
配置寄存器 3 非易失性 (CR3NV)
相关命令:非易失性写使能 (WREN 06h)、写入寄存器 (WRR 01h)、读取任何寄存器 (RDAR 65h)、写入任何寄存器 (WRAR
71h)。
表 7.15 配置寄存器 3 非易失性 (CR3NV)
位
字段名称
功能
7
RFU
保留
类型
6
5
4
WL_NV
回卷长度默认设置
WE_NV
回卷使能默认设置
默认状态
0
保留供将来使用
1
00 = 8 字节回卷
01 = 16 字节回卷
10 = 32 字节回卷
11 = 64 字节回卷
1
非易失性
1
3
1
2
0
1
RL_NV
0
读取延迟默认设置
说明
0
0= 回卷使能
1= 回卷禁用
0 到 15 个延迟 (虚拟)周期 (随后读地址或连续模式位)
0
回卷长度非易失性 CR3NV[6:5]:这些位控制着回卷读取长度和对齐的 POR、硬件复位或软件复位状态。
回卷使能非易失性 CR3NV[4]:该位控制着回卷使能的 POR、硬件复位或软件复位状态。受回卷使能影响的命令包括:四线读取 I/O、
读取 QPI、 DDR 四线读取 I/O 和读取 DDR QPI。该配置位允许器件在回卷突发读取模式下立即启动 (引导),而不是在传统的连续
读取模式下进行。
读取延迟非易失性 CR3NV[3:0]:这些位控制着所有可变延迟读命令中读取延迟 (虚拟周期)的 POR、硬件复位或软件复位状态。以
下读命令在地址或模式的结束和读取数据开始返回到主机之间有一个可变的延迟周期:
■
对于以下命令,所有时钟频率的延迟均为一个虚拟周期。如果默认延迟代码为 “0”,该延迟为一个虚拟周期。
❐ 数据学习模式读取 DLPRD (1-1-1)或 (4-4-4)
❐ IRP 读取 IRPRD (1-1-1)或 (4-4-4)
❐ 保护寄存器读取 PRRD (1-1-1)或 (4-4-4)
❐ 密码读取 PASSRD (1-1-1)或 (4-4-4)
■
以下命令的延迟 / 时钟频率如表 7.16 和表 7.17 所示。如果默认延迟代码为 “0”,该延迟为 8 个虚拟周期。
❐ 快速读取 FAST_READ (1-1-1)
❐ 四线 O 读取 QOR、 4QOR (1-1-4)
❐ 双线 O 读取 DOR、 4DOR (1-1-2)
❐ 双线 I/O 读取 DIOR、 4DIOR (1-2-2)
❐ 四线 I/O 读取 QIOR、 4QIOR (1-4-4)或 (4-4-4)
文档编号:002-03823 版本 *A
页 55/143
预览资料
S25FL256L
DDR 四线 I/O 读取 DDRQIOR、 4DDRQIOR (1-4-4)
安全区域读取 SECRR (1-1-1)或 (4-4-4)
❐ 读取任何寄存器 RDAR (1-1-1)或 (4-4-4)
❐ 读取串行闪存可发现参数 RSFDP (1-1-1)或 (4-4-4)
❐
❐
非易失性读延迟配置位设置需要使用的读延迟 (虚拟周期)数量,因此可以使用主机系统的合适读延迟立即启动 (引导)器件。
。
表 7.16 延迟代码 (周期)与频率 (表 1/2)
读取命令最大频率 (MHz)
快速读取
(1-1-1)
双线输出读取
(1-1-2)
双线 I/O 读取
(1-2-2)
四线输出读取
(1-1-4)
四线 I/O 读取
(1-4-4)
四线 I/O 读取
QPI (4-4-4)
DDR
四线 I/O
(1-4-4)
QPI (4-4-4)
模式周期 = 0
模式周期 = 0
模式周期 = 4
模式周期 = 0
模式周期 = 2
模式周期 = 2
模式周期 = 1
虚拟周期 = 8
虚拟周期 = 8
虚拟周期 = 8
虚拟周期 = 8
虚拟周期 = 8
虚拟周期 = 8
虚拟周期 = 8
1
50
50
75
35
35
35
20
2
65
65
85
45
45
45
25
3
75
75
95
55
55
55
35
4
85
85
108
65
65
65
45
5
95
95
108
75
75
75
55
6
108
105
108
85
85
85
60
7
108
108
133
95
95
95
66
8
108
108
133
108
108
108
66
9
133
133
133
115
115
115
66
延迟代码
0
10
133
133
133
115
115
115
66
11
133
133
133
120
120
120
66
12
133
133
133
120
120
120
66
13
133
133
133
133
133
133
66
14
133
133
133
133
133
133
66
15
133
133
133
133
133
133
66
文档编号:002-03823 版本 *A
页 56/143
预览资料
S25FL256L
表 7.17 延迟代码 (周期)与频率 (表 2/2)
读取命令最大频率 (MHz)
读取任何寄存器
(1-1-1)
读取任何寄存器
QPI
(4-4-4)
安全区域读取
(1-1-1)
安全区域读取 QPI
(4-4-4)
读取 SFDP
RSFDP (1-1-1)
读取 SFDP
RSFDP QPI
(4-4-4)
模式周期 = 0
模式周期 = 0
模式周期 = 0
模式周期 = 0
模式周期 = 0
模式周期 = 0
虚拟周期 = 8
虚拟周期 = 8
虚拟周期 = 8
虚拟周期 = 8
虚拟周期 = 8
虚拟周期 = 8
1
50
15
50
15
50
15
2
65
25
65
25
65
25
3
75
35
75
35
75
35
4
85
45
85
45
85
45
延迟代码
0
5
95
55
95
55
95
55
6
108
65
108
65
108
65
7
108
75
108
75
108
75
8
108
85
108
85
108
85
9
133
95
133
95
133
95
10
133
108
133
108
133
108
11
133
115
133
115
133
115
12
133
115
133
115
133
115
13
133
120
133
120
133
120
14
133
120
133
120
133
120
15
133
133
133
133
133
133
注意:
1. SCK 频率 > 133 MHz SDR 或 66 MHz DDR 不受该器件系列的支持。
2. 双线 I/O、四线 I/O、QPI、DDR 四线 I/O 和 DDR QPI 命令协议包括随后地址的连续读取模式位。这些位的时钟周期不计入下表中的延迟周期。例如:传统的四线 I/O 命
令具有两个随后地址的连续读取模式周期。因此,对于无其他读取延迟的传统四线 I/O 命令,受支持的频率如下表所示 (读取延迟为 0)。通过递增可变读取延迟,可
增大四线 I/O 命令的频率,从而允许执行受支持的最大 133 MHz 频率和 QPI 受支持的最大 133 MHz 频率的操作。
3. 其他命令具有固定的延迟。例如,读取始终有 0 读取延迟,读取唯一 ID 具有 32 个虚拟周期,从深度断电释放则具有 24 个虚拟周期。
7.6.4.2
配置寄存器 3 易失性 (CR3V)
相关命令:读取配置 3 (RDCR3 33h)、易失性的写使能 (WRENV 50h)、写入寄存器 (WRR 01h)、读取任何寄存器 (RDAR
65h)、写入任何寄存器 (WRAR 71h)、设置突发长度 (SBL 77h)。通过使用 RDCR3 命令可以显示该寄存器。
表 7.18 配置寄存器 3 易失性 (CR3V)
位
字段名称
功能
7
RFU
保留
类型
默认状态
6
5
4
WL
回卷长度
WE
回卷使能
RL
读延迟
说明
保留供将来使用
00 = 8 字节回卷
01 = 16 字节回卷
10 = 32 字节回卷
11 = 64 字节回卷
易失性
CR3NV
0 = 回卷使能
1 = 回卷禁用
3
2
1
0 到 15 个延迟 (虚拟)周期 (随后读地址或连续模式位)
0
回卷长度 CR3V[6:5]:在正常操作期间,这些位控制着回卷读取长度和对齐。通过使用这些易失性配置位,用户可以在正常操作期
间调整突发回卷读取长度。
回卷使能 CR3V[4]:这些位控制着突发回卷功能。通过使用该易失性配置位,在正常操作期间,器件可以进入和退出突发回卷模式。
CR3V[4] = 1 时,将不使能回卷模式而且可以连续读取无限长度的数据。
文档编号:002-03823 版本 *A
页 57/143
预览资料
S25FL256L
CR3V[4] = 0 时,将使能回卷模式而且只能从读命令提供的字节地址开始读取固定长度和对齐的 8、 16、 32 或 64 字节组,并且在该
字节组边界上回卷。
读延迟 CR3V[3:0]:这些位设置可变延迟读命令中的读延迟 (虚拟周期)。通过使用这些易失性配置位,用户可以在正常操作期间调
整读取延迟,从而按需要优化不同命令的延迟或不同频率的延迟。
7.6.5
单独和区域保护寄存器 (IRP)
相关指令:IRP 读取 (IRPRD 2Bh)和 IRP 编程 (IRPP 2Fh)、读取任意寄存器 (RDAR 65h)、写入任意寄存器 (WRAR 71h)。
IRP 寄存器指的是一个 16 位的 OTP 存储位置,用于永久地配置单独和区域保护 (IRP)特性的状态。 IRP 中没有用户可编程的易失
性位,它的所有定义位都是 OTP (一次性编程)。
各 IRP 位的默认状态是由赛普拉斯编程的。
表 7.19 IRP 寄存器 (IRP)
位
字段名称
功能
类型
默认状态
15 到 7
RFU
保留
OTP
所有位为 1
SECRRP
安全区域 3 读取密码
模式使能位
OTP
1
0 = 选择安全区域 3 读取密码模式
1 = 不选择安全区域 3 读取密码模式
如果 IRP[2:0] = “111”,则 IRP[6] 可编程
5
RFU
保留
OTP
1
保留供将来使用
4
IBLLBB
IBL 锁定启动位
OTP
1
0 = 所有单独 IBL 位在上电时均处于不受保护状态,并被设为 “1”
1 = 所有的单独 IBL 位在上电时均处于受保护状态,并被设为 “0”
如果 IRP[2:0] = “111”, IRP[4] 可编程
RFU
保留
OTP
1
保留供将来使用
OTP
1
0 = 密码保护模式永久被使能。
1 = 密码保护模式并非永久被使能。
如果 IRP[2:0] = “111”, IRP[2] 可编程
电源锁定保护模式锁
定位
OTP
1
0 = 电源锁定保护模式被永久使能。
1 = 电源锁定保护模式没有被永久使能。
如果 IRP[2:0] = “111”, IRP[1] 可编程
持久保护锁定位
OTP
1
0 = 持久保护模式被永久使能。
1 = 持久保护模式没有被永久使能。
如果 IRP[2:0] = “111”, IRP[0] 可编程
6
3
PWDMLB
2
1
0
PSLMLB
PERMLB
密码保护模式锁定位
说明
保留供将来使用
安全区域读取密码模式使能 (SECRRP) IRP[6]:写入数值 “0” 时, SECRRP 会使能安全区域 3 读取密码模式,而 PWDMLB 位
IRP[2] 将同时或稍后被编程。仅在 IRP[2:0] = “111” 时,才能对 SECRRP 位进行编程;否则,编程操作会失败,并且 P_ERR 的值
被设置为 “1”。请参考第 74 页上的 8.7.4,安全区域读取密码保护。
IBL 锁定启动位 (IBLLBB) IRP[4]:默认状态下,它的值为 “1” ;在上电、硬件复位或软件复位后的保护状态,所有单独的 IBL
位均被设置为 “0” 。要想编程或擦除该阵列,必须在执行编程或擦除指令前发送全局 IBL 解锁或扇区 / 块 IBL 解锁指令。被设置为
“0” 时,在上电、硬件复位或软件复位后,所有单独的 IBL 位都进入不受保护状态。仅在 IRP[2:0] = “111” 时,才能对 IBLLBB 位
进行编程;否则,编程操作失败,并且 P_ERR 的值被设置为 “1”。请参见第 68 页上的 8.6.2,单块锁定 (IBL)保护。
密码保护模式锁定位 (PWDMLB) IRP[2]:被设置为 “0” 时,将永久地选中密码保护模式,以保护安全区域 2、 3 和指针区域。仅
在 IRP[2:0] = “111” 时,才能对 SECRRP 位进行编程;否则,编程操作失败,并且 P_ERR 的值被设置为 “1”。请参考第 73 页
上的 8.7.3,密码保护模式。
在通过设置 IRP[2] = “0” 选中密码保护模式后,所有 IRP 位将被锁定,并永久地禁止对其进行的任意编程。尝试对任意 IRP 位进行
编程会引起编程错误,并且 P_ERR 的值被设置为 “1”。
设置密码模式 (IRP[2] = 0)之前,必须提前对密码进行编程并验证。
锁定保护模式锁定位 (PSLMLB) IRP[1]:被设置为 “0” 时,会永久地选中电源锁定保护模式。仅在 IRP[2:0] = “111” 时,才能
对 IPSLMLB 位进行编程;否则,编程操作会失败,并且 P_ERR 的值被设置为 “1”。
在通过设置 IRP[1] = “0” 选中电源锁定保护模式后,所有 IRP 位将被锁定,并永久地禁止对其进行的任意编程。尝试对任意 IRP 位
进行编程会引起编程错误,并且 P_ERR 的值被设置为 “1”。请参见第 72 页上的 8.7.1, IRP 寄存器。
永久性保护锁定位 (PERMLB) IRP[0]:被设置为 “0” 时,该永久性保护锁定位将一直保护指针区域和安全区域 2 和 3 ;它向指
针区域和安全区域 2、 3 提供的永久性的保护方式更为简单 (无需使用密码或 PRL 指令)。请参见第 72 页上的 8.7.1, IRP 寄存器。
文档编号:002-03823 版本 *A
页 58/143
预览资料
S25FL256L
PWDMLB(IRP[2])、PSLMLB(IRP[1])和 PERMLB(IRP[0])之间是相互排除的,其中只能有一位被设置为 “0”。仅在 IRP[2:0]
= “111” 时,才能对各 IRP 位进行编程。当 IRP[2:0] 的值不等于 “111” 时,尝试对 IRP 位进行编程会引起编程错误,并且 P_ERR
的值被设置为 “1”。在系统配置期间,应一直选中 IRP 保护模式,以确保恶意程序不会选中您不想要的保护模式。在通过 IRP 模式
选择来锁定所有保护配置后,恶意程序在后续时间内将不能对保护模式进行任意更改。
7.6.6
密码寄存器 (PASS)
相关指令:密码读取(PASSRD E7h)和密码编程(PASSP E8h)、读取任意寄存器(RDAR 65h)写入任意寄存器(WRAR 71h)。
PASS (密码)寄存器指的是 64 位的 OTP 存储器位置,该寄存器用于永久性定义单独和区域保护 (IRP)特性的密码。 PASS 中没
有用户可编程的易失性位,它的所有定义位都是 OTP。可以使用 PASS 的一个易失性副本来满足易失性寄存器的读取延迟要求,但该
易失性寄存器并不是用户可写的空间或没有详细的说明。在设置 IRP[2] = “0” 后,不能读取或编程密码。请参见第 58 页上的表
7.19IRP 寄存器 (IRP)。
表 7.20 密码寄存器 (PASS)
位
63 到 0
7.6.7
字段名称
PWD
功能
隐藏密码
类型
默认状态
说明
OTP
FFFFFFFFFFFFFFFFh
64 位密码的非易失性 OTP 存储。通过将 IRP 寄存器位 2 设为 0 选择密码保护模式后,密码
将不再可读。
保护寄存器 (PR)
相关指令:保护寄存器读取 (PRRD A7h)、保护寄存器锁定 (PRL A6h)或读取任意寄存器 (RDAR 65h)。
PR 中没有用户可编程的非易失性位,它的所有定义位都是易失性只读状态位。 RFU 位的默认状态是由硬件设置的。 PR 寄存器没有
非易失性版本。
NVLOCK 位用于保护安全区域 2、3 和指针区域保护。当 NVLOCK[0] = “0” 时,将不能对安全区域 2、3 和指针区域保护进行任何
更改。
文档编号:002-03823 版本 *A
页 59/143
预览资料
S25FL256L
表 7.21 保护状态寄存器 (PR)
位
字段名称
功能
7
RFU
保留
类型
默认状态
00h
6
SECRRP
安全区域读取密码
IRP[6]
5
RFU
保留
0
保留供将来使用
4
RFU
保留
0
保留供将来使用
3
RFU
保留
0
保留供将来使用
2
RFU
保留
0
保留供将来使用
1
RFU
保留
0
保留供将来使用
0
NVLOCK
保护非易失性配置
IRP[2] 和 IRP[0]
易失性
只读
说明
保留供将来使用
0 = 当 NVLOCK = 0 时,安全区域 3 受密码保护,不能对其执行读取操作
1 = 安全区域 3 不受密码保护,可以对其进行读取操作
0 = 安全区域 2 和 3 以及指针区域受保护,不能对其进行写入操作
1 = 可以对安全区域 2 和 3 以及指针区域进行写入操作。(1)
注意:
1. 指令保护寄存器锁定 (PRL),将 NVLOCK 的值设置为 “1”。
7.6.8
单独块锁定访问寄存器 (IBLAR)
相关指令:IBL 读取 (IBLRD 3Dh 或 4IBLRD E0h)、 IBL 锁定 (IBL 36h 或 4IBL E1h)、 IBL 解锁 (IBLUL 39h 或 4IBUL E2h)、
全局 IBL 锁定 (GBL 7Eh)、全局 IBL 解锁 (GBUL 98h)。
IBLAR 中没有用户可编程的非易失性位,它的每一位都能够表现为 IBL 阵列中的易失性位。 IBL 阵列的默认状态是由硬件设置的。
IBLAR 寄存器没有非易失性版本。
表 7.22 IBL 访问寄存器 (IBLAR)
位
7到0
字段名称
IBL
功能
对单独扇区 / 块的
IBL 进行读取 /
写入操作
类型
易失性
默认状态
说明
00h = IBL、 4IBL 和 GBL 命令将所寻址的扇区 / 块的 IBL 设置为 “0”,这样便不
如果 IRP[4] = 1,
能对扇区进行编程或擦除操作。
为 00h
FFh = IBUL、 4IBUL 和 GBUL 命令将所寻址的扇区 / 块的 IBL 设置为 “1”,这样
否则,为 FFh
能够对扇区进行编程或擦除操作。
注意
1. 请参见第 68 页上的图 8.2 单块锁定 / 指针区域保护控制。
2. 可能使用 IBLRD 和 4IBLRD 指令来读取 IBL 位的值。
7.6.9
指针区域保护寄存器 (PRPR)
相关指令:设置指针区域 (SPRP FBh 或 4SPRP E3h)、读取任意寄存器 (RDAR 65h)、写入任意寄存器 (WRAR 71h)。
PRPR 包含用户可编程的非易失性位。 PRPR 位的默认状态是由硬件设置的。 PRPR 寄存器没有易失性版本。更多有关信息,请查
见第 69 页上的 8.6.3,指针区域保护 (PRP)。
文档编号:002-03823 版本 *A
页 60/143
预览资料
S25FL256L
表 7.23 PRP 寄存器 (PRPR)
位
字段名称
功能
A31 到 A25
RFU
保留
类型
11111111b
默认状态
A24
PRPAD
PRP 地址
1
指针地址
S25FL256L 中的 A24
FFh
指针地址 A23 到 A16
Fh
指针地址 A15 到 A12
A23 到 A16
A15 到 A12
说明
保留供将来使用
1
0 = 保护指针区域中的所选扇区
1 = 保护所有扇区
PRP 使能
1
0 = 使能指针区域保护
1 = 禁用指针区域保护
PRP 顶部 / 底部
1
0 = 指针区域保护从顶部 (高地址)开始
1 = 指针区域保护从底部 (低地址)开始
A11
PRPALL
PRP 保护所有
扇区
A10
PRPEN
A9
PRPTB
A8
RFU
保留
1
保留供将来使用
A7 到 A0
RFU
保留
FFh
保留供将来使用
7.6.10
非易失性
DDR 数据学习寄存器
相关指令:编程 DLRNV (PDLRNV 43h)、写入 DLRV (WDLRV 4Ah)、数据学习模式 (DLPRD 41h)、读取任意寄存器 (RDAR
65h)、写入任意寄存器 (WRAR 71h)。
数据学习模式 (DLP)位于一个 8 位非易失性数据学习寄存器 (DLRNV)内,它也被称为一个 8 位易失性数据学习寄存 (DLRV)。
从赛普拉斯出厂时, DLRNV 的默认值为 00h。 一旦对 DLRNV 进行了编程,便不能重新编程或擦除它; DLRNV 中数据模式的副本
也会被写入到 DLRV 内。可以随时向 DLRV 进行写操作,但如果正在进行硬件和软件复位或上电周期时,数据模式将返回到它在
DLRNV 中的状态。在执行 SPI DDR 模式中所描述的学习阶段内, DLP 将位于 DLRV 中。在每个时钟沿上,各个 IO 均输出相同的
DLP 值。例如,如果 DLP 为 34h (或二进制 00110100),那么在第一个时钟沿上,所有 IO 都输出数值 “0” ;随后,在第二个时
钟沿上,所有 IO 输出数值 “0”,在第三个时钟沿上输出数值 “1”,等等。
DLRV 的值为 “00h” 时, DDR 指令中的虚拟阶段不会显示前导码数据模式。
表 7.24 非易失性数据学习寄存器 (DLRNV)
位
7到0
字段名称
功能
NVDLP
非易失性数据学习
模式
类型
OTP
默认状态
00h
说明
在 DDR 读取命令延迟 (虚拟)周期中传输到主机的 OTP 值,用以为主机提供一个培训模
式,来准确地确定所收数据位中的中心点。
表 7.25 易失性数据学习寄存器 (DLRV)
位
字段名称
功能
类型
7到0
VDLP
易失性数据学习
模式
易失性
文档编号:002-03823 版本 *A
默认状态
说明
在 POR 或复位期间 NVDLP 的易失性副本,用于使能并将数据学习模式 (DLP)传送到输出端。系统操作期间,
提取 DLRNV 的值 主机可以修改 VDLP。
页 61/143
预览资料
8.
8.1
S25FL256L
数据保护
安全区域
该器件具有一个独立于主闪存阵列的 1024 字节的地址空间。此空间分为四个独立锁定长度为 256 字节的区域。请参见第 47 页上的
7.5,安全区域地址空间。
安全区域存储器空间用于增强系统安全性。可以使用各个数据值将闪存组件与系统 CPU/ASIC“ 配对 ” 起来,用于防止设备替换。
安全区域地址空间是由安全区域锁定位或保护寄存器 NVLOCK 位(PR[0])保护。请参见第 62 页上的 8.1.4,安全区域锁定位(LB3、
LB2、 LB1、 LB0)。
8.1.1
读取安全区域存储器空间
安全区域读取命令 (SECRR)使用与快速读取使用了相同的协议。超过安全区域地址有效范围 (1024 字节)的任意读取操作会引起
不正确的数据。请参见第 115 页上的 9.7.3,安全区域读取 (SECRR 48h)。
当 NVLOCK = 0 时,通过进行以下设置:PWDMLB 位 IRP[2] = 0 和 SECRRP 位 IRP[6] = 0,可使安全区域 3 进入密码保护模式,
禁止发生读操作。
8.1.2
编程安全区域
安全区域编程指令 (SECRP)使用与页面编程指令相同的协议。请参见 第 115 页上的 9.7.2,安全区域编程 (SECRP 42h)。
第47页上的表7.2中显示的是安全区域编程的有效地址范围。超出该有效地址范围的任意安全区域编程操作都会被忽略,并且SR2V[5]
中的 P_ERR 不被设置为 “1”。
通过将 PWDMLB 位 IRP[2] 设置为 “0”,可将安全区域 2 和 3 进入密码保护模式,并禁止编程操作。
8.1.3
擦除安全区域
安全区域擦除指令 (SECRE)使用与扇区擦除指令相同的协议。请参见 第 114 页上的 9.7.1,安全区域擦除 (SECRE 44h)。
第 47 页上的表 7.2 中显示的是安全区域擦除的有效地址范围。没有将 SR2V 中的 E_ERR 设置为 “1” 时,超出该有效址范围的任意
安全区域编擦除操作将被忽略。
通过将 PWDMLB 位 IRP[2] 设置为 “0”,可使安全区域 2 和 3 进入密码保护模式,并禁止发生擦除操作。
8.1.4
安全区域锁定位 (LB3、 LB2、 LB1、 LB0)
安全区域锁定位 (LB3、 LB2、 LB1、 LB0)是配置寄存器 1 (CR1NV[5:2])中非易失性的一次性编程位,用于控制各安全区域的写
保护功能,并显示其状态。安全区域 0 至 3 的默认状态为解锁。通过使用写入状态寄存器指令或写入任意寄存器指令,可单独将 LB[3:0]
的值设置为 “1”。 LB[3:0] 是一次性可编程 (OTP)位,一旦被设置为 “1” 时,它们相应的 256 字节安全区域的状态将永久性变
成 “ 只读 ” 内容。
文档编号:002-03823 版本 *A
页 62/143
预览资料
8.2
S25FL256L
深度掉电
深度掉电 (DPD)指令能够提供另一种数据保护方式,使得所有指令 (深度掉电 (RES ABh)和硬件复位过后的释放指令除外))
被忽略于深度掉电 (DPD)模式因此,在 DPD 模式期间,该指令会禁止所有编程或擦除操作。
8.3
8.3.1
写入使能指令
写入使能 (WREN)
执行用于指定非易失性数据的任意指令前,先要写好写使能 (WREN)指令。 WREN 指令用于设置写使能锁存 (WEL)位。执行
上电、硬件和软件复位期间或在完成下面指令后, WEL 位将被清零 (禁用写操作):
– 复位
– 页面编程 (PP 或 4PP)
– 四线页编程 (QPP 或 4QPP)
– 扇区擦除 (SE 或 4SE)
– 半块擦除 (HBE 或 4HBE)
– 块擦除 (BE 或 4BE)
– 芯片擦除 (CE)
– 写入禁用 (WRDI)
– 写入寄存器 (WRR)
– 写入任意寄存器 (WRAR)
– 安全区域擦除 (SECRE)
– 安全区域字节编程 (SECRP)
– 单独和区域保护寄存器 (IRPP)
– 密码编程 (PASSP)
– 清除状态寄存器 (CLSR)
– 设置指针区域保护 (SPRP 或 4SPRP)
– 编程非易失性数据学习寄存器 (PDLRNV)
– 写入易失性数据学习寄存器 (WDLRV)
8.3.2
易失性寄存器的写使能 (WRENV)
执行用于指定易失性寄存器数据的任意写入寄存器 (WRR)指令之前,先要编写好写使能易失性 (WRENV)指令。
文档编号:002-03823 版本 *A
页 63/143
预览资料
8.4
S25FL256L
写入保护信号
当不处于四线模式 (CR1V[1] = 0)或 QPI 模式 (CR2V[3] = 0)时,写入保护 (WP#)输入和状态寄存器保护 0 (SRP0)位
(SR1NV[7])一起提供由硬件输入信号控制的保护。当 WP# 为低电平和 SRP0 的值为 “1” 时,状态寄存器 1 (SR1NV 和
SR1V)、配置寄存器 (CR1NV、 CR1V、 CR2NV、 CR2V、 CR3NV 和 CR3V)以及 DDR 数据学习寄存器 (DLRNV 和 DLRV)的
状态不会发生改变。这样会防止禁用或更改由传统的块保护位或安全区域锁定位指定的保护。请参见第 48 页上的 7.6.1,状态寄存
器 1。
8.5
状态寄存器保护 (SRP1、 SRP0)
配置寄存器和状态寄存器 (CR1V[0] 和 SR1V[7])中的状态寄存器保护位 (SRP1 和 SRP0)都是易失性的。 SRP 位规定 SR1NV、
SR1V、 CR1NV、 CR1V、 CR2NV、 CR2V、 CR3NV、 DLRNV 和 DLRV 的写保护方式:软件保护、硬件保护或电源锁定保护。
表 8.1 状态寄存器保护位 (高安全性)
SRP1_D
CR1NV[0]
SRP1
CR1V[0]
SRP0
SR1V[7]
WP#
0
0
0
X
软件保护
WP# 引脚没有任何控制。可以对 SR1NV、 SR1V、 CR1NV、 CR1V、
CR2NV、CR2V、CR3NV、DLRNV和DLRV进行写操作。[工厂默认设置]
0
0
1
0
硬件保护
当 WP# 引脚为低电平,SR1NV、SR1V、CR1NV、CR1V、CR2NV、
CR2V、 CR3NV、 DLRNV 和 DLRV 被锁定,不能对它们进行写操作。
(1)(4)
0
0
1
1
无硬件保护
当 WP# 引脚为高电平,SR1NV、SR1V、CR1NV、CR1V、CR2NV、
CR2V、CR3NV、DLRNV和DLRV被解锁,可以对它们进行写操作。(1)
0
1
X
X
电源锁定
SR1NV、SR1V、CR1NV、CR1V、CR2NV、CR2V、CR3NV、DLRNV
和 DLRV 受保护,不能对它们进行写操作,直到下一个下电和上电周期
到来为止。(2)
1
1
X
X
一次性编程
SR1NV、SR1V、CR1NV、CR1V、CR2NV、CR2V、CR3NV、DLRNV
和 DLRV 永久性受保护,不能对它们进行写操作。(3)
状态寄存器
说明
注意:
1. SRP0 是在下电、上电周期、软件或硬件复位过后 SRP0_NV (SR1NV[7])的默认状态中被重新加载的。上电时,若想要使用 WP# 引脚使能硬件保护模式,需要将
SRP0_NV 位设置为 “1”。
2. 当 SRP1 = 1、发生下电、上电周期或硬件复位时,一旦完成了从 SRP1_D 中重新加载 SRP1,该位的值会改变为 “0”。
3. 只有在 IRP[2:0] = “111” 时,才能写入 SRP1_D。 SRP1_D CR1NV[0] = “1” 时,下电、上电周期或硬件复位事件将在 SRP1_D = “1” 时重新加载 SRP1 位。由
于易失性位 SRP1 是不可写位,因此它会提供 OTP 保护。当 SRP1_D 的值被设置为 “1” 时,应将 SRP0_NV 设置为 “1”,以表示正在使用 OTP 保护。
4. 当使能 QPI 或 QIO 模式 (CR2V[3] 或 CR1V[1] = “1”)时,内部 WP# 信号 = “1”。这是因为当使能某个模式时 WP# 外部输入作为 IO2 使用。当 SRP1-SRP0 =
01b 时,可有效关闭硬件保护。寄存器 SR1NV、 SR1V、 CR1NV、 CR1V、 CR2NV、 CR2V、 CR3NV、 DLRNV 和 DLRV 被解锁,可以对这些寄存器进行写操作。
5. WIP、 WE 和 SUS (SR1[1:0] 和 CR1[7])是易失性的只读状态位,它们一直不受写入状态寄存器指令的影响。
6. 由 SRP 位和 WP# 保护 (如表中所示)时,将不能向 SR1NV、 CR1NV、 CR2NV 和 CR3NV 的非易失性版本执行写操作。如果在执行写入状态寄存器 (01h)指令或
写入任意寄存器 (71h)指令之前先执行写使能 (06h)指令,将选用这些状态寄存器位的非易失性版本执行写操作。
7. 在由 SRP 位和 WP# 保护 (如表中所示)时,将不能向 SR1V、 CR1V 和 CR2V 的易失性版本执行写操作。如果在执行写入状态寄存器 (01h)指令前先执行了写使
能易失性状态寄存器 (50h)指令;或在执行写入任意寄存器 (71h)指令前先执行了写使能 (06h)指令,那么会选择这些状态寄存器位的易失性版本来执行写操
作。
8. 易失性 CR3V 位不受 SRP 位的保护,并且在执行写入状态寄存器 (01h)指令前,可通过易失性 (50h)写使能指令随时写入这些位。另外,还可以使用 WRAR
(71h)或 SBL (77h)指令对 CR3V 寄存器中的位执行写操作。
9. 在系统上电和引导代码执行期间:通过可靠的引导代码能够判定是否需要修改以下寄存器的值:SR1NV、 SR1V、 CR1NV、 CR1V、 CR2NV、 CR2V、 CR3NV、
DLRNV 和 DLRV 的值。无需任何更改时,可以将 SRP1 位 (CR1V[0])的值设置为 “1”,以确保系统在上电时保持正常操作期间, SR1NV、 SR1V、 CR1NV、
CR1V、 CR2NV、 CR2V、 CR3NV、 DLRNV 和 DLRV 寄存器能够维持其状态。
文档编号:002-03823 版本 *A
页 64/143
预览资料
8.6
S25FL256L
阵列保护
存储器阵列保护分成三种类型:传统块 (LBP)、单独块锁定 (IBL)和指针区域 (PRP)。用户可以使用写保护选择 (WPS)位
来使能下面两种保护机制中的一种:传统块 (LBP)保护 (WPS CR2V[2] = 0)或单独块锁定 (IBL)保护 (WPS CR2V[2] = 1)。
请参见 第 54 页上的配置寄存器 2 易失性 (CR2V)。一次只能使能一种保护机制。传统块保护是默认的保护机制,它与 IBL 保护方
案相互独立。通过执行设置指针区域保护指令或在 A10 = 0 时执行 WRAR 指令,可以使能指针区域保护。请参考 第 120 页上的指针
区域命令。被使能时,指针区域保护与传统块保护或单独块锁定保护之间是逻辑 OR 关系。
图 8.1 LBP、 IBL 和 PRP 阵列保护的 WPS 选择
BP Bits
Command
Address
Legacy Block
Protection Logic
(Address Range
Compare)
WPS = 0
Mux
IBLBOOT
Individual Block
Protection Logic
(IBL Bit Array)
WPS = 1
OR
WPS
Array
Location
Protected
Pointer Region
Protection Logic
(Address range
compare)
NVLOCK
8.6.1
传统块保护
可以使用传统块保护位,状态寄存器位 BP3、BP2、BP1、BP0 -- (SR1V[5:2]),状态寄存器位 BP2、BP1、BP0 --(SR1V[4:2])
以及配置寄存器 TBPROT (SR1V[6])位, CMP (CR1V[6] 位)来禁止对主闪存阵列中某个地址范围进行的所有编程和擦除操作。
该范围的大小由 BP 位的值确定,并且该范围的上限或下限起始点由配置寄存器 (SR1V[6])(SR1V[5,)的 TBPROT 位决定。
CMP 位 (CR1V[6])被设置为 “1” 时,将完成保护机制。
被使能时,指针区域保护与传统块保护区域之间是逻辑 OR 关系。
文档编号:002-03823 版本 *A
页 65/143
预览资料
S25FL256L
表 8.2 S25FL256L (256 Mb)上部阵列补充传统块保护 (TBPROT = 0、 CMP = 1)
S25FL256L 传统块保护 (TBPROT = 0、 CMP = 1)
状态寄存器内容
BP3
BP2
BP1
BP0
受保护块的数量
受保护块
受保护空间 (KB)
0
0
0
0
512
0-511
32768
所有块
0
0
0
1
511
0-510
32704
低 511/512
受保护比例
0
0
1
0
510
0-509
32640
低 255/256
0
0
1
1
508
0-507
32512
低 127/128
0
1
0
0
504
0-503
32256
低 63/64
0
1
0
1
496
0-495
31744
低 31/32
0
1
1
0
480
0-479
30720
低 15/16
0
1
1
1
448
0-447
28672
低 7/8
1
0
0
0
384
0-383
24576
低 3/4
1
0
0
1
256
0-255
16384
低 1/2
1
0
1
0
0
无
0
无
1
0
1
1
0
无
0
无
1
1
0
0
0
无
0
无
1
1
0
1
0
无
0
无
1
1
1
0
0
无
0
无
1
1
1
1
0
无
0
无
表 8.3 S25FL256L (256 Mb)下部阵列补充传统块保护 (TBPROT = 1、 CMP = 1)
S25FL256L 传统块保护 (TBPROT = 1、 CMP = 1)
状态寄存器内容
BP3
BP2
BP1
BP0
受保护块的数量
0
0
0
0
0
0
0
1
受保护块
受保护空间 (KB)
受保护比例
512
0-511
32768
所有块
511
1-511
32704
高 511/512
0
0
1
0
510
2-511
32640
高 255/256
0
0
1
1
508
4-511
32512
高 127/128
0
1
0
0
504
8-511
32256
高 63/64
0
1
0
1
496
16-511
31744
高 31/32
0
1
1
0
480
32-511
30720
高 15/16
0
1
1
1
448
64-511
28672
高 7/8
1
0
0
0
384
128-511
24576
高 3/4
1
0
0
1
256
256-511
16384
高 1/2
1
0
1
0
0
无
0
无
1
0
1
1
0
无
0
无
无
1
1
0
0
0
无
0
1
1
0
1
0
无
0
无
1
1
1
0
0
无
0
无
1
1
1
1
0
无
0
无
文档编号:002-03823 版本 *A
页 66/143
预览资料
S25FL256L
表 8.4 S25FL256L (256 Mb)上部阵列传统块保护 (TBPROT = 0、 CMP = 0)
S25FL256L 传统块保护 (TBPROT = 0、 CMP = 0)
状态寄存器内容
BP3
BP2
BP1
BP0
受保护块的数量
受保护块
受保护空间 (KB)
0
0
0
0
0
无
0
无
0
0
0
1
1
511
64
高 1/512
0
0
1
0
2
510-511
128
高 1/256
0
0
1
1
4
508-511
256
高 1/128
0
1
0
0
8
504-511
512
高 1/64
0
1
0
1
16
496-511
1024
高 1/32
0
1
1
0
32
480-511
2048
高 1/16
0
1
1
1
64
448-511
4096
高 1/8
1
0
0
0
128
384-511
8192
高 1/4
受保护比例
1
0
0
1
256
256-511
16384
高 1/2
1
0
1
0
512
0-511
32768
所有块
1
0
1
1
512
0-511
32768
所有块
1
1
0
0
512
0-511
32768
所有块
1
1
0
1
512
0-511
32768
所有块
1
1
1
0
512
0-511
32768
所有块
1
1
1
1
512
0-511
32768
所有块
文档编号:002-03823 版本 *A
页 67/143
预览资料
8.6.2
S25FL256L
单块锁定 (IBL)保护
单块锁定位 (IBL)是易失性的,其中每一位用于锁定一个扇区 / 块,并且可以被单独修改。通过发送 IBL 或 GBL 指令,可以将 IBL
位设置为 “0”,从而保护相关的每一个扇区 / 块。通过发送 IBUL 或 GUL 指令,可以将 IBL 位清除为 “1”,从而解除每个相关的
扇区 / 块的保护。通过发送 IBLRD 指令,可以读取每个 IBL 位的状态。此功能允许软件方便地保护单个扇区 / 块,以免发生意外更
改;但并不禁止在需要更改时方便地去除保护。如果各 IBL 位都是易失性位,则可以按要求对它们进行设置或清除。
每个主 64 KB 块和在底部和顶部块中的各 4 KB 扇区都有相应的易失性的单独块锁定位(IBL)。如果某个扇区 / 块的 IBL 位为 ‘0’,
则相关的扇区 / 块受到保护,则不能对其执行编程和擦除操作。
如果使能了指针区域保护,则该保护区域与 IBL 位之间是逻辑 OR 的关系。
在上电、硬件复位或软件复位后的默认状态 [IBLLBB = 1] (请参考第 58 页上的表 7.19IRP 寄存器 (IRP)),所有单独的 IBL 位在
保护状态下都被设置为 “0”。要想编程或擦除该阵列,必须在执行编程或擦除指令前发送全局 IBL 解锁或扇区 / 块 IBL 解锁指令。
[IBLLBB = 0] 时,在上电、硬件复位或软件复位过后的不受保护的状态中,所有单独的 IBL 位都被设置为 “1”。
图 8.2 单块锁定 / 指针区域保护控制
In d iv id u a l B lo c k
L o c k B its (IB L ) A rra y
W P S = “1 ”
...
...
...
Logical OR
Logical OR
B lo c k 0
...
S e c to r 0
S e c to r 1 5
...
...
...
S e c to r 1 5
B lo c k 1
Logical OR
B lo c k 1
...
Logical OR
Logical OR
B lo c k M -1
...
...
Logical OR
B lo c k M
S e c to r N -1 5
B lo c k M -1
P o in te r R e g io n
P ro te c tio n
E n a b le d
A 1 0 = “0 ”
S e c to r N
...
S e c to r N -1 5
...
...
...
S e c to r N
F la s h
M e m o ry
A rra y
S e c to r 0
注意:
1. “M” 指的是顶部 64 KB 块。
2. “N” 指的是顶部 4 KB 扇区。
文档编号:002-03823 版本 *A
页 68/143
预览资料
8.6.3
S25FL256L
指针区域保护 (PRP)
指针区域保护由一个非易失性地址指针指定,该地址指针将选择其中一个 4 KB 扇区用作存储器中保护区域和不受保护区域间的边界。
这样可以确保各单独扇区间的间隔在整个电源周期和复位期间一直位于有效范围内。在轮到下一个电源周期、某个密码被提供或被永
久地锁定前,PRP 设置仍处于保护状态。可以将 PRP 与传统块保护或单独块锁定保护方式结合起来使用。使能 PRP 保护时,它与由
WPS 位 (CR2V[2])指定的保护方式之间是逻辑 OR 关系。
通过向 PRPR 寄存器 (请参考 第 94 页上的 9.3.15 节)写入设置指针区域保护 (SPRP FBh 或 4SPRP E3h)指令 (请参考 第 120
页上的 9.9 节)或写入任意寄存器 (WRAR 71h)指令,可以使能或禁用 PRP,并设置指针的值。
S25FL256L 器件必须进行 4 字节的地址使能 (CR2V[0] = 1),以设置指针区域保护寄存器 PRPR (请参考 第 60 页上的 7.6.9 节),
这样才能确保 A24 和 A25 被正确设置。
在发送设置块 / 指针保护指令或者将写入任意寄存器 (WRAR 71h)指令写入 PRPR 寄存器后, A10 的值会使能或禁用指针保护机
制。如果 A10 = 1,则禁用指针保护区域。这是默认的状态,其他指针的值不需关注。如果 A10 = 0,则使能指针保护区域。A10 的值
被写入到 PRPR 寄存器中非易失性的指针位。RFU 位的指针地址值是无需关注内容,但这些位将返回到数值 “1”。更多有关 PRPR
的信息,请参考 第 60 页上的 7.6.9 节。
如果使能了指针保护机制,则指针值会指定寄存器中保护区域和不受保护区域间的块边界。指针边界是由 PRPR 寄存器内非易失性指
针值中的三个 (A23-A12)或四个 (A31-A12)地址字节设置的。不受保护的区域会包括由指针值规定的 4 KB 扇区。
A9 的值用于确定不受保护的区域是否从存储器阵列的顶部 (最高地址)或底部 (最低地址)延长到指针所指位置。在发送某个地址
后发送 SPRP 或 4SPRP 指令的情况下,如果 A9 = 0,则包含该地址的 4 KB 扇区以及从底部朝上 (从零地址到更高地址)的所有扇
区将不受保护。在发送某个地址后发送 SPRP 或 4SPRP 指令的情况下,如果 A9 = 1,则包含该地址的 4 KB 扇区以及从顶部朝下(从
最高地址到更低地址)的所有扇区将不受保护。 A9 的值位于 PRPR 寄存器中非易失性指针值所指的位置。
可以使用 A11 位来保护所有扇区。I 如果 A11 = 1,则所有扇区被保护。如果 A11 = 0,则不受保护的范围由 Amax-A12 指定。A11 的
值位于 PRPR 寄存器中非易失性的指针值。
在挂起状态期间, SPRP 或 4SPRP 指令将被忽略。这是因为指针值在挂起状态下不能被擦除或重新编程。
如果 NVLOCK PR[0] = 0,则 SPRP 或 4SPRP 被忽略。
读取任意寄存器 (65h)指令 (请参考 第 92 页上的 9.3.14 节)可读取 PRP 访问寄存器的内容。这样允许读取指针内容被用于进行
测试和验证。
表 8.5 PRP 表
A11
A10
A9
受保护的
地址范围
不受保护的
地址范围
x
1
x
无
全部
1FFFFFF 到
A[31:12]
(A[31:12]+1)
到 0000000
1
(A[31;12]-1)到
0000000
1FFFFFF
x
1FFFFFF 到
000000
0
0
0
0
0
1
0
到 A[31:12]
不适用
注释
A10 = 1 时, PRP 被禁用 (这是默认状态,剩下所有指针值均为无需关注项)。
包含了该地址的 4 KB 扇区以及从底部向上 (从零地址到更高地址)的所有扇区都不受保护。
包含了该地址的 4 KB 扇区以及从顶部向下 (从最高地址到低地址)的所有扇区都不受保护。
A10 = 0 和 A11 = 1 表示保护所有扇区, Amax-A12 为无需关注项。
如果使能了指针保护方案(A10 = 0),并且该指针 保护某个地址空间的所有位置时,向该空间发送的擦除指令将不能被执行。例如:
可执行块擦除指令的某个 4 KB 的阵列,一旦采用了指针保护,向它进行的所有擦除指令都会失败。使能 PRP (A10 = 0)时,芯片
擦除 CEh 指令将被忽略,从而设置 E_ERR 状态位。
被使能时,指针区域保护与传统块保护区域(WPS CR2V[2] = 0)或单独块锁定保护(WPS CR2V[2] = 1)之间是逻辑 OR 关系(请
参考第 65 页上的图 8.1LBP、 IBL 和 PRP 阵列保护的 WPS 选择)。
8.7
单独和区域保护
单独和区域保护 (IRP)指的是一套独立的硬件和软件方案,用于禁用或使能安全区域 2、 3 和指针区域保护寄存器中的编程或擦除
操作。
其中每种方法都可监控 NVLOCK 位的状态 (PR[0])。 NVLOCK = 1 时,安全区域 2、 3 和指针区域保护寄存器 (PRPR) 都能被编
程和擦除。NVLOCK = 0 时,安全区域 2、3 和 PRPR 不可编程或擦除。请注意,安全区域 2、3 还分别由 LB2 或 LB3 = 1(CR1NV[4:5])
保护。
文档编号:002-03823 版本 *A
页 69/143
预览资料
S25FL256L
电源锁定保护是默认的方法。该方法在 POR 或硬件复位期间将 NVLOCK 位设置为 “1”,因此 NVLOCK 相关的区域和寄存器不受
器件复位的保护。 PRL (A6h)指令将 NVLOCK 位清除为 “0”,以保护 NVLOCK 相关的区域和寄存器。电源锁定方法没有指令能
够将 NVLOCK 位设置为 “1”,因此 NVLOCK 位将一直为 “0”,直到下一次断电或硬件复位为止。电源锁定方法允许引导代码选
择修改安全区域 2 和 3 或者 PRPR 中的值 (通过编程或擦除这些非易失性区域),然后通过将 NVLOCK 位清除为 “0” 来禁止对这
些区域进行的所有更改,以确保系统正常操作。这种情况有时被称为引导代码控制的保护。
在 POR 或硬件复位期间,密码保护方法将保护寄存器 NVLOCK 位被清除为 “0”,并将 SECRRP 位设置为 IRP[6],以保护 NVLOCK
相关的区域和寄存器。 SECRRP 位指定安全区域 3 是否可读。采用密码方法时,可永久性编程和隐藏某个 64 位的密码。可以使用
PASSU (EAh)指令提供某个密码,然后将其同隐藏密码进行比较。如果密码匹配, NVLOCK 位将被设置为 “1”,从而能够给
NVLOCK 相关的区域和寄存器解锁。通过 PRL (A6h)指令,可以将 NVLOCK 位清除为 “0”,再次激活密码保护。
采用永久性保护方法时,将永久地设置SECRRP位为“1”,并清除NVLOCK位为“0”。这样可永久性保护安全区域2、3和PRPR。
NVLOCK 位管理方法通过编程 IRP 寄存器 (IRP[2 或 1 或 0] 中的 OTP 位来选择,以便永久地选择所使用的方法。
第 71 页上的图 8.3 永久性保护、密码保护和电源锁定保护概览中显示的是这些方法的概述。
文档编号:002-03823 版本 *A
页 70/143
预览资料
S25FL256L
图 8.3 永久性保护、密码保护和电源锁定保护概览
Power on Reset or
Hardware Reset
Password
Protection Enabled
IRP[2]=0
Permanent
Protection Enabled
IRP[0]=0
No
No
Yes
Yes
Default Power Lock
Protection
No
Yes
IRP Register Bits Locked
Status Register Protect
Locked
NVLOCK =0
Permanent Erase and
Program Protection of
Security Regions 2 & 3
and Pointer Region
Protection
IRP Register Bits Locked
Status Register Protect
Locked
Security
Region 3 Read
Password Protection
Enabled
IRP[6]=0
Power Supply
Lock-down
Protection Enabled
IRP[1]=0
No
IRP Register Bits Locked
Status Register Protect
Locked
IRP Register Bits
Programmable
Status Register Protect
OTP Option
Programmable
NVLOCK = 1
Security Regions 2 & 3
and Pointer Region
Protection are Unlocked
Readable, Erasable and
Programmable
NVLOCK = 1
Security Regions 2 & 3
and Pointer Region
Protection are Unlocked
Readable, Erasable and
Programmable
Yes
NVLOCK = 0
Security Region 3
Read & Write Locked
Security Region 2
Write Locked
Pointer Region
Protection Write Locked
NVLOCK = 0
Security Region 2 & 3
Write Locked
Pointer Region
Protection Write Locked
No
NVLOCK Bit Write
Yes
Password Unlock
Password Unlock
No
Yes
NVLOCK Bit Write
NVLOCK = 1
Security Regions 2 & 3
and Pointer Region
Protection are Unlocked
Erasable and
Programmable
No
Read Password Protection Mode
Protects Security Regions 3 from
Read, Erase and Programming,
Security Region 2 and Pointer
Region Protection from erase and
programming after powerup . A
password unlock Command will
enable changes to Security Region
2 & 3 and Pointer Region
Protection. A NVLOCK bit write
command turns the protection back
on.
文档编号:002-03823 版本 *A
NVLOCK Bit Write
Yes
NVLOCK = 0
Security Regions 2 & 3
Write Locked
Pointer Region
Protection Write Locked
Yes
NVLOCK = 1
Security Regions 2 & 3
and Pointer Region
Protection are Unlocked
Readable, Erasable and
Programmable
Yes
No
NVLOCK = 0
Security Regions 2 & 3
Write Locked
Pointer Region
Protection Write Locked
No
Yes
NVLOCK Bit Write
Power Supply Lock-down
Protection Mode
Does not protect Security Regions
2 & 3 and Pointer Region Protection
from erase and programming after
powerup. The NVLOCK Bit write
command protects Security
Regions 2 & 3 and Pointer Region
Protection until the next power off
or reset.
Default Mode
Does not protect Security Regions
2 & 3 and Pointer Region Protection
from erase and programming after
powerup. The NVLOCK Bit write
command protects Security
Regions 2 & 3 and Pointer Region
Protection until the next power off
or reset.
The OTP Option for Status Register
Protect is available to be
programmed.
Permanent Protection Mode
Permanently protects Security
Regions 2 & 3 and Pointer Region
Protection from Erase and
Programming
Note
If Security Region Lock bits LB 2 &
3 are protected CR1NV[5:4]=1, this
overrides the NVLOCK and the
Security Regions protected by the
LB bits will be permanently
protected from erase and
programming. If Read Password is
enabled Security Region 3 can still
be read password protected.
No
Password Protection Mode
Protects Security Regions 2 & 3
and Pointer Region Protection from
erase and programming after
powerup. A password unlock
Command will enable changes to
Security Region 2 & 3 and Pointer
Region Protection. A NVLOCK bit
write command turns the protection
back on.
页 71/143
预览资料
8.7.1
S25FL256L
IRP 寄存器
IRP 寄存器用于永久地配置单独和区域保护 (IRP)特性的状态。请参见第 58 页上的表 7.19IRP 寄存器 (IRP)。
从工厂出厂时,所有器件默认使电源锁定保护模式,加电时所有区域均不受保护。
器件程序员或主机系统必须通过编程各相应的一次性可编程位来选择想要使用的保护模式:永久性保护、电源锁定保护或密码保护
模式。编程其中一位会引起器件被永久性锁定为选定的模式:
出厂默认 IRP 寄存器
– IRP[6] = “1” = 读取密码保护模式不被使能。
– IRP[4] = “1” = IBL 位在受保护状态中被生成。
– IRP[2] = “1” = 密码保护模式不被使能。
– IRP[1] = “1” = 电源锁定保护模式不被使能,但作为默认模式。
– IRP[0] = “1” = 永久性保护模式不被使能。
IRP 寄存器编程规则:

如果选中了读取密码保护模式,则必须在设置密码保护模式锁定位 IRP[2] 前编写 SECRRP 位或同时进行。

如果在不受保护模式下生成各 IBL 位,则必须在设置保护模式锁定位 IRP[2:0] 中的某一位前编写 IBLLBB 位或者同时进行。

如果选中了密码模式,则必须在设置密码保护模式的锁定位 IRP[2] 前编写密码。

各保护模式是相互排除的,一次只能选择其中一种模式。一旦选中了某种保护模式 IRP[2:0],将不能编写 IRP 寄存器位,并禁
止对 OTP 寄存器进行任何更改。如果尝试修改上述任何寄存器位,则在完成选择保护模式后,该操作会失败,并且 P_ERR
(SR2V[5])被设置为 “1”。
IRP 寄存器的编程时间与典型的页面编程时间相同。系统可以通过读取状态寄存器中的 WIP 位来确定 IRP 寄存器的状态。请参考
第 48 页上的 7.6.1,状态寄存器 1,了解 WIP 的详细信息。
请参见第 73 页上的 8.7.3,密码保护模式。
8.7.1.1
IBL 锁定启动位
默认的 IBL 锁定位 IRP[4] = 1 时,正在处于上电或复位模式 (在硬件复位或软件复位后的状态)的所有 IBL 位都会进入 “ 受保护状
态 ”。如果 IBL 锁定位 IRP[4] = 0 (编程),正在处于上电或复位模式的所有 IBL 位都会进入 “ 不受保护状态 ”。
文档编号:002-03823 版本 *A
页 72/143
预览资料
8.7.2
8.7.2.1
S25FL256L
保护寄存器 (PR)
NVLOCK 位 (PR[0])
NVLOCK 位是一个易失性位,用于保护:

指针区域保护寄存器

安全区域 2 和 3
该位被清零时, NVLOCK 将锁定相关区域。它设为 “1” 时,可修改这些区域。相关的详细信息,请参见第 59 页上的 7.6.7,保护
寄存器 (PR)。
PRL 命令用于将 NVLOCK 位清除为 “0”。所有相关区域均被配置为所需设置后,需要将 NVLOCK 位清除为 “0”。
在电源锁定保护模式下, NVLOCK 位在 POR 或硬件复位期间被设置为 “1”。软件复位命令不会对 NVLOCK 位产生影响。清除
后,所有软件命令序列都不能将 NVLOCK 设置为 “1”,只有通过硬件复位或上电才能设置 NVLOCK 位。
在密码保护模式下, NVLOCK 位在 POR 或硬件复位期间被清除为 “0”。 NVLOCK 位只能通过密码解锁命令被设为 “1”。
在永久性保护模式下,将 NVLOCK 位永久性清除为 “0”。这样可持久保护安全区域 2 和 3 和 PRPR。
8.7.2.2
安全区域读取密码锁定位 (SECRRP, PR[6])
SECRRP 位是一个易失性位,用于防止对安全区域 3 进行读取操作。 SECRRP[6] = 0 时,无法读取安全区域 3。更多信息,请参见
第 59 页上的 7.6.7,保护寄存器 (PR)。
在密码保护模式下, SECRRP 位在 POR、软件复位或硬件复位期间与 IRP[6] 相同。NVLOCK 位只能通过密码解锁命令被设为
“1”。软件复位不会对 NVLOCK 位产生影响。
在永久性保护模式下,将 SECRRP 位永久性设为 “1”。这样可以持久维持安全区域 3 的可读性。
8.7.3
密码保护模式
密码保护模式在解锁 NVLOCK 位时要求 64 位密码,因此可比电源锁定保护模式提供级别更高的安全性。除了密码要求外,在上电
和复位后, NVLOCK 位还被清除为 0,以确保在上电或复位后提供保护。通过输入整个密码并成功执行密码解锁命令后, NVLOCK
位将被设为 1,从而允许修改与扇区 NVLOCK 相关的区域和寄存器。
密码保护注意事项:

编程和验证密码后,必须设置密码模式 (IRP[2] = 0),以防止读取密码。

密码编程命令只能编程 “0”。若在一个比特位编程为 “0” 后编程 “1”,该位将保留 “0”,并且不会设置编程错误。

从赛普拉斯出厂时,密码全部是 “1”。它位于自己的存储空间中,可通过使用密码编程、密码读取、RDAR 和 WRAR 命令
进行访问。

所有 64 位密码组合均为有效密码。

一旦编程了密码模式,便能够防止对 64 位密码进行读取和编程操作。对密码区域的所有额外编程和读取命令均被禁止,
这些指令被忽略或返回未定义数据。选择了密码模式锁定位后,无法验证密码内容。只能在选择密码保护模式前进行密码
验证。

保护模式锁定位不可擦除。

只有输入准确的密码,才能解锁。如果密码解锁命令提供的密码与隐藏的内部密码不匹配,解锁操作会失败,与对受保护
的扇区执行编程操作相似。 P_ERR 位被设为 1, WIP 位保持设置状态,并且 NVLOCK 位保持清零状态。

每经过 100 µs ± 20 µs 时间,只能接收一条密码解锁命令。这样,黑客要想尝试所有 64 位组合以找到正确匹配的密码,就要
经过不可思议的超长时间 (5800 万年)。读取状态寄存器 1 命令用于读取 WIP 位,从而可以确定器件完成了密码解锁命令
还是准备好接收新的密码命令。提供有效的密码时,密码解锁命令会立即将 WIP 位清零,不需要经过 100 µs 的延迟时间。

如果在选择密码模式后丢失了密码,则无法将 NVLOCK 位设为 1。
文档编号:002-03823 版本 *A
页 73/143
预览资料
8.7.4
S25FL256L
安全区域读取密码保护
安全区域读取密码保护允许防止对安全区域 3 进行读取、编程和擦除操作。

安全区域读取密码保护是密码保护模式的附加选项(如上所述)。用户将 SECRRP 位 IRP[6] 编程为 0 时,安全区域读取密码
保护被使能。设置密码保护模式锁定位 IRP[2] 时 / 前,必须编程 SECRRP 位 IRP[6]。
仅在编程密码并且将 IRP[2] 清零后,安全区域读取密码保护才会生效。
SECRRP (PR[6])位被设为 0 时,安全区域 3 成为不可读取空间。如果读取这些区域,返回的是无效和未定义的数据。
8.7.5
建议的 IRP 保护流程
在系统制造中,闪存器件的配置如下:
1. 根据需要编程安全区域
2. 根据需要设置指针区域保护寄存器
3. 若使用密码保护,则需要编程密码寄存器 (PASS)。
4. 根据需要编程 IRP 寄存器,包括通过 IRP[2:0] 选择永久性保护、电源锁定或密码 IRP 保护模式。明确指定一种保护模式
非常重要,这样可以防止以后对 IRP 寄存器的意外或特意编程。这样可确保只有特定的保护功能被使能。编程 IRP 寄存
器前 / 时:
a. 通过 IBLLBB 位 (IRP[4])可以在无保护状态下为所有 IBL 位供电。
b. 通过编程 SECRRP 位 (IRP[6]),可以使安全区域读取密码保护使用密码来控制对安全区域 3 的读取访问。
在系统上电和引导代码执行过程中:如果正在使用电源锁定保护模式,则通过可靠引导代码能够确定是否需要修改与 NVLOCK 相关
的区域或寄存器。如果无需修改,则可以使用 PRL 命令将 NVLOCK 位清零,以便在通电时防止在正常系统操作期间对与 NVLOCK
相关的区域或寄存器进行修改。
文档编号:002-03823 版本 *A
页 74/143
预览资料
9.
S25FL256L
命令
主机系统和 FL-L 存储器件系列之间都是以命令为单位形式进行通信。有关命令协议的详细信息,请参见第 12 页上的 3.2,命令协
议。
虽然在某些情况下可以使用主机软件直接控制 SPI 接口信号,但是信号关系和时序详情则通常由主机系统和存储器设备的硬件接口
处理。本节内容着重于软件接口,所以没有详细描述信号关系和时序。它的重点内容是每个命令中位传输的逻辑序列。下面是一些需
要记住的通用信号关系说明。更多有关命令的比特级别格式和信号时序关系的信息,请参见第 12 页上的 3.2,命令协议。
– 主机总是控制片选 (CS#)、串行时钟 (SCK)和单比特传输中的串行输入 (SI)。存储器则驱动单比特读取传输的串行输出
(SO)。主机和存储器在双比特和四比特传输期间交替驱动 IO0-IO3 信号。
– 所有命令的启动方式均相同,都在 SCK 的第一个上升沿前将 CS# 驱动为低,以表示主机选择存储器。执行命令过程中, CS#
一直保持低电平状态; CS# 返回高电平状态时,命令结束。一般情况下, CS# 在八位传输的倍数期间保持低电平状态,用以
传输字节粒度的信息。如果 CS# 在非 8 位对齐位置上返回高电平状态,则不接受任何命令。
9.1
9.1.1
命令集汇总
扩展寻址
有两个选项用于寻址大于 128 Mb 空间的地址:
1. 始终要求一个 4 字节地址的指令,用于访问高达 32 Gb 的存储器:
表 9.1 扩展型地址:4 字节地址命令
命令名称
功能
4READ
读取
指令 (十六进制)
13
4FAST_READ
快速读取
0C
4DOR
双线输出读取
3C
4QOR
四线输出读取
6C
4DIOR
双线 I/O 读取
BC
4QIOR
四线 I/O 读取
EC
4DDRQIOR
DDR 四线 I/O 读取
EE
4PP
页编程
12
4QPP
四线页编程
34
21
4SE
扇区擦除
4HBE
半块擦除
53
4BE
块擦除
DC
4IBLRD
IBL 读取
E0
4IBL
IBL 锁定
E1
4IBUL
IBL 解锁
E2
4SPRP
设置指针区域保护
E3
2. 4 字节地址模式与 3 字节地址指令向后兼容。标准的 3 字节指令可以同地址长度配置位 (CR2V[0])控制的 4 字节地址模
式结合使用。 CR2V[0] 的默认值可从 CR2NV[1] 中加载 (在执行上电、硬件复位或软件复位后),实现默认的 3 字节
(24 位)或 4 字节 (32 位)寻址。地址长度 (CR2V[0])被设为 1 时,将修改传统命令,要求地址字段中的 4 字节
(32 位)地址。以下指令可以同 4 字节地址模式配置结合起来使用,以便从 3 字节地址字段转为 4 字节地址字节。
文档编号:002-03823 版本 *A
页 75/143
预览资料
S25FL256L
表 9.2 扩展型地址:4 字节地址模式下的 3 字节地址命令
命令名称
功能
指令 (十六进制)
RSFDP
读取 SFDP
5A
READ
读取
03
FAST_READ
快速读取
0B
3B
DOR
双线输出读取
QOR
四线输出读取
6B
DIOR
双线 I/O 读取
BB
QIOR
四线 I/O 读取
EB
DDRQIOR
DDR 四线 I/O 读取
ED
PP
页编程
02
QPP
四线页编程
32
SE
扇区擦除
20
HBE
半块擦除
52
BE
块擦除
D8
RDAR
读取任何寄存器
65
WRAR
写入任何寄存器
71
SECRE
安全区域擦除
44
SECRP
安全区域编程
42
SECRR
安全区域读取
48
IBLRD
IBL 读取
3D
IBL
IBL 锁定
36
IBUL
IBL 解锁
39
SPRP
设置指针区域保护
FB
文档编号:002-03823 版本 *A
页 76/143
预览资料
9.1.2
S25FL256L
按功能分类的命令汇总
表 9.3 FL-L 系列命令集 (按功能排列)
功能
命令名称
RDID
读取器件 ID
地址长度
(字节)
QPI
9F
108
0
有
5A
133
3或4
有
RDQID
四线读取 ID
AF
108
0
有
RUID
读取唯一 ID
4B
133
0
有
读取状态寄存器 1
05
108
0
有
RDSR2
读取状态寄存器 2
07
108
0
无
RDCR1
读取配置寄存器 1
35
108
0
无
RDCR2
读取配置寄存器 2
15
108
0
无
RDCR3
读取配置寄存器 3
33
108
0
无
读取任何寄存器
65
133
3或4
有
WRR
写入寄存器 (状态寄存器 1 和配置寄存器 1、 2、 3)
01
133
0
有
WRDI
写禁用
04
133
0
有
WREN
写使能,用于修改非易失性数据
06
133
0
有
写使能,用于修改易失性状态和配置寄存器的数据
50
133
0
有
写入任何寄存器
71
133
3或4
有
WRENV
WRAR
CLSR
清除状态寄存器
30
133
0
有
4BEN
进入 4 字节地址模式
B7
133
0
有
4BEX
退出 4 字节地址模式
E9
133
0
有
设置突发长度
77
133
0
有
QPIEN
进入 QPI
38
133
0
无
QPIEX
退出 QPI
F5
133
0
有
DLPRD
SBL
数据学习模式读取
41
133
0
有
PDLRNV
编程 NV 数据学习寄存器
43
133
0
有
WDLRV
写入易失性数据学习寄存器
4A
133
0
有
读
03
50
3或4
无
READ
4READ
读
13
50
4
无
FAST_READ
快速读取
0B
133
3或4
无
4FAST_READ
快速读取
0C
133
4
无
DOR
双线输出读取
3B
133
3或4
无
4DOR
双线输出读取
3C
133
4
无
QOR
四线输出读取
6B
133
3或4
无
4QOR
四线输出读取
6C
133
4
无
DIOR
双线 I/O 读取
BB
133
3或4
无
4DIOR
双线 I/O 读取
BC
133
4
无
QIOR
四线 I/O 读取 (CR1V[1] = 1)或 CR2V[3] = 1
EB
133
3或4
有
4QIOR
编程闪存
阵列
最大频率
(MHz)
读取 JEDEC 串行闪存可发现参数
RDAR
读闪存阵列
指令值
(十六进制)
读取 ID (JEDEC 制造商 ID)
RSFDP
RDSR1
寄存器访问
命令说明
四线 I/O 读取 (CR1V[1] = 1)或 CR2V[3] = 1
EC
133
4
有
DDRQIOR
DDR 四线 I/O 读取 (CR1V[1] = 1)或 CR2V[3] = 1
ED
66
3或4
有
4DDRQIOR
DDR 四线 I/O 读取 (CR1V[1] = 1)或 CR2V[3] = 1
EE
66
4
有
PP
页编程
02
133
3或4
有
4PP
页编程
12
133
4
有
QPP
四线页编程
32
133
3或4
无
4QPP
四线页编程
34
133
4
无
文档编号:002-03823 版本 *A
页 77/143
预览资料
S25FL256L
表 9.3 FL-L 系列命令集 (按功能排列)(续)
功能
擦除闪存
阵列
擦除 / 编程
挂起 / 恢复
命令名称
阵列保护
单独和区域
保护
复位
深度下电
指令值
(十六进制)
最大频率
(MHz)
地址长度
(字节)
QPI
有
SE
扇区擦除
20
133
3或4
4SE
扇区擦除
21
133
4
有
HBE
半块擦除
52
133
3或4
有
4HBE
半块擦除
53
133
4
有
BE
块擦除
D8
133
3或4
有
4BE
块擦除
DC
133
4
有
CE
芯片擦除
60
133
0
有
CE
芯片擦除 (备用指令)
C7
133
0
有
EPS
擦除 / 编程挂起
75
133
0
有
EPR
擦除 / 编程恢复
7A
133
0
有
安全区域擦除
44
133
3或4
有
SECRE
安全区域
阵列
命令说明
SECRP
安全区域编程
42
133
3或4
有
SECRR
安全区域读取
48
133
3或4
有
有
IBLRD
IBL 读取
3D
133
3或4
4IBLRD
IBL 读取
E0
133
4
有
IBL
IBL 锁定
36
133
3或4
有
4IBL
IBL 锁定
E1
133
4
有
IBUL
IBL 解锁
39
133
3或4
有
4IBUL
IBL 解锁
E2
133
4
有
GBL
全局 IBL 锁定
7E
133
0
有
GBUL
全局 IBL 锁定
98
133
0
有
SPRP
设置指针区域保护
FB
133
3 或 4 (2)
有
4SPRP
设置指针区域保护
E3
133
4
有
IRPRD
IRP 寄存器读取
2B
133
0
有
IRPP
IRP 寄存器编程
2F
133
0
有
PRRD
保护寄存器读取
A7
133
0
有
保护寄存器锁定 (NVLOCK 位写入)
A6
133
0
有
PASSRD
PRL
密码读取
E7
133
0
有
PASSP
密码编程
E8
133
0
有
PASSU
密码解锁
EA
133
0
有
RSTEN
软件复位使能
66
133
0
有
RST
软件复位
99
133
0
有
MBR
模式位复位
FF
133
0
有
DPD
深度下电
B9
133
0
有
RES
退出下电模式 / 器件 ID
AB
133
0
有
RFU
Reserved-18
保留
18
RFU
Reserved-41
保留
41
RFU
Reserved-43
保留
43
RFU
Reserved-4A
保留
4A
RFU
Reserved-ED
保留
ED
RFU
Reserved-EE
保留
EE
注意:
1. 若在 QPI 模式下发送不受支持的命令,这些命令将发生未定义行为。
2. 对于 S25FL256L 器件, SPRP 命令必须使用 4 字节地址模式 (CR2V[0] = 1)。
文档编号:002-03823 版本 *A
页 78/143
预览资料
9.1.3
S25FL256L
读取器件标识
有多条用于读取有关器件制造商、器件类型和器件特性等信息的命令。来自不同供应商的 SPI 存储器使用了不同的命令和格式来读取
存储器信息。 FL-L 系列产品支持三种器件信息命令。
9.1.4
寄存器读取或写入
有多种寄存器用于报告嵌入式操作状态或控制器件配置选项。可以通过命令对这些寄存器进行读取或写入操作。寄存器包括易失性和
非易失性位。寄存器中的非易失性位自动被擦除和编程,如单个 (写)操作一样。
9.1.4.1
监控操作状态
主机系统通过监控状态寄存器中的 “ 正在写入 ” (WIP)位,可以确定是否完成了写入、编程、擦除、挂起或其它嵌入式操作。读
取状态寄存器 1 命令或读取任意寄存器命令可提供 WIP 位的状态。读取状态寄存器 2 或读取任意寄存器命令将提供状态寄存器中的编
程错误 (P_ERR)和擦除错误 (E_ERR)位的状态,指明最新的编程或擦除命令是否尚未完成。当 P_ERR 或 E_ERR 位为 1 时,
WIP 位将保持为 1,以表示器件的繁忙状态并且无法接收新的操作命令。 P_ERR 或 E_ERR 被设为 1 时,只有状态读取 (RDSR1
05h、 RDSR2 07h)、读取任意寄存器 (RDAR 65h)、读取配置 RDCR1 和 RDCR3、状态清除 (CLSR 30h)和软件复位(RSTEN
66h 随后是 RST 99h)为有效命令。并且必须发送清除状态寄存器 (CLSR)命令,才能使器件返回待机状态。另外,也可以通过硬
件复位或软件复位 (RSTEN 66h 随后是 RST 99h),使器件返回待机状态。
9.1.4.2
配置
有些命令用于读取、写入和保护用于控制接口路径宽度、接口时序、接口地址长度和数据保护相关方面的寄存器。
9.1.5
读取闪存阵列
可以从存储器的任意字节边界上读取数据。数据字节从低位字节地址到高位字节地址被连续读取,直到主机将 CS# 置高 (表示结束
数据传输)为止。如果字节地址达到存储器阵列的最大地址,读取操作将从阵列的地址 0 重新开始。
突发循环读取可以通过设置突发长度 (SBL 77h)命令按要求的循环读取长度和对齐实现,请参见第 95 页上的 9.3.16,设置突发长
度 (SBL 77h)。突发循环读取仅适用于四线 I/O 和 QPI 模式。
有些不同的读取命令用于指定不同的访问延迟和数据路径宽度。双倍数据速率 (DDR)命令还定义了地址和数据位与两个 SCK 边沿
的关系:

读取命令在每个SCK上升沿上通过SI/IO0信号提供一位,并在每个SCK下降沿上通过SO/IO1信号返回一个数据位。使用该命
令,地址和返回数据间并没有延迟,但是最大 SCK 速率被限于 50 MHz。

使用其它读取命令,地址和返回数据间有一定的延迟,但能够以更高的 SCK 频率进行操作。延迟时间取决于配置寄存器读取
延迟值。

快速读取命令在每个 SCK 上升沿上通过 SI/IO0 信号提供一位,并在每个 SCK 下降沿上通过 SO/IO1 信号返回一个数据位。

双线或四线输出读取命令在每个SCK上升沿上通过SI/IO0引脚提供地址,并在每个SCK下降沿上通过IO0 - IO3信号返回两个
或四个数据位。

双线或四线I/O读取命令在每个SCK上升沿上提供两个或四个地址位,并在每个SCK下降沿上通过IO0 - IO3信号返回两个或
四个数据位。如果模式位值为 Axh,则连续读取功能会被使能。

四线双倍数据速率读取命令在每个SCK边沿上提供了四个地址位,并在每个SCK边沿上通过IO0 - IO3信号返回四个数据位。
如果模式位值为 Axh,连续读取功能会被使能。
9.1.6
编程闪存阵列
编程数据需要两条命令:写使能 (WREN)和页编程 (PP、 4PP、 QPP、 4QPP)。通过页编程命令,可以在一次操作中编程从 1
字节到连续 256 个字节的数据。编程操作可以使位值保持为 1 或从 1 改为 0。要想将位值从 0 变为 1,需要使用擦除操作。
9.1.7
擦除闪存阵列
扇区擦除、半块擦除、块擦除或芯片擦除命令将一个扇区中或整个存储器阵列中的所有位设置为 1。先要将某位擦除为 1,然后才能
将它编程为 0。可以独立将每个位从 1 编程为 0,但必须按一个扇区、半块、一块或整个阵列 (芯片)的级别将位从 0 擦除为 1。执
行擦除命令前,必须执行写使能 (WREN)命令。
文档编号:002-03823 版本 *A
页 79/143
预览资料
9.1.8
S25FL256L
安全区域、传统的块保护以及个别和区域保护
器件有一些命令用于读取和编程保存永久性保护数据 (例如,序列号)的一次性保护 (OTP)阵列。有一些命令用于控制防止进行
编程和擦除操作的闪存存储器阵列扇区连续组 (块)。还有一些命令用于控制防止对哪个个别闪存存储器阵列扇区进行编程和擦除操
作。另外,有一种模式用于限制对安全区域 3 的读取访问,直到提供密码为止。
9.1.9
复位
有一些命令用于在器件上电后将器件复位为默认状态。然而,软件复位命令对 SRP1 或 NVLOCK 位没有产生影响。在所有其它方面,
软件复位与硬件复位相同。
有一个命令用于复位 (退出)连续读取模式。
9.1.10
保留
有些指令留作日后使用。在这一代 FL-L 系列产品中,有些命令指令可能未被使用,并且不会影响器件的操作;有些命令指令则会返
回未定义结果。
这类命令中的一部分被保留,以确保可以执行传统或交替源器件命令,而不会产生影响。这样允许传统软件发送一些与当前一代
FL-L 系列无关的命令,并要保证这些命令不会导致意外行为。
有些命令则被保留,用于本文档中未提到的特别版本 FL-L 或用于下一代产品。使新的主机存储控制器设计可以灵活使用这些命令指
令。如果本文档初版时已明确了命令格式,那么应定义命令格式。
文档编号:002-03823 版本 *A
页 80/143
预览资料
9.2
9.2.1
S25FL256L
标识命令
读取标识 (RDID 9Fh)
通过读取标识(RDID)命令,可以对制造商标识和器件标识进行读取访问。制造商标识由 JEDEC 分配,器件标识则由赛普拉斯分配。
在执行编程、擦除或写入周期期间发送的任何 RDID 命令被忽略,并且不会影响到这些操作的执行。
RDID 指令通过 SI / IO0 传入到器件内。 RDID 指令的最后位传入到器件后,通过 SO / IO1 信号连续输出一个制造商标识字节和两个
器件标识字节。这全部信息被称为 ID。有关 ID 内容的详细说明,请参见第 138 页上的 11.2,器件 ID 地址映射。
所定义的 ID 地址结束后,继续移出的输出会提供未定义数据。输出数据期间可随时将 CS# 置为逻辑高电平状态, RDID 命令序列立
即被终止。传送 RDID 命令的频率最高可达 108 MHz 频率。
图 9.1 读取标识 (RDID)命令序列
CS#
SCK
SI_ IO0
7
6
5
4
3
2
1
0
SO_IO1
7
Phase
6
5
Instruction
4
3
2
1
0
7
6
5
Data 1
4
3
2
1
0
Data N
在 QPI 模式下,器件也支持该命令。在 QPI 模式下,将通过 IO0-IO3 信号传入指令及传出返回数据。
图 9.2 QPI 模式下的读取标识 (RDID)命令
CS#
SCLK
IO0
4
0
4
0
4
0
4
0
4
0
4
0
IO1
5
1
5
1
5
1
5
1
5
1
5
1
IO2
6
2
6
2
6
2
6
2
6
2
6
2
IO3
7
3
7
3
7
3
7
3
7
3
7
3
Phase
9.2.2
Instruction
D1
D2
D3
D4
Data N
四线读取标识 (RDQID AFh)
通过四线读取标识 (RDQID)命令,可以读取制造商标识和器件标识。该命令是 RDID 命令的交替选项,用于在 QPI 模式下读取同
样的信息。在所有其它方面,该命令与 RDID 命令相同。
只有器件处于 QPI 模式 (CR2V[3] = 1)或四线模式 (CR1V[1] = 1)时,才能识别该命令。在 QPI 模式下,通过 IO0-IO3 传入指
令,而在四线模式下,通过 IO0 传入指令。指令最后一位传入到器件后,通过 IO0-IO3 信号连续输出一个制造商标识字节和两个器
件标识字节。这样全部信息被称为 ID。有关 ID 内容的详细说明,请参见第 138 页上的 11.2,器件 ID 地址映射。
所定义的 ID 地址结束后,继续移出的输出保存未定义数据。输出数据期间可以随时将 CS# 置为逻辑高电平状态,该命令序列立即被
终止。
文档编号:002-03823 版本 *A
页 81/143
预览资料
S25FL256L
图 9.3 QPI 模式下的四线读取标识 (RDID)命令序列
CS#
SCLK
IO0
4
0
4
0
4
0
4
0
4
0
4
0
IO1
5
1
5
1
5
1
5
1
5
1
5
1
IO2
6
2
6
2
6
2
6
2
6
2
6
2
IO3
7
3
7
3
7
3
7
3
7
3
7
3
Phase
Instruction
D1
D2
D3
D4
Data N
图 9.4 四线模式下的四线读取标识 (RDID)命令序列
CS#
SCLK
IO0
7
6
5
4
4
0
4
0
IO1
5
1
5
1
IO2
6
2
6
2
IO3
7
3
7
3
Phase
9.2.3
3
2
1
0
Instruction
D1
Data N
读取串行闪存可发现参数 (RSFDP 5Ah)
该命令开始于通过 SI 信号分别传入指令代码 “5Ah” 和 24 位 (3 字节)地址或 32 位 (4 字节)地址 (取决于 CR2V[0] 地址长度
的当前配置),随后是 CR3V[3:0] 字段中可变读取延迟配置所指定的读取延迟周期数 (虚拟周期)。
虚拟周期结束后,通过 SO/IO1 从 SCK 下降沿开始传出 SFDP 字节。 SFDP 字节始终按最高有效位优先的方式传出。如果 24 位 (3
字节)地址或 32 位 (4 字节)地址被设为非零值,则 SFDP 空间中的选定位置作为读取数据的起始点。这样可以随机访问 SFDP 空
间中的任意参数。在 SPI 模式下, RSFDP 命令的时钟频率最高可达 133 MHz。
为了符合 JEDEC JESD216 SFDP 标准,应将可变读取延迟设置为 8 个周期。器件从赛普拉斯出厂时, CR3NV 中的非易失性可变读
取延迟的默认值为 8 个虚拟周期。然而,由于 RSFDP 命令使用的实现与其它可变地址长度和延迟读取命令相同,所以如果用户需要,
可以自由修改命令的地址长度和延迟。
读取 SFDP 命令支持连续读取。
图 9.5 RSFDP 命令序列
CS#
SCK
SI_IO0
7
6
5
4
3
2
1
0
A
1
0
SO_IO1
Phase
7
Instruction
Address
Dummy Cycles
6
5
4
3
2
1
0
Data 1
注意:
A = 地址的 MSB = 23 (CR2V[0] = 0)或 31 (CR2V[0] = 1 或命令 13h)。
在 QPI 模式下,器件也支持该命令。在 QPI 模式下,将通过 IO0-IO3 信号传入指令及传出返回数据。
文档编号:002-03823 版本 *A
页 82/143
预览资料
S25FL256L
图 9.6 QPI 模式下的 RSFDP 命令序列
CS#
SCLK
IO0
4
0
20
4
0
4
0
4
0
4
0
4
0
IO1
5
1
21
5
1
5
1
5
1
5
1
5
1
IO2
6
2
22
6
2
6
2
6
2
6
2
6
2
IO3
7
3
23
7
3
7
3
7
3
7
3
7
3
Phase
9.2.4
Instruct.
Address
Dummy
D1
D2
D3
D4
读取唯一 ID (RUID 4Bh)
读取标识 (RUID)命令允许读取访问工厂设置的只读 64 位编号,该编号是每个器件的唯一值。
RUID 指令在四个虚拟字节或 16 个虚拟字节 QPI (32 个时钟周期)后通过 SI 被传入器件内。延迟周期为器件的内部电路提供需要
的时间来访问初始地址的数据。在这些延迟周期内, IO0-IO3 上的数据值为 “ 无需关注项 ”,该值可能为高阻抗。
然后,唯一 ID 的 8 个字节通过 SO/IO1 被连续输出。
所定义的唯一 ID 地址结束后,继续移出的输出会提供未定义数据。输出数据期间可以随时将 CS# 置为逻辑高电平状态, RUID 命令
序列立即被终止。
图 9.7 读取唯一 ID (RUID)命令序列
CS#
SCK
SI_IO0
7 6 5 4 3 2 1 0
SO_IO1
63 62 61 60 59 58 57 56 55
Phase
Instruction
Dummy Byte 1
Dummy Byte 4
5 4 3 2 1 0
64 bit Unique Serial Number
在 QPI 模式下,器件也支持该命令。在 QPI 模式下,将通过 IO0-IO3 信号传入指令及传出返回数据。
图 9.8 QPI 模式下的读取唯一 ID (RUID)命令
CS#
SCLK
IO0
4
0
60 56
4
8
4
0
IO1
5
1
61 57
5
9
5
1
IO2
6
2
62 58
6
10
6
2
IO3
7
3
63 59
7
11
7
3
Phase
InstructionDummy 1Dummy 2Dummy 3
文档编号:002-03823 版本 *A
Dummy 13
Dummy 14
Dummy 15
Dummy 16 64 bit Unique Serial Number
页 83/143
预览资料
9.3
9.3.1
S25FL256L
寄存器访问命令
读取状态寄存器 1 (RDSR1 05h)
通过读取状态寄存器 1 (RDSR1)命令,可以从 SO/IO1 读取状态寄存器 1 的内容。
可以随时读取易失性状态寄存器 1 (SR1V)的内容,甚至在执行编程、擦除或写入操作期间也能进行。通过提供 8 个时钟周期的倍
数,可以连续读取状态寄存器 1。每 8 个读取周期更新一次状态。
图 9.9 读取状态寄存器 1 (RDSR1)命令序列
CS#
SCK
SI_IO0
7
6
5
4
3
2
1
0
SO_IO1
7
Phase
6
5
4
Instruction
3
2
1
0
7
6
5
Status
4
3
2
1
0
Updated Status
在 QPI 模式下,器件也支持该命令。在 QPI 模式下,将通过 IO0-IO3 信号传入指令及传出返回数据。在 QPI 模式下,读取状态寄存
器的频率最高可达 108 MHz。要想读取频率高于 108 MHz 的状态寄存器 1,需要使用读取任意寄存器命令,请参考第 92 页上的
9.3.14,读取任意寄存器 (RDAR 65h)。
图 9.10 QPI 模式下的读取状态寄存器 1 (RDSR1)命令
CS#
SCLK
IO0
4
0
4
0
4
0
4
0
IO1
5
1
5
1
5
1
5
1
IO2
6
2
6
2
6
2
6
2
IO3
7
3
7
3
7
3
7
3
Phase
9.3.2
Instruct.
Status
Updated Status
Updated Status
读取状态寄存器 2 (RDSR2 07h)
通过读取状态寄存器 2 (RDSR2)命令,可以从 SO/IO1 读取状态寄存器 2 的内容。
可以随时读取易失性状态寄存器 2 (SR2V)的内容,就算在执行编程、擦除或写入操作期间也能进行。通过提供 8 个时钟周期的倍
数,可以连续读取状态寄存器 2。每 8 个读取周期更新一次状态。
图 9.11 读取状态寄存器 2 (RDSR2)命令
CS#
SCK
SI_IO0
7
6
5 4
3
2
SO_IO1
Phase
1
0
7
Instruction
6 5
4
3
Status
2
1
0
7 6
5
4
3
2
1
0
Updated Status
在 QPI 模式下,可以使用读取任意寄存器命令来读取状态寄存器 2,请参考第 92 页上的 9.3.14,读取任意寄存器 (RDAR 65h)。
文档编号:002-03823 版本 *A
页 84/143
预览资料
9.3.3
S25FL256L
读取配置寄存器 (RDCR1 35h、 RDCR2 15h、 RDCR3 33h)
读取配置寄存器 (RDCR1、 RDCR2、 RDCR3)命令允许从 SO/IO1 读取易失性配置寄存器 (CR1V、 CR2V、 CR3V)的内容。
通过提供 8 个时钟周期的倍数,可以连续读取 CR1V、 CR2V 和 CR3V。可以随时读取配置寄存器的内容,就算在执行编程、擦除或
写入操作期间也能进行。要想以更高频率读取配置寄存器 1、 2 和 3,可以使用读取任意寄存器命令,请参考第 92 页上的 9.3.14,
读取任意寄存器 (RDAR 65h)。
图 9.12 读取配置寄存器 (RDCR1、 RDCR2、 RDCR3)命令序列
CS#
SCK
SI_IO0
7
6
5
4
3
2
1
SO_IO1
0
7
Phase
Instruction
6
5
4
3
2
1
0
7
Register Read
6
5
4
3
2
1
0
Repeat Register Read
在 QPI 模式下,可以使用读取任意寄存器命令来读取配置寄存器 1、 2 和 3,请参考第 92 页上的 9.3.14,读取任意寄存器 (RDAR
65h)。
9.3.4
写入寄存器 (WRR 01h)
写入寄存器 (WRR)命令允许将新值写入到状态寄存器 1、配置寄存器 1、配置寄存器 2 和配置寄存器 3。器件接受写入寄存器
(WRR)命令前,必须接收到写使能 (WREN)或易失性寄存器的写使能 (WRENV)命令。写使能 (WREN)命令被成功解码后,
器件将设置状态寄存器中的写使能锁存 (WEL)以使能非易失性写操作,并将后面 WRR 命令中的值传入到非易失性 SR1NV、
CR1NV、 CR2NV 和 CR3NV 寄存器内。易失性寄存器的写使能 (WRENV)命令被成功解码后,器件会将下面 WRR 命令中的值传
入到易失性 SR1V、 CR1V、 CR2V 和 CRV3 寄存器内。
通过将指令和数据字节移至 SI/IO0,可以输入写入寄存器 (WRR)命令。状态寄存器的长度为一个数据字节。
针对在 WREN 命令后执行的非易失性寄存器的 WRR 操作,首先擦除非易失性寄存器,然后通过一次操作编程新值,最后将新的非易
失性值复制到易失性寄存器内。对于在 WRENV 命令后执行的易失性寄存器的 WRR 操作,更新了易失性寄存器,而没有影响相关的
非易失性寄存器值。如果 WRR 操作失败,则写入寄存器 (WRR)命令将设置 P_ERR 或 E_ERR 位。有关错误位的说明,请参见第
50 页上的 7.6.1.3,状态寄存器 2 易失性 (SR2V)。器件将挂起繁忙状态,直到使用清除状态寄存器 (CLSR)来清除错误和 WIP
(以返回待机状态)为止。所有留作日后使用的状态或配置寄存器位都必须被写为 “0”。
数据的第 8、第 16、第 24 或第 32 位被锁存后,必须将 CS# 置为逻辑高电平状态。否则,无法执行写入寄存器(WRR)命令。如果:

在第 8 周期后将 CS# 置高,将对状态寄存器 1 进行写入操作

在第 16 周期后将 CS# 置高,将对状态寄存器 1 和配置寄存器 1 进行写入操作;

在第 24 周期后将 CS# 置高,将对状态寄存器 1、配置寄存器 1 和 2 进行写入操作;

在第 32 周期后将 CS# 置高,将对状态寄存器 1、配置寄存器 1、 2 和 3 进行写入操作;
CS# 被驱动为逻辑高电平状态后,会立即启动自定时写入寄存器 (WRR)操作。在执行写入寄存器 (WRR)操作的过程中,还可以
读取状态寄存器,以检查正在写入 (WIP)位的值。执行自定时写入寄存器 (WRR)操作期间,正在写入 (WIP)位为 “1” ;完
成该操作时, WIP 位为 “0”。完成写入寄存器 (WRR)操作时,写使能锁存 (WEL)位将被设置为 “0”。
WRR 命令被保护,以免受到硬件或软件复位的影响,硬件复位和软件复位命令被忽略,并且不会对 WRWRR 命令的执行产生影响。
图 9.13 写入寄存器 (WRR)命令序列
CS#
SCK
SI_IO0
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
SO_IO1
Phase
Instruction
文档编号:002-03823 版本 *A
Input Status Register-1
Input Conf Register-1
Input Conf Register-2
Input Conf Register-3
页 85/143
预览资料
S25FL256L
在 QPI 模式下,器件也支持该命令。在 QPI 模式下,通过 IO0-IO3 信号将指令和数据传入到器件内。
图 9.14 QPI 模式下的写入寄存器 (WRR)命令序列
CS#
SCLK
IO0
4
0
4
0
4
0
4
0
4
0
IO1
5
1
5
1
5
1
5
1
5
1
IO2
6
2
6
2
6
2
6
2
6
2
IO3
7
3
7
3
7
3
7
3
7
3
Phase
Instruct.
Input Status 1
Input Config 1
Input Config 2
Input Config 3
通过写入寄存器 (WRR)命令,用户可以修改非易失性状态寄存器 1 或易失性状态寄存器 1 中的传统块保护位值,用于定义只读区
域的大小。
用户也可以通过写入寄存器 (WRR)命令将状态寄存器保护 0 (SRP0)位设为 “1” 或 “0”。状态寄存器保护 0 (SRP0)位和
写入保护 (WP#)信号允许对 BP 位进行硬件保护。
状态寄存器保护 0 (SRP0 SR1V[7])位为 “0” 时,无论写入保护 (WP#)信号被驱动为逻辑高或逻辑低状态,都可以对状态寄存
器进行写操作,前提是已经发送了 WREN 或 WRENV 命令。
状态寄存器保护 0 (SRP0)位被设置为 “1” 时,需要考虑写入保护 (WP#)信号的状态:

如果写入保护 (WP#)信号被驱动为逻辑高状态,可以对状态和配置寄存器进行写操作,假定在 WRR 命令前已经发送了
WREN 或 WRENV 命令。

如果写入保护(WP#)信号被驱动为逻辑低状态,即使在 WRR 命令前已经发送了 WREN 或 WRENV 命令,也不能对状态和
配置寄存器进行写操作。尝试对状态和配置寄存器进行的写操作被拒绝,不会执行,并且不提供错误指示。因此,受保护的
存储区域中 (由状态寄存器中的传统块保护位保护)的所有数据字节也受 WP# 的硬件保护。
注意:在命令周期中推荐不要修改写保护 WP# 信号的状态。可以通过以下方式提供 WP# 硬 件保护:

将写入保护 (WP#)信号驱动为逻辑低状态后设置状态寄存器保护 0 (SRP0);

或者,设置状态寄存器保护 0 (SRP0)位为 “1” 后将写入保护 (WP#)信号驱动为逻辑低状态。
释放硬件保护的唯一方法是将写入保护(WP#)信号拉到逻辑高状态。如果永久性将 WP# 置高,则 BP 位的硬件保护永远不会被激活。
四线模式被使能(CR1V[1] = 1)或 QPI 模式被使能(CR2V[3] = 1)时,会禁用硬件保护,原因是 WP# 成为 IO2,因此不能使用它。
请参考第 64 页上的 8.5,状态寄存器保护 (SRP1、 SRP0),查看 SRP 和 WP# 对状态和配置寄存器保护的控制。
9.3.5
写入使能 (WREN 06h)
写入使能 (WREN)命令会将状态寄存器 1 (SR1V[1])的写入使能锁存 (WEL)位设置为 “1”。需要发送写入使能 (WREN)
命令以使能写入、编程和擦除操作,这样才能将写入使能锁存 (WEL)位设置为 “1”。
指令字节的第 8 位通过 SI/IO0 锁存在芯片内之后,必须将 CS# 信号驱动为逻辑高电平状态。指令字节的第 8 位通过 SI/IO0 锁存在
芯片内之后,如果 CS# 信号不被驱动为逻辑高电平状态,不会执行写入使能操作。
图 9.15 写入使能 (WREN)命令序列
CS#
SCK
SI_IO0
7
6
5
4
3
2
1
0
SO_IO1
Phase
文档编号:002-03823 版本 *A
Instruction
页 86/143
预览资料
S25FL256L
在 QPI 模式下,器件也支持该命令。在 QPI 模式下,通过 IO0-IO3 信号将指令传入到器件内。
图 9.16 QPI 模式下的写入使能 (WREN)命令序列
CS#
SCLK
IO0
4
0
IO1
5
1
IO2
6
2
IO3
7
3
Phase
9.3.6
Instruction
写入禁用 (WRDI 04h)
写入禁用 (WRDI)命令会将状态寄存器 1 的写入使能锁存 (WEL)位 (SR1V[1])清除为 “0”。
要想将写入使能锁存 (WEL)位清除为 “0”,需要发送写入禁用 (WRDI)命令,以便禁止页编程 (PP、 4PP、 QPP、 4QPP)、
扇区擦除 (SE)、半块擦除 (HBE)、块擦除 (BE)、芯片擦除 (CE)、写入寄存器 (WRR 或 WRAR)、安全区域擦除
(SECRE)、安全区域编程 (SECRP)和其它命令。这些命令需要 WEL 设为 “1” 才可执行。用户可以使用 WRDI 命令来保护存
储区域,防止可能使存储器内容受损害的意外写操作。 WIP 位 = 1 时, WRDI 命令在执行嵌入式操作期间被忽略。
指令字节的第 8 位通过 SI/IO0 锁存在芯片内之后,必须将 CS# 信号驱动为逻辑高电平状态。指令字节的第 8 位通过 SI/IO0 锁存在
芯片内后,如果没有将 CS# 信号驱动为逻辑高电平状态,则不会执行写入禁用操作。
图 9.17 写入禁用 (WRDI)命令序列
CS#
SCK
SI_IO0
7
6
5
4
3
2
1
0
SO_IO1
Phase
Instruction
在 QPI 模式下,器件也支持该命令。在 QPI 模式下,通过 IO0-IO3 信号将指令传入到器件内。
图 9.18 QPI 模式下的写入禁用 (WRDI)命令序列
CS#
SCLK
IO0
4
0
IO1
5
1
IO2
6
2
IO3
7
3
Phase
9.3.7
Instruction
易失性寄存器的写使能 (WRENV 50h)
分别发送 WRENV 和 WRR 命令后,便能够对第 48 页上的 7.6,寄存器中所述的易失性 SR1V、 CR1V、CR2V 和 CR3V 寄存器进行
写操作。这样可以灵活、快速地修改系统配置和存储器保护方案,不用等待典型的非易失性位的写周期,也不会影响非易失性状态或
配置寄存器位的耐久性。 WRENV 命令将不会设置写入使能锁存 WEL)位, WRENV 仅用于指导 WRR 命令修改易失性状态和配置
寄存器位值。
文档编号:002-03823 版本 *A
页 87/143
预览资料
S25FL256L
指令字节的第 8 位通过 SI/IO0 锁存在芯片内后,需要将 CS# 信号驱动为逻辑高电平状态。指令字节的第 8 位通过 SI/IO0 锁存在芯
片内后,如果没有将 CS# 信号驱动为逻辑高电平状态,则不会执行写入使能操作。
图 9.19 易失性寄存器的写使能 (WRENV)命令序列
CS#
SCK
SI_IO0
7
6
5
4
3
2
1
0
SO_IO1
Phase
Instruction
在 QPI 模式下,器件也支持该命令。在 QPI 模式下,通过 IO0-IO3 信号将指令传入到器件内。
图 9.20 QPI 模式下的易失性寄存器的写使能 (WRENV)命令序列
CS#
SCLK
IO0
4
0
IO1
5
1
IO2
6
2
IO3
7
Phase
文档编号:002-03823 版本 *A
3
Instruction
页 88/143
预览资料
9.3.8
S25FL256L
清除状态寄存器 (CLSR 30h)
通过清除状态寄存器命令,可以将 WIP (SR1V[0])、 WEL (SR1V[1])、 P_ERR (SR2V[5])和 E_ERR (SR2V[6])位清除为
“0”。执行清除状态寄存器命令前,不需要设置 WEL 位。即使器件由于 WIP 被设为 1 而保持繁忙状态,它也会接受清除状态寄存
器命令,这是因为当两个错误位中的一个被设置时,器件也会保持繁忙状态。
图 9.21 清除状态寄存器 (CLSR)命令序列
CS#
SCK
SI_IO0
7
6
5
4
3
2
1
0
SO_IO1
Phase
Instruction
在 QPI 模式下,器件也支持该命令。在 QPI 模式下,通过 IO0-IO3 信号将指令传入到器件内。
图 9.22 QPI 模式下的清除状态寄存器 (CLSR)
CS#
SCLK
IO0
4
0
IO1
5
1
IO2
6
2
IO3
7
3
Phase
9.3.9
Instruction
编程 DLRNV (PDLRNV 43h)
接受编程 DLRNV (PDLRNV)命令前,器件必须发送写入使能 (WREN)命令并对其进行解码。成功解码写入使能 (WREN)命
令后,器件将设置写入使能锁存 (WEL)位以使能 PDLRNV 操作。
通过将指令和数据字节移至 SI/IO0,可以输入 PDLRNV 命令。
数据字节的第八 (8)位被锁存后,必须将 CS# 驱动为逻辑高电平状态。否则,不能执行 PDLRNV 命令。 CS# 被驱动为逻辑高电平
状态后,会立即启动自定时 PDLRNV 操作。在执行 PDLRNV 操作的过程中,可以读取状态寄存器以检查正在写入 (WIP)位的值。
执行自定时 PDLRNV 操作期间,正在写入 (WIP)位为 “1” ;完成该操作时, WIP 位为 “0”。 PDLRNV 命令可以报告状态寄存
器中 P_ERR 位的编程错误。完成 PDLRNV 操作时,写入使能锁存 (WEL)位将被设置为 “0”。 PDLRNV 命令的最大时钟频率为
133 MHz。
图 9.23 编程 DLRNV (PDLRNV)命令序列
CS#
SCK
SI_IO0
7
6
5
4
3
2
1
0
7
6
5
4
3
2
1
0
SO_IO1
Phase
Instruction
Input Data
在 QPI 模式下,器件也支持该命令。在 QPI 模式下,通过 IO0-IO3 信号将指令和数据传入到芯片内。
文档编号:002-03823 版本 *A
页 89/143
预览资料
S25FL256L
图 9.24 QPI 模式下的编程 DLRNV (PDLRNV)命令序列
CS#
SCLK
IO0
4
0
4
0
IO1
5
1
5
1
IO2
6
2
6
2
IO3
7
3
7
Phase
9.3.10
3
Instruct.
Input Data
写入 DLRV (WDLRV 4Ah)
接受写入 DLRV (WDLRV)命令前,器件必须发送写入使能 (WREN)命令并对其进行解码。成功解码写入使能 (WREN)命令
后,器件将设置写入使能锁存 (WEL)位以使能 WDLRV 操作。
通过将指令和数据字节移至 SI/IO0,可以输入 WDLRV 命令。
数据字节的第八 (8)位被锁存后,必须将 CS# 驱动为逻辑高电平状态。否则,不能执行 WDLRV 命令。 CS# 被驱动为逻辑高电平
状态后,会立即启动 WDLRV 操作。 WDLRV 命令的最大时钟频率为 133 MHz。
图 9.25 写入 DLRV (WDLRV)命令序列
CS#
SCK
SI_IO0
7
6
5
4
3
2
1
0
7
6
5
4
3
2
1
0
SO_IO1
Phase
Instruction
Input Data
在 QPI 模式下,器件也支持该命令。在 QPI 模式下,通过 IO0-IO3 信号将指令和数据传入到芯片内。
图 9.26 QPI 模式下的写入 DLRV (WDLRV)命令序列
CS#
SCLK
IO0
4
0
4
0
IO1
5
1
5
1
IO2
6
2
6
2
IO3
7
3
7
Phase
文档编号:002-03823 版本 *A
Instruct.
3
Input Data
页 90/143
预览资料
9.3.11
S25FL256L
数据学习模式读取 (DLPRD 41h)
在 SCK 信号的上升沿上,将指令 41h 传入到 SI/IO0,传入完成后存在一个虚拟周期。延迟周期为器件的内部电路提供需要的时间用
于访问初始地址的数据。在这些延迟周期内, IO0-IO3 上的数据值为 “ 无需关注项 ”,该值可能为高阻抗。然后 8 位 DLP 通过 SO/
IO1 信号被传出。通过提供 8 个时钟周期的倍数,可以连续读取 DLP。 DLPRD 命令的最大工作时钟频率为 133 MHz。
图 9.27 DLP 读取 (DLPRD)命令序列
CS#
SCK
SI_IO0
7
6
5
4
3
2
1
0
SO_IO1
Phase
7
Instruction
6
DY
5
4
3
2
1
0
7
Register Read
6
5
4
3
2
1
0
Repeat Register Read
在 QPI 模式下,器件也支持该命令。在 QPI 模式下,通过 IO0-IO3 信号传入指令及传出返回的数据。
图 9.28 QPI 模式下的 DLP 读取 (DLPRD)命令序列
CS#
SCLK
IO0
4
0
4
0
4
0
IO1
5
1
5
1
5
1
IO2
6
2
6
2
6
2
IO3
7
3
7
3
7
3
Phase
9.3.12
Instruct.
Dummy
Register Read
Register Read
进入 4 字节地址模式 (4BEN B7h)
通过进入 4 字节地址模式 (4BEN)命令,可以将易失性地址长度状态 (ADS)位 (CR2V[0])设为 1,使所有 3 字节地址命令要求
4 字节地址。该命令对仅支持 4 字节的命令不会产生影响,这些命令仍要求 4 字节地址。
要想返回 3 字节地址模式,可以通过 4BEX 或 WRAR 命令将易失性地址长度位 CR2V[0] 清除为 0。 此外,如果非易失性地址长度位
CR2NV[1] 为 0,可以使用硬件复位或软件复位来返回 3 字节地址模式。
图 9.29 进入 4 字节地址模式 (4BEN B7h)命令序列
CS#
SCK
SI_IO0
7
6
5
4
3
2
1
0
SO_IO1
Phase
Instruction
在 QPI 模式下,器件也支持该命令。在 QPI 模式下,通过 IO0-IO3 信号将指令传入到器件内。
文档编号:002-03823 版本 *A
页 91/143
预览资料
S25FL256L
图 9.30 QPI 模式下的进入 4 字节地址模式命令
CS#
SCLK
IO0
4
0
IO1
5
1
IO2
6
2
IO3
7
3
Phase
9.3.13
Instruction
退出 4 字节地址模式 (4BEX E9h)
通过退出 4 字节地址模式 (4BEX)命令,可以将易失性地址长度状态 (ADS)位 (CR2V[0])设为 0,使几乎所有 4 字节地址命
令都要求 3 字节的地址。该命令不会对支持 4 字节的命令产生影响,这些命令仍要求地址为 4 字节大小。
图 9.31 退出 4 字节地址模式 (4BEX E9h)命令序列
CS#
SCK
SI_IO0
7
6
5
4
3
2
1
0
SO_IO1
Phase
Instruction
在 QPI 模式下,器件也支持该命令。在 QPI 模式下,通过 IO0-IO3 信号将指令传入到器件内。
图 9.32 QPI 模式下的退出 4 字节地址模式命令
CS#
SCLK
IO0
4
0
IO1
5
1
IO2
6
2
IO3
7
3
Phase
9.3.14
Instruction
读取任意寄存器 (RDAR 65h)
通过读取任意寄存器 (RDAR)命令,可以读取器件寄存器。该指令后面是 3 或 4 字节地址 (取决于地址长度配置 CR2V[0]),最后
是由 CR3V[3:0] 指定的延迟 (虚拟)周期数量。然后将返回选定的寄存器的内容。如果继续执行读取访问,将返回同样的寄存器内
容,直到命令终止为止。每个 RDAR 命令只能读取一个寄存器。
读取未定义地址会返回未定义数据。
在执行嵌入式操作期间,可以使用 RDAR 命令来读取状态寄存器 1 (SR1V)。
RDAR 命令不用于读取反映更大阵列的寄存器,例如:IBLAR。需要使用一些单独命令来选择并读取访问阵列中的位置。
如果将 IRP[2] 编程为 0,则表示选择 IRP 密码保护模式, RDAR 命令会从 PASS 寄存器中读取无效数据。
文档编号:002-03823 版本 *A
页 92/143
预览资料
S25FL256L
表 9.4 寄存器地址映射
字节地址 (十六进制)
寄存器名称
000000
SR1NV
000001
N/A
000002
CR1NV
000003
CR2NV
000004
CR3NV
000005
NVDLP
...
N/A
000020
PASS[7:0]
说明
非易失性状态和配置寄存器
读取非易失性状态和配置寄存器实际上是读取易失性寄存器
000021
PASS[15:8]
000022
PASS[23:16]
000023
PASS[31:24]
000024
PASS[39:32]
000025
PASS[47:40]
000026
PASS[55:48]
000027
PASS[63:56]
...
N/A
000030
IRP[7:0]
000031
IRP[15:8]
非易失性密码寄存器
非易失性
...
N/A
000039
PRPR[A15:A8]
指针区域保护寄存器 A15:A8
00003A
PRPR[A23:A16]
指针区域保护寄存器 A23:A16
00003B
PRPR[A31:A24]
指针区域保护寄存器 A31:A24
...
N/A
800000
SR1V
800001
SR2V
800002
CR1V
800003
CR2V
800004
CR3V
800005
VDLP
...
N/A
800040
PR
...
N/A
易失性状态和配置寄存器
易失性保护寄存器
图 9.33 读取任意寄存器命令序列
CS#
SCK
SI_IO0
7
6
5
4
3
2
1
0
A
1
0
SO_IO1
Phase
7
Instruction
Address
Dummy Cycles
6
5
4
3
2
1
0
Data
注意:
1. A = 地址的 MSB = 23 (CR2V[0] = 0)或 31 (CR2V[0] = 1)。
在 QPI 模式下,器件也支持该命令。在 QPI 模式下,通过 IO0-IO3 信号传入指令和地址及返回数据。
文档编号:002-03823 版本 *A
页 93/143
预览资料
S25FL256L
图 9.34 QPI 模式下的读取任意寄存器命令序列
CS#
SCLK
IO0
4
0
A-3
4
0
4
0
4
0
4
0
4
0
IO1
5
1
A-2
5
1
5
1
5
1
5
1
5
1
IO2
6
2
A-1
6
2
6
2
6
2
6
2
6
2
IO3
7
3
A
7
3
7
3
7
3
7
3
7
3
Phase
Instruct.
Address
Dummy
Data
Data
Data
Data
注意:
1. A = 地址的 MSB = 23 (CR2V[0] = 0)或 31 (CR2V[0] = 1)。
9.3.15
写入任意寄存器 (WRAR 71h)
通过写入任意寄存器 (WRAR)命令,可以对任意的非易失性或易失性器件寄存器进行写操作。该指令后面是 3 或 4 字节地址 (取
决于地址长度配置 CR2V[0]),接下来是将会写入到选定寄存器内的 1 字节数据。
S25FL256L 器件必须使能 4 字节地址模式 (CR2V[0] = 1),以便设置指针区域保护寄存器 PRPR (请参考 第 60 页上的 7.6.9 节)。
接受 WRAR 命令前,器件必须发送写入使能 (WREN)命令并对其进行解码。这样将设置状态寄存器中的写入使能锁存 (WEL)
位,用于使能所有写入操作。通过检查 SR1V 中的 WIP 位可以确定该操作是否已经完成。同样,通过检查 SR2V 中的 P_ERR 和
E_ERR 位可以确定在操作过程中是否发生了错误。
一些寄存器结合使用了各个位类型和规则,以便控制可以修改的位。有的是只读位,也有的是 OTP 位。
只读位永远不能被修改,另外 WRAR 命令中数据字节的相应位被忽略,并没有设置编程或擦除错误指示 (SR2V 中的 P_ERR 或
E_ERR)。因此, WRAR 数据字节中这些位的值并不重要。
OTP 位只能被编程为其默认状态的相反状态。将 OTP 位返回其默认状态的操作被忽略,并且不会设置错误。
由 WRAR 数据修改的非易失性位需要非易失性寄存器的写入时间 (tW)来更新。更新过程包括对非易失性寄存器位进行的擦除和编
程操作。如果更新过程的擦除或编程操作失败,则 SR2V 中的相关错误位和 SR1V 中的 WIP 位将被设置为 1。
由 WRAR 数据修改的易失性位需要易失性寄存器的写入时间 (tCS)来更新。
状态寄存器 1 被重复读取 (轮询),用以监控正在写入 (WIP)位 (SR1V[0]),从而确定是否完成了寄存器写入操作;并通过重复
读取状态寄存器 2 的错误位(SR2V[6、5])可确定是否发生写入故障。如果发生写入故障,需要使用清除状态命令来清除错误状态,
使器件返回到待机状态。完成 WRAR 操作时,写入使能锁存 (WEL)位将被设置为 “0”。
但不能通过 WRAR 命令对 PR 寄存器进行写操作。PR 寄存器的内容是只读的。只有使用 NVLOCK 位写入(PRL)命令才可写入 PR
寄存器。
如果使用 WRAR 命令,对 SR1NV、CR1NV、CR2NV 和 CR3NV 的写操作不受硬件和软件复位的影响,但是对其它所有寄存器的写
操作由于这两种复位而被复位。
WRAR 命令的序列和行为与 PP 或 4PP 命令相同,只是该命令能提供一个数据字节。请参考第 106 页上的 9.5.2,页编程 (PP 02h
或 4PP 12H)。
寄存器的地址映射如第 93 页上的表 9.4 寄存器地址映射所示的内容一样。
文档编号:002-03823 版本 *A
页 94/143
预览资料
9.3.16
S25FL256L
设置突发长度 (SBL 77h)
设置突发长度 (SBL)命令用于配置回卷突发特性。在 QIO 或 QPI 模式下,可以将回卷突发特性同四线 I/O 读取和 DDR 四线 I/O 读
取命令结合起来使用,用于访问数据的固定长度和对齐情况。某些应用可以利用该特性的优点,提高整个系统代码的执行能力。通过
回卷突发特性,使用缓存器的应用能够先将关键地址的指令或数据填充到第一个缓存行内,然后将数据的固定长度 (8/16/32/64 字
节)填充到剩余的缓存行,而不需要发出多个读命令。
通过将 CS# 引脚驱动为低电平,可以初始化设置突发长度命令,然后依次发送指令代码 “77h”、 24 个虚拟位和 8 个循环长度位
(WL[7]-WL[0])。该命令序列如第 96 页上的图 9.35 四线 I/O 模式下的设置突发长度命令序列 和第 96 页上的图 9.36QPI 模式下的设
置突发长度命令序列中所示。循环长度位 WL[7] 和低位半字节 WL[3:0] 均不被使用。请参考第 55 页上的 7.6.4,配置寄存器 3 中的配
置寄存器 3 (CR3V[6:4]),了解有关 WL[6]-WL[4] 的编码。
一旦 WL[6:4] 位由设置突发长度命令设置时,则所有 “ 四线 I/O 读取 ” 命令都会使用 WL[6:4] 的设置来访问 8/16/32/64 字节的数据
部分。请注意,必须将配置寄存器 1 的 Quad 位 CR1V[1] 或配置寄存器 2 的 QPI 位 CR2V[3] 设置为 1,以便能够使用四线 I/O 读取和
设置突发长度命令。要想退出 “ 循环 ” 模式并返回到正常的读取操作,需要发出另一个设置回卷突发命令,将 WL4 设为 1。在发生
上电、硬件或软件复位事件时,WL[6:4] 的值和 CR2NV[6:5] 的值相同。请使用 WRR 或 WRAR 命令设置 CR2NV[6;2] 的默认循环长度。
设置突发长度 (SBL)命令仅通过写入 CR3V[6:4] 位来使能或禁用回卷读取功能,并设置循环边界。不能使用 SBL 命令来设置
CR3V[3:0] 中的读延迟。必须使用 WRAR 命令来设置 CR3V 或 CR3NV 中的读延迟。
请参考第 95 页上的表 9.5 突发回卷序列示例一节中的 CR3V[6:5] 的值,以了解它们的回卷边界和起始地址。使能回卷读取功能时,会
将相关读命令从连续读取 (直到该回卷突发命令停止)改变为对一组字节进行连续回卷读取。
未使能回卷模式时 (请参考表 7.15 和表 7.18),可以连续读取无限长度的数据。
回卷模式被使能时(请参考表 7.15 和表 7.18),只能从读命令提供的字节地址开始读取长度固定并对齐的 8、16、32 或 64 字节组,
并且在该字节组边界中回卷。
字节组的长度和对齐情况都以 8、 16、 32 或 64 字节边界确定。 CR3V[6:5] 用于选择该边界。请参见第 57 页上的 7.6.4.2,配置寄存
器 3 易失性 (CR3V)。
读命令的起始地址选择了字节组,并且所返回的第一个数据是寻址字节。然后,会连续读取各个字节,直到字节组边界结束为止。如
果继续进行读取,则会返回到该组的起始地址,并再次连续读取数据。该回卷读取序列会继续进行,直到将 CS# 返回高电平来停止该
命令为止。
表 9.5 突发回卷序列示例
CR3V 值
(十六进制)
回卷边界
(字节)
起始地址
(十六进制)
地址序列 (十六进制)
1X
连续
XXXXXX03
03、 04、 05、 06、 07、 08、 09、 0A、 0B、 0C、 0D、 0E、 0F、 10、 11、 12、 13、 14、 15、 16、 17、 18、 ...
00
8
XXXXXX00
00、 01、 02、 03、 04、 05、 06、 07、 00、 01、 02、 ...
00
8
XXXXXX07
07、 00、 01、 02、 03、 04、 05、 06、 07、 00、 01、 ...
01
16
XXXXXX02
02、 03、 04、 05、 06、 07、 08、 09、 0A、 0B、 0C、 0D、 0E、 0F、 00、 01、 02、 03、 ...
01
16
XXXXXX0C
0C、 0D、 0E、 0F、 00、 01、 02、 03、 04、 05、 06、 07、 08、 09、 0A、 0B、 0C、 0D、 0E、 ...
02
32
XXXXXX0A
0A、0B、0C、0D、0E、0F、10、11、12、13、14、15、16、17、18、19、1A、1B、1C、1D、1E、1F、00、
01、 02、 03、 04、 05、 06、 07、 08、 09、 0A、 0B、 0C、 0D、 0E、 0F、 ...
02
32
XXXXXX1E
1E、1F、00、01、02、03、04、05、06、07、08、09、0A、0B、0C、0D、0E、0F、10、11、12、13、14、
15、 16、 17、 18、 19、 1A、 1B、 1C、 1D、 1E、 1F、 00、 ...
03
64
XXXXXX03
03、04、05、06、07、08、09、0A、0B、0C、0D、0E、0F、10、11、12、13、14、15、16、17、18、19、
1A、1B、1C、1D、1E、1F、20、21、22、23、24、25、26、27、28、29、2A、2B、2C、2D、2E、2F、30、
31、 32、 33、 34、 35、 36、 37、 38、 39、 3A、 3B、 3C、 3D、 3E、 3F、 00、 01、 02、 ...
03
64
XXXXXX2E
2E、2F、30、31、32、33、34、35、36、37、38、39、3A、3B、3C、3D、3E、3F、00、01、02、03、04、
05、06、07、08、09、0A、0B、0C、0D、0E、0F、10、11、12、13、14、15、16、17、18、19、1A、1B、
1C、 1D、 1E、 1F、 20、 21、 22、 23、 24、 25、 26、 27、 28、 29、 2A、 2B、 2C、 2D、 ...
通过使用 WRAR 命令将 CR3NV 编程为所需的值,可以改变上电复位、硬件复位或软件复位的默认突发长度。
文档编号:002-03823 版本 *A
页 95/143
预览资料
S25FL256L
图 9.35 四线 I/O 模式下的设置突发长度命令序列
CS
SCLK
IO0
7
6
5
4
X
X
X
X
X
X
WL4
X
IO1
X
X
X
X
X
X
WL5
X
IO2
X
X
X
X
X
X
WL6
X
IO3
X
X
X
X
X
X
X
X
Phase
3
2
1
0
Instruction
Don't Care
Wrap
图 9.36 QPI 模式下的设置突发长度命令序列
CS
SCLK
IO0
4
0
X
X
X
X
X
X
WL4
X
IO1
5
1
X
X
X
X
X
X
WL5
X
IO2
6
2
X
X
X
X
X
X
WL6
X
IO3
7
3
X
X
X
X
X
X
X
X
Phase
9.3.17
Instruct.
Don't Care
Wrap
进入 QPI 模式 (QPIEN 38h)
进入 QPI 模式 (QPIEN)命令通过设置易失性 QPI 位 (CR2V[3] = 1)可以使能 QPI 模式。请参见第 54 页上的表 7.10 配置寄存器
2 易失性 (CR2V)。需要经过 tQEN 时间使器件进入 QPI 模式,请参考第 33 页上的表 5.4SDR 交流特性,在这段时间内,不允许执
行任意其他命令。
要想返回 SPI 模式,需要发出 QPIEX 命令或对寄存器进行写操作 (CR2V[3] = 0)。如果将非易失性 QPI 位清零 (CR2NV[3] = 0),
发生上电复位、硬件复位或者软件复位事件也会使器件返回 SPI 模式。请参见第 53 页上的表 7.8 配置寄存器 2 非易失性(CR2NV)。
图 9.37 进入 QPI 模式 (QPIEN 38h)命令序列
CS#
SCK
SI_IO0
7
6
5
4
3
2
1
0
SO_IO1
Phase
文档编号:002-03823 版本 *A
Instruction
页 96/143
预览资料
9.3.18
S25FL256L
退出 QPI 模式 (QPIEX F5h)
退出 QPI 模式 (QPIEX)命令通过设置易失性 QPI 位 (CR2V[3] = 0)可以禁用 QPI 模式,并使器件返回 SPI 模式。请参见第 54 页
上的表 7.10 配置寄存器 2 易失性(CR2V)。需要经过 tQEX 时间使器件退出 QPI 模式,请参考第 33 页上的表 5.4SDR 交流特性,在
这段时间内,不允许执行任意其他命令。
图 9.38 退出 QPI (QPIEX F5h)命令序列
CS#
SCLK
IO0
4
0
IO1
5
1
IO2
6
2
IO3
7
Phase
9.4
3
Instruction
读取闪存列命令
闪存主阵列的读命令允许灵活地与前一代 SPI 相兼容或增大 SPI 性能:

某些命令可在每个 SCK 的上升沿上传输地址或数据。它们被称为单倍数据速率 (SDR)命令。

某些 SDR 命令可在每个 SCK 的下降沿上发送一位地址,并在 SCK 的上升沿上返回一位数据。它们被称为单比特宽命令。

某些SDR命令则在每个SCK的上升沿上发送两比特或4比特的地址和数据它们被分别称为双线I/O(针对两比特传输)和四线
I/O 和 QPI (针对 4 比特传输)。 QPI 也会在每个 SCK 的上升沿上发送 4 比特的指令。

某些命令可在 SCK 的双边沿上传输地址和数据。它们被称为双倍数据速率 (DDR)命令。

一些 DDR 命令可在 SCK 的任一边沿上发送 4 比特的地址或数据。它们被称为四线 I/O DDR 和 QPI DDR。
所有这些命令(QPI 读取命令除外)都先发送指令代码,并且每一个 SCK 上升沿传输一位。QPI 读命令在每个 SCK 的上升沿上发送
4 比特的指令,然后 SDR 或 DDR 会发送 3 或 4 字节的地址。在每个时钟沿上传输两比特或 4 比特地址或数据的命令被称为多路 I/O
(MIO)命令。对于 256 Mb 或容量更高的 FL-L 系列器件,传统的 SPI 3 字节地址不能直接对存储器阵列中的所有位置进行寻址。为
了访问整个地址空间,已经提供了一些单独的 4 字节地址读命令。将这些器件配置为能够从主机系统接收 4 字节地址,不像传统的命
令那样只能接收 3 字节地址。通过将配置寄存器 2 中的地址长度位设置为 1,可以激活传统命令的 4 字节地址模式。双线 I/O、四线
I/O 和 QPI 命令通过模式位 (该位在发送地址位后被发送)可以提高器件的性能。模式位指出下一个读命令的类型是否与当前读命令
相同,而在下个读取命令的开始无需包含指令。进行双线或四线连续读访问时,通过这些模式位可以消除指令周期。
某些命令要求移入地址或模式位后需要添加延迟周期 (读取延迟),以便能够访问存储器阵列。读取延迟周期通常被称为虚拟周期。
存储器忽略虚拟周期,因此主机在这些周期内发送的所有数据也被忽略 (“ 无需关注 ”),此时主机可以将 SI 信号保持为高阻抗状
态。使用 MIO 命令时,主机必须在最后虚拟周期结束前停止驱动 I/O 信号 (各输出均为高阻抗状态)。使用 DDR 命令时,主机在任
意虚拟周期内都不能驱动 I/O 信号。因为由配置寄存器 2 (CR3V[3:0])延迟代码选定的 SCK 频率或性能不同,虚拟周期数量也不一
样。虚拟周期指的是从 SCK 的下降沿到下一个 SCK 的下降沿。通常在每个 SCK 的下降沿上将 SPI 输出驱动到新的数值。需要零虚
拟周期是因为在同一个 SCK 下降沿上,在存储器将数据返回给主机,同时主机停止发送地址或模式位。
DDR 命令可以在数据的开始前添加一个 8 边沿数据学习模式 (DLP),该 DLP 由存储器通过所有数据输出在虚拟周期内驱动的。
通过 DLP,主机存储器控制器能够确定 SCK 与数据边沿之间的相移,从而存储器控制器可以在数据边沿的中心捕获数据。
在较高的 SCK 时钟频率 (> 50 MHz)下使用 SDR I/O 命令时,应选中提供了一个或多个虚拟周期的 LC,这样可以为主机提供额外
的时间,使它在存储器开始发送数据前停止执行发送操作,以避免在 I/O 上发生冲突。如果使用具有 DLP 的 SDR I/O 命令,应选中能
够提供 5 个或多个虚拟周期的 LC,这样可以为主机提供一个周期时长的额外时间,使它在存储器开始发送 4 周期 DLP 前停止执行发
送操作。
在数据返回的过程中,一旦 CS# 返回高电平会结束读命令。在连续读取模式下或在虚拟周期中,CS# 不能在返回数据前变为高电平,
否则会导致模式位被错误捕获,从而不能确定器件是否仍处于连续读取模式。
文档编号:002-03823 版本 *A
页 97/143
预览资料
9.4.1
S25FL256L
读取 (读取 03h 或 4READ 13h)
指令

03h (CR2V[0] = 0)先被发送,然后轮到 3 字节地址 (A23-A0)或

03h (CR2V[0] = 1)先被发送,然后轮到 4 字节地址 (A31-A0)或

13h (CR2V[0] = 1)先被发送,然后轮到 4 字节地址 (A31-A0)
此时,存储器通过 SO/IO1 信号发送指定地址的内容。
该地址可以从存储器阵列中的任意字节位置开始。输出每一个数据字节后,会按顺序自动递增到下一个更高的地址。因此,只要使用
一个读命令和已给的地址 000000h,便可以读取整个存储器的空间。当到达最高地址时,地址计数器翻转到起始地址 000000h,这样
允许读取序列继续下去。
图 9.39 读取命令序列
CS#
SCK
SI_IO0
7
6
5
4
3
2
1
0
A
1
0
SO_IO1
7
Phase
Instruction
6
Address
5
4
3
2
1
0
7
6
5
Data 1
4
3
2 1
0
Data N
注意:
1. A = 地址的 MSB = 23 (若 CR2V[0] = 0)或 = 31 (若 CR2V[0] = 1 或命令 13h)。
9.4.2
快速读取 (FAST_READ 0Bh 或 4FAST_READ 0Ch)
指令

0Bh (CR2V[0] = 0)先被发送,然后轮到 3 字节地址 (A23-A0)或

0Bh (CR2V[0] = 1)先被发送,然后轮到 4 字节地址 (A31-A0)或

0Ch 先被发送,然后轮到 4 字节地址 (A31-A0)
发送地址后会继续发送虚拟周期,该周期数量取决于配置寄存器 CR3V[3:0] 中所设置的延迟值。虚拟周期为器件的内部电路提供额外
的时间,使之能够访问重要的地址位置。在这些延迟周期内,SO/IO1 上的所有数据均被忽略,并且该信号会保持为高阻抗。此时,存
储器通过 SO/IO1 信号发送指定地址的内容。
该地址可以从存储器阵列中的任意字节位置开始。输出每一个数据字节后,会按顺序自动递增到下一个更高的地址。因此,只要使用
一个读命令和已给的地址 000000h,便可以读取整个存储器空间。当到达最高地址时,地址计数器翻转到起始地址 000000h,这样允
许读取序列继续下去。
图 9.40 快速度取 (FAST_READ)命令序列
CS#
SCK
SI_IO0
7
6
5
4
3
2
1
0
A
1
0
SO_IO1
7
6
5
4
3
2
1
0
IO2-IO3
Phase
Instruction
Address
Dummy Cycles
Data 1
注意:
1. A = 地址的 MSB = 23 (若 CR2V[0] = 0)或 = 31 (若 CR2V[0] = 1 或命令 0Ch)。
文档编号:002-03823 版本 *A
页 98/143
预览资料
9.4.3
S25FL256L
双线输出读取 (DOR 3Bh 或 4DOR 3Ch)
指令

3Bh (CR2V[0] = 0)先被发送,然后轮到 3 字节地址 (A23-A0)或

3Bh (CR2V[0] = 1)先被发送,然后轮到 4 字节地址 (A31-A0)或

3Ch 先被发送,然后轮到 4 字节地址 (A31-A0)
发送地址后会继续发送虚拟周期,该周期数量取决于配置寄存器 CR3V[3:0] 中所设置的延迟值。虚拟周期为器件的内部电路提供额
外的时间,使之能够访问重要的地址位置。在这些虚拟周期内, IO0 (SI)和 IO1 (S0)上的所有数据均被忽略,并会保持为高阻
抗状态。
此时,存储器通过 IO0 (SI)和 IO1 (SO)信号每次发送指定地址中的两比特数据。在 SCK 频率下,在 SCK 的下降沿上输出两比
特数据。
该地址可以开始于存储器阵列中任意字节位置。输出每一个数据字节后,会按顺序自动递增到下一个更高的地址。因此,只要使用一
个读命令和已给的地址 000000h,便可以读取整个存储器的空间。当到达最高地址时,地址计数器翻转到起始地址 000000h,这样
可使读取序列继续下去。
对于双线输出读命令,从最后地址位移入 IO0 (SI)后到数据从 IO0 和 IO1 移出后,需要几个虚拟周期。
图 9.41 双线输出读命令序列
CS#
SCK
IO0
7
6
5
4
3
2
1
0
A
1
0
IO1
Phase
Instruction
Address
Dummy Cycles
6
4
2
0
6
4
2
0
7
5
3
1
7
5
3
1
Data 1
Data 2
注意:
1. A = 地址的 MSB = 23 (若 CR2V[0] = 0)或 = 31 (若 CR2V[0] = 1 或命令 3Ch)。
文档编号:002-03823 版本 *A
页 99/143
预览资料
9.4.4
S25FL256L
双线输出读取 (QOR 6Bh 或 4QOR 6Ch)
指令

6Bh (CR2V[0] = 0)先被发送,然后轮到 3 字节地址 (A23-A0)或

6Bh (CR2V[0] = 1)先被发送,然后轮到 4 字节地址 (A31-A0)或

6Ch 先被发送,然后轮到 4 字节地址 (A31-A0)
发送地址后会继续发送虚拟周期,该周期数量取决于配置寄存器 CR3V[3:0] 中设置的延迟值。虚拟周期为器件的内部电路提供额外
的时间,使之能够访问重要的地址位置。在这些虚拟周期内, IO0 - IO3 上的所有数据均被忽略,并且这些信号会保持为高阻抗状
态。
此时,存储器通过 IO0 - IO3 信号每次发送四比特指定地址中的数据。在 SCK 频率下,在 SCK 的下降沿上输出半字节 (4 比特)。
该地址可以从存储器阵列中的任意字节位置开始。输出每一个数据字节后,会按顺序自动递增到下一个更高地址。因此,只要使用一
个读命令和已给的地址 000000h,便可以读取整个存储器空间。当到达最高地址时,地址计数器翻转到起始地址 000000h,这样允
许读取序列继续下去。
对于四线输出读命令,从最后地址位移入 IO0 后到数据从 IO0 - IO3 移出后,需要几个虚拟周期。
图 9.42 四线输出读命令序列
CS#
SCK
IO0
7
4 0
4 0
4 0
4 0
4 0 4
IO1
5 1
5 1
5 1
5 1
5 1
5
IO2
6 2
6 2
6 2
6 2
6 2
6
IO3
7 3
7 3
7 3
7 3
7 3
7
D1
D2
D3
D4
D5
Phase
6 5
4 3
2 1
Instruction
0 A
1 0
Address
Dummy
注意:
1. A = 地址的 MSB = 23 (若 CR2V[0] = 0)或 = 31 (若 CR2V[0] = 1 或命令 6Ch)。
9.4.5
双线 I/O 读取 (DIOR BBh 或 4DIOR BCh)
指令

BBh (CR2V[0] = 0)先被发送,然后轮到 3 字节地址 (A23-A0)或

BBh (CR2V[0] = 1)先被发送,然后轮到 4 字节地址 (A31-A0)或

BCh 先被发送,然后轮到 4 字节地址 (A31-A0)
双线 I/O 读命令通过两个 I/O 信号,即 IO0 (SI)和 IO1 (SO)提高了吞吐量。该命令在每个 SCK 的上升沿上接收地址的输入,并
返回两比特读取数据。在某些应用中,减少地址输入和数据输出的时间会允许立即执行代码 (XIP),即直接从存储器件执行代码。
双线 I/O 读命令中的连续读取模式位也位于地址后面;第一个双线读命令发出模式位图案 Axh 来表示下一个命令也在双线 I/O 读命令
之后,一系列双线 I/O 读命令可能会清除 8 位指令。一系列命令中的第一个双线 I/O 读命令以 8 位指令开始,随后逐个是地址、 4 周
期的模式位和可选的延迟周期。如果模式位图案为 Axh,假设下个命令是不提供指令位的其他双线 I/O 读命令。该命令的组成部分分
别为地址、模式位和可选的延迟。
文档编号:002-03823 版本 *A
页 100/143
预览资料
S25FL256L
从模式位移入 SI 和 SO 后到数据从 IO0 和 IO1 移出前,需要添加可变的延迟。这样,器件的内部电路会有足够的时间来访问初始地
址中的数据。在这些延迟周期内, SI 和 SO 上的所有数据均被忽略,并且这些信号会保持为高阻抗状态。虚拟周期的数量由 SCK 的
频率确定。该延迟在 CR3V[3:0] 中进行配置。
凭借连续读取特性,在读访问的序列中无需读取指令位,并能够明显提高代码执行 (XIP)的性能。模式位的高位半字节 (位 7-4)
通过添加或清除第一个字节指令代码来控制下一个双线 I/O 读命令的长度。模式位的低位半字节 (位 3-0)则被忽略 (使用 “x”
表示),并保持为高阻抗。如果模式位为 Axh,则器件仍处于双线 I/O 连续读取模式,并且在 CS# 被驱动为高电平,再被确认为低电
平后能够移入下一个地址 (而不需要读取 BBh 或 BCh 指令 (如图 9.44 所示));这样可以消除命令序列中的 8 个周期。发生以下
情况时会使器件退出双线 I/O 连续读取模式;然后器件可以接收标准的 SPI 命令:
1. 在执行双线 I/O 连续读取命令序列过程中,如果模式位为非 Axh 值,则下次将 CS# 驱动为高电平时会使器件退出双线 I/O
连续读取模式。
2. 发送模式复位命令。
请注意,最后的读取地址周期被定时在 IO0 (S)和 IO1 (SO)后,器件的内部电路需要 4 个模式位周期的延迟时间来访问初始地
址。
在第一个数据移出的时钟的下降沿上 (或之前),必须将 I/O 信号设为高阻抗。在更高的时钟速度下,存储器件开始发送数据前需要
停止主机传输数据的时间 (即总线周转时间)被减少。这样,主机系统可以在最后两个 “ 无需关注 ” 的模式周期或在任意虚拟周
期内停止通过 I/O 信号发送数据 (将它们保持为高阻抗),从而避免在 I/O 信号上发生冲突。
该延迟周期结束后,存储器便通过 IO0 (SI)和 IO1 (SO)信号每次发送指定地址中的两比特数据。以 SCK 频率,在 SCK 的下降
沿上将输出两比特数据。
该地址可以从存储器阵列中的任意字节位置开始。输出每一个数据字节后,会按顺序自动递增到下一个更高地址。因此,只要使用一
个读命令和已给的地址 000000h,便可以读取整个存储器空间。当到达最高地址时,地址计数器翻转到起始地址 000000h,这样允
许读取序列继续下去。
在模式 / 虚拟位周期内不应该将 CS# 驱动为高电平,否则会使这些模式位的状态不确定。
图 9.43 双线 I/O 读命令序列
CS#
SCK
IO0
7
6
5
4
3
2
1
0 A-1
IO1
A
Phase
Instruction
2
0
6
4
2
0
6
4
2
0
6
4
2
0
3
1
7
5
3
1
7
5
3
1
7
5
3
1
Address
Mode
Dum
Data 1
Data 2
注意:
1. A = 地址的 MSB = 23 (若 CR2V[0] = 0)或 = 31 (若 CR2V[0] = 1 或命令 BCh)。
2. 4 个最低有效模式位均被忽略,主机可以选择发送这些位。主机在这些周期内会停止发送数据,以便延长从主机发送模式位到存储器返回数据之间总线周转的时间。
图 9.44 双线 I/O 连续读取命令序列
CS#
SCK
IO0
6
4
2
0
A-1
2
0
6
4
2
0
6
4
2
0
6
4
2
0
IO1
7
5
3
1
A
3
1
7
5
3
1
7
5
3
1
7
5
3
1
Phase
Data N
Address
Mode
Dum
Data 1
Data 2
注意:
1. A = 地址的 MSB = 23 (若 CR2V[0] = 0)或 = 31 (若 CR2V[0] = 1 或命令 BCh)。
文档编号:002-03823 版本 *A
页 101/143
预览资料
9.4.6
S25FL256L
四线 I/O 读取 (QIOR EBh 或 4QIOR ECh)
指令

EBh (CR2V[0] = 0)先被发送,然后轮到 3 字节地址 (A23-A0)或

EBh (CR2V[0] = 1)先被发送,然后轮到 4 字节地址 (A31-A0)或

ECh 先被发送,然后轮到 4 字节地址 (A31-A0)
由于四线 I/O 读取命令使用了四个 I/O 信号 (IO0-IO3),因而提高了吞吐量。这样,可以在每个串行时钟 SCK 的边沿上移入 4 比特
地址。在某些应用中,通过降低指令的开销,可以直接从 FL-L 系列器件执行代码 (XIP) 。必须设置配置寄存器 1 的 QUAD 位
(CR1V[1] = 1)或配置寄存器 2 的 QPI 位 (CR2V[1] = 1),以使能 FL-L 系列器件的四线模式。
执行四线 I/O 读命令时,移入模式位后 (如下所述)到通过 IO0-IO3 开始移出数据前需要添加一个延迟周期。该延迟周期 (虚拟周
期)为器件的内部电路提供了所需时间,用于访问初始地址的数据。在这些延迟周期内, IO0-IO3 上的数据值均被忽略,并且这些信
号会保持为高阻抗。虚拟周期的数量由 SCK 的频率确定。该延迟在 CR3V[3:0] 中进行配置。
该延迟周期结束后,存储器便通过 IO0-IO3 信号每次发送指定地址中的四比特数据。在 SCK 频率下,在 SCK 信号的下降沿上移出半
字节 (4 比特)。
该地址可以从存储器阵列中的任意字节位置开始。输出每一个数据字节后,会按顺序自动递增到下一个更高地址。因此,只要使用一
个读命令和已给的地址 000000h,便可以读取整个存储器空间。当到达最高地址时,地址计数器翻转到起始地址 000000h,这样可使
读取序列继续下去。
不需要添加四线 I/O 读指令仍能跳到其他地址。通过设置地址序列后的模式位(如第 102 页上的图 9.45 所示),可以控制该操作。凭
借这个附加的特性,无需读取指令序列,仍能明显提高代码执行 (XIP)的性能。模式位的高位半字节 (位 7-4)通过添加或清除第
一个字节指令代码来控制下一个四线 I/O 指令的长度。模式位的低位半字节 (位 3-0)被忽略 (使用 “x” 表示)。如果模式位为
Axh,则器件仍处于四线 I/O 高性能读取模式,并且在 CS# 被驱动为高电平,然后再被确认为低电平后,能够移入下一个地址 (不需
要读取 EBh 或 ECh 指令 (如第 103 页上的图 9.47 所示))。这样可以消除命令序列的 8 个周期。发生以下情况时会使器件退出四线
I/O 高性能读取模式;然后器件可以接收标准的 SPI 命令:
1. 在执行四线 I/O 读取命令序列过程中,如果模式位为非 Axh 的值,则下次将 CS# 驱动为高电平时会使器件退出四线 I/O 高
性能读取模式。
2. 发送模式复位命令。
请注意,最后的读取地址周期被定时在 IO0-IO3 后,器件的内部电路需要两个模式位时钟周期和额外的等待时间 (即虚拟周期)来访
问初始地址。
应注意,在第一个数据移出的时钟的下降沿上 (或之前),必须将 IO0-IO3 信号设为高阻抗。在更高的时钟速度下,存储器件开始发
送数据前需要停止主机传输数据的时间 (即总线周转时间)被减少。这样,主机系统可以在最后 “ 无需关注 ” 的模式周期内或在任
意虚拟周期内停止通过 IO0-IO3 信号发送数据 (将它们保持为高阻抗),从而避免在 IO0-IO3 信号上发生冲突。
在模式 / 虚拟位周期内不应该将 CS# 驱动为高电平,否则会使这些模式位的状态不确定。
在 QPI 模式下 (CR2V[3] = 1),四线 I/O 指令都会在每个 SCK 的上升沿上发送 4 比特信息。该命令协议的其余部分和四线 I/O 命令
完全相同。
图 9.45 初始访问的四线 I/O 读取命令序列
CS#
SCLK
IO0
7
6
0 A-3
4
0
4
0
4
0
4
0
4
0
4
0
IO1
A-2
5
1
5
1
5
1
5
1
5
1
5
1
IO2
A-1
6
2
6
2
6
2
6
2
6
2
6
2
IO3
A
7
3
7
3
7
3
7
3
7
3
7
3
Phase
5
4
3
Instruction
2
1
Address Mode
Dummy
D1
D2
D3
D4
注意:
1. A = 地址的 MSB = 23 (若 CR2V[0] = 0)或 = 31 (若 CR2V[0] = 1 或命令 ECh)。
文档编号:002-03823 版本 *A
页 102/143
预览资料
S25FL256L
图 9.46 在 QPI 模式下初始访问的四线 I/O 读取命令序列
CS#
SCLK
IO0
4
0
A-3
4
0
4
0
4
0
4
0
4
0
4
0
IO1
5
1
A-2
5
1
5
1
5
1
5
1
5
1
5
1
IO2
6
2
A-1
6
2
6
2
6
2
6
2
6
2
6
2
IO3
7
3
A
7
3
7
3
7
3
7
3
7
3
7
3
Phase
Instruct.
Address
Mode
Dummy
D1
D2
D3
D4
注意:
1. A = 地址的 MSB = 23 (若 CR2V[0] = 0)或 = 31 (若 CR2V[0] = 1 或命令 ECh)。
图 9.47 四线 I/O 连续读取命令序列
CS#
SCK
IO0
4
0
4
0
A-3
4
0
4
0
4
0
4
0
6
4
2
0
IO1
5
1
5
1
A-2
5
1
5
1
5
1
5
1
7
5
3
1
IO2
6
2
6
2
A-1
6
2
6
2
6
2
6
1
7
5
3
1
IO3
7
3
7
3
A
7
3
7
3
7
3
7
1
7
5
3
1
Phase
DN-1
DN
Address
Mode
Dummy
D1
D2
D3
D4
注意:
1. A = 地址的 MSB = 23 (若 CR2V[0] = 0)或 = 31 (若 CR2V[0] = 1 或命令 ECh)。
2. 在 QPI 模式下,命令序列也相同。
文档编号:002-03823 版本 *A
页 103/143
预览资料
9.4.7
S25FL256L
DDR 四线 I/O 读取 (EDh、 EEh)
DDR 四线 I/O 读取命令因为使用了四个 I/O 信号(IO0-IO3),从而提高了吞吐量。它和四线 I/O 读取命令相同,但仍允许在每个时钟
沿上移入 4 比特地址。在某些应用中,降低指令的开销,可以直接从 FL-L 系列器件执行代码(XIP)。必须设置配置寄存器 1 的 QUAD
位 (CR1V[1] = 1)或配置寄存器 2 的 QPI 位 (CR2V[1] = 1),以使能 FL-L 系列器件的四线模式。
指令

EDh (CR2V[0] = 0)先被发送,然后轮到 3 字节地址 (A23-A0)或

EDh (CR2V[0] = 1)先被发送,然后轮到 4 字节地址 (A31-A0)或

EEh 先被发送,然后轮到 4 字节地址 (A31-A0)
地址被发送后,会继续发送模式位。在 DDR 模式下,存储器通过 IO0 - IO3 信号每次在一个时钟沿上发送特定地址中的四比特数据。
DDR 四线 I/O 读取命令的最大工作时钟频率为 66 MHz。
执行 DDR 四线 I/O 读命令时,通过 IO0-IO3 移入最后地址和模式位后到数据从 IO0-IO3 开始移出前,需要添加一个延迟周期。这样,
器件的内部电路会有足够的时间来访问初始地址的数据。在这些延迟周期内, IO0-IO3 上的数据值均被忽略,并且这些信号会保持为
高阻抗。使能数据学习模式(DLP)时,主机不能在虚拟周期内驱动 IO 信号,而必须将它保持为高阻抗,以便存储器件能够驱动 DLP。
虚拟周期的数量由 SCK 的频率确定。该延迟在 CR3V[3:0] 中进行配置。
通过模式位,一系列 I/O DDR 命令可以在第一条命令发送一个互补模式位图案后消除 8 位指令。由于具备该特性,因此不需要 8 位
SDR 指令,并且能够大量减少最初的访问时间。模式位通过添加或清除第一个字节指令代码来控制下一个 DDR 四线 I/O 读取操作的
长度。如果模式位的高位半字节 (IO[7:4])和低位半字节 (IO[3:0])是互补的 (即 5h 和 Ah),那么器件会切换为 DDR 四线 I/O 连
续读取模式,并且能够在 CS# 被驱动为高电平再被确认为低电平后读取下一个地址 (不需要读取 EDh 或 EEh 指令),从而可以清除
命令序列的 8 个周期。发生以下情况时会使器件退出 DDR 四线 I/O 连续读取模式;然后器件可以接收标准的 SPI 命令:
1. 在执行 DDR 四线 I/O 读取命令序列过程中,如果模式位不是互补的,则下次将 CS# 驱动为高电平然后被确认为低电平时
会使器件退出 DDR 四线 I/O 读取模式。
2. 发送模式复位命令。
该地址可以从存储器阵列中的任意字节位置开始。输出每一个数据字节后,会按顺序自动递增到下一个更高地址。因此,只要使用一
个读命令和已给的地址 000000h,便可以读取整个存储器空间。当到达最高地址时,地址计数器翻转到起始地址 000000h,这样允许
读取序列继续下去。
在模式 / 虚拟位周期内不应该将 CS# 驱动为高电平,否则会使这些模式位的状态不确定。请注意,存储器件在发送第一个数据值前先
在 IO 信号上发送一个前导码。前导码是一个数据学习模式(DLP),主机控制器通过它使数据捕获在更高的频率下得到优化。数据被
输出前,前导码会立即驱动 IO 总线上四个时钟周期。请确保主机在存储器开始发送前导码前已经停止驱动 IO 总线。
前导码用于向主机控制器表示从主机驱动一个时钟沿到存储器件返回相应数据的完整时间。主机控制器会在前导码期间使数据捕获点
偏移,以便优化时序容限,然后使用同样的偏移时间捕获读取操作其余部分的数据。在所有读取操作的前导码期间,都可确定得到优
化的数据捕获点。该优化特性不但能补偿存储器件和主机控制器的 PVT (处理过程、电压、温度),还可以补偿 PCB 板上数据传送
时间所导致的系统级延迟。
虽然数据学习模式 (DLP)是可编程的,但以下显示的是 DLP 为 34h 的示例。 DLP 34h (或 00110100)是在每个活跃的输出 (即
所有四个 IO)上被发送的。选中该模式以包含 “DC” 和 “AC” 的数据切换情况。两个 DC 切换情况包括:数据在较长时间 (2.5
个时钟周期)内为低电平,然后切换为高电平 (001);互补低电平切换 (110)。两个 AC 切换情况包括:数据在较短时间 (1.5 个
时钟周期)内为低电平,然后切换为高电平 (101);互补低电平切换 (010)。与 AC 切换相比,直流切换通常在更接近于电源轨的
起始点上发生。在该起始点上, AC 切换的电源未达到稳定状态。在多种情况下,直流切换决定了数据有效期间的开始,交流切换则
决定了数据有效期间的结束。通过这些切换,主机控制器可以确定数据有效眼图的开始和结束。一旦确认了数据眼图,便可以选中最
佳的数据捕获点。更多信息,请参考第 61 页上的 7.6.10, DDR 数据学习寄存器中介绍的内容。
在 QPI 模式下 (CR2V[3] = 1), DDR 四线 I/O 指令都会在每个 SCK 的上升沿上发送 4 比特的信息。该命令协议的其余部分和 DDR
四线 I/O 命令完全相同。
文档编号:002-03823 版本 *A
页 104/143
预览资料
S25FL256L
图 9.48 DDR 初始访问的四线 I/O 读取命令序列
CS#
SCK
IO0
A-3
8 4 0 4 0
7 6 5 4 3 2 1 0 4 0 4 0
IO1
7
6
5
A-2
9 5 1 5 1
7 6 5 4 3 2 1 0 5 1 5 1
IO2
A-1
10 6 2 6 2
7 6 5 4 3 2 1 0 6 2 6 2
IO3
A
11 7 3 7 3
7 6 5 4 3 2 1 0 7 3 7 3
Phase
4
3
2
1
0
Instruction
Address
Mode
Dummy
DLP
D1
D2
注意:
1. A = 地址的 MSB = 23 (若 CR2V[0] = 0)或 = 31 (若 CR2V[0] = 1 或命令 EEh)。
2. DLP 为 34h (或 00110100)的示例
图 9.49 在 QPI 模式下初始访问的 DDR 四线 I/O 读取命令序列
CS#
SCLK
IO0
4
0
A-3
8
4
0
4
0
7
6
5
4
3
2
1
0
4
0
4
0
IO1
5
1
A-2
9
5
1
5
1
7
6
5
4
3
2
1
0
5
1
5
1
IO2
6
2
A-1
10
6
2
6
2
7
6
5
4
3
2
1
0
6
2
6
2
IO3
7
3
A
11
7
3
7
3
7
6
5
4
3
2
1
0
7
3
7
3
Phase
Instruct.
Address
Mode
Dummy
DLP
D1
D2
注意:
1. A = 地址的 MSB = 23 (若 CR2V[0] = 0)或 = 31 (若 CR2V[0] = 1 或命令 EEh)。
2. DLP 为 34h (或 00110100)的示例。
图 9.50 后续访问的 DDR 四线 I/O 连续读取序列
CS#
SCK
IO0
A-3
8
4
0
4
0
7
6
5
4
3
2
1
0
4
0
4
0
1
IO1
A-2
9
5
1
5
1
7
6
5
4
3
2
1
0
5
1
5
1
2
IO2
A-1
10
6
2
6
2
7
6
5
4
3
2
1
0
6
2
6
2
IO3
A
11
7
3
7
3
7
6
5
4
3
2
1
0
7
3
7
3
Phase
Address
Mode
Dummy
DLP
D1
D2
注意:
1. A = 地址的 MSB = 23 (若 CR2V[0] = 0)或 = 31 (若 CR2V[0] = 1 或命令 EEh)。
2. 在 QPI 模式下,命令序列也相同。
3. DLP 为 34h (或 00110100)的示例。
文档编号:002-03823 版本 *A
页 105/143
预览资料
9.5
9.5.1
9.5.1.1
S25FL256L
编程闪存阵列命令
编程粒度
页编程
通过将需要编程的数据加载到页缓冲区,并发送编程命令将缓冲区中的数据传输到存储器阵列内,这样可以实现页编程操作。该操作
设置了通过单个编程命令可以编程的数据量的上限。通过一个编程操作,可编程容量为 256 字节的页。该页在页大小地址边界上对
齐。通过每个页编程操作可以编程一位到一页的容量。为达到最佳性能,编程应在 256 字节边界对齐的全部 256 字节页上完成,并且
每一页仅被编程一次。
9.5.1.2
单字节编程
单字节编程通过允许在存储器阵列中的任何位置内编程单个字节,因此该操作与传统标准 SPI 页编程 (PP)命令完全向后兼容。
9.5.2
页编程 (PP 02h 或 4PP 12H)
通过页编程 (PP)命令,可在存储器中进行字节编程 (将位从 1 改成 0) 。接收页编程 (PP)命令前,器件必须发送写入使能
(WREN)命令,并对其进行解码。成功解码写入使能 (WREN)命令后,器件将设置状态寄存器中的写入使能锁存 (WEL)位,以
使能任意写入操作。
指令
 02h (CR2V[0] = 0)先被发送,然后是 3 字节地址 (A23-A0)或
 02h (CR2V[0] = 1)先被发送,然后是 4 字节地址 (A31-A0)或
 12h 先被发送,然后轮到 4 字节地址 (A31-A0)
并且 SI/IO0 信号上至少有一个数据字节。通过传送指令 02h,然后传送 3 字节地址或通过传送指令 12h,然后传送 4 字节地址后,可
在 SI/IO0 提供多达一页的空间。对于写入和擦除命令,锁存最后字节的第 8 位后,必须将 CS# 引脚驱动为高电平。如果不进行该操
作,则不能执行页编程命令。将 CS# 信号驱动为高电平后,可在 tPP 时间内开始自定时页编程命令。
通过页编程 (PP)命令加载页边界内的整页,将节省整个编程时间,并且能缩短将一页加载到编程缓冲区内的时间。
编程过程由闪存存储器器件的内部控制逻辑管理。发送编程命令后,可通过读取状态寄存器 1 命令检查编程操作状态。 WIP 位
(SR1V[0])指出了编程操作是否完成。 P_ERR 位 (SR2V[5])将指出该编程操作是否存在错误 (如果发生该错误,编程操作无法成
功完成)。它包括保护区的尝试编程。
图 9.51 页编程 (PP 02h 或 4PP 12H)命令序列
CS#
SCK
SI_IO0
7
6
5
4
3
2
1
0
A
5
4
3
2
1
0
7
6
5
4
3
2
1
0
7
6
5
4
3
2
1
0
SO_IO1
Phase
Instruction
Address
Input Data 1
Input Data 2
注意
1. A = 地址的 MSB = A23 (在 PP 02h 和 CR2V[0] = 0 条件下)或 = A31 (在 PP 02h 和 CR2V[0] = 1 或 4PP 12h 条件下)。
该命令也受 QPI 模式的支持。在 QPI 模式下,指令、地址和数据将通过 IO0-IO3 信号传入到芯片内。
文档编号:002-03823 版本 *A
页 106/143
预览资料
S25FL256L
图 9.52 QPI 模式下的页编程 (PP 02h 或 4PP 12H)命令序列
CS#
SCLK
IO0
4
0
A-3
4
0
4
0
4
0
4
0
4
0
IO1
5
1
A-2
5
1
5
1
5
1
5
1
5
1
IO2
6
2
A-1
6
2
6
2
6
2
6
2
6
2
IO3
7
3
A
7
3
7
3
7
3
7
3
7
3
Phase
Instruct.
Address
Input D1
Input D2
Input D3
Input D4
注意
1. A = 地址的 MSB = A23 (在 PP 02h 和 CR2V[0] = 0 条件下)或 = A31 (在 PP 02h 和 CR2V[0] = 1 或 4PP 12h 条件下)。
9.5.3
四线页编程 (QPP 32h 或 4QPP 34h)
通过四线输入页编程 (QPP)命令,可在存储器中进行字节编程 (将位从 1 改成 0)。四线输入页编程 (QPP)命令允许通过使用
四个信号:IO0-IO3 将一个数据页加载到页缓冲区内。通过在每个时钟周期内加载 4 位数据, QPP 可以提高具有更慢时钟速度 (<
12 MHz)的 PROM 编程器和各个应用的性能。因为内在的页编程时间大于时钟数据所需的时间,所以具有更高时钟频率的系统体现
不了 QPP 命令所带来的好处。 QPP 命令的最大频率为 133 MHz。
要想使用四线页编程命令,必须设置配置寄存器中的四线使能位 (QUAD = 1)。接收 QPP 命令之前,器件要执行写入使能命令
(状态寄存器 1、 WEL = 1)。
指令

32h (CR2V[0] = 0)先被发送,然后轮到 3 字节地址 (A23-A0)或

32h (CR2V[0] = 1)先被发送,然后轮到 4 字节地址 (A31-A0)或

34h 先被发送,然后轮到 4 字节地址 (A31-A0)
并且在 IO 信号上,至少有一个数据字节。必须在先前被擦除的 (FFh)存储器位置中编程数据。
QPP 的所有其他功能与页编程的相同。 QPP 命令序列如下面图所示。
图 9.53 四线页编程命令序列
CS#
SCK
IO0
7
6
4
0
4
0
4
0
4
0
4
0
4
IO1
5
1
5
1
5
1
5
1
5
1
5
IO2
6
2
6
2
6
2
6
2
6
2
6
IO3
7
3
7
3
7
3
7
3
7
3
7
Phase
5
4
3
Instruction
2
1
0
A
1
Address
0
Data 1
Data 2
Data 3
Data 4
Data 5
...
注意
1. A = 地址的 MSB = A23 (在 QPP 32h 和 CR2V[0] = 0 条件下)或 = A31 (在 QPP 32h 和 CR2V[0] = 1 或 4QPP 34h 条件下)
文档编号:002-03823 版本 *A
页 107/143
预览资料
9.6
S25FL256L
擦除闪存阵列命令
9.6.1
扇区擦除 (SE 20h 或 4SE 21h)
扇区擦除 (SE)命令将地址扇区中的所有位设置为 1 (这样所有字节均为 FFh)。接收扇区擦除 (SE)命令前,器件必须发送写入
使能 (WREN)命令并对其进行解码。这样将设置状态寄存器中的写入使能锁存 (WEL)位,以使能所有写入操作。
指令

20h[CR2V[0] = 0] 先被发送,然后轮到 3 字节地址 (A23-A0)或

20h[CR2V[0] = 1] 先被发送,然后轮到 4 字节地址 (A31-A0)或

21h 先被发送,然后轮到 4 字节地址 (A31-A0)
地址的第 24 或第 32 位通过 SI/IO0 被锁存在芯片内后,必须将 CS# 信号驱动为逻辑高电平状态。该操作将启动内部擦除周期,包括
预编程和擦除闪存存储器阵列的已选扇区。如果锁存地址的最后一位的后面未将 CS# 驱动为高电平,则不会执行扇区擦除操作。
将 CS# 信号驱动为高电平后,将启动内部擦除周期。在内部擦除周期中,用户可以读取正在进行写入操作 (WIP)位的值,从而确
定该操作是否完成。在擦除周期期间, WIP 位将为 “1” ;在擦除周期完成后,该位显示为 “0”。
用于一个扇区的 SE 或 4SE 命令不被执行 (该扇区通过传统的模块保护、单独模块锁定或指针区域保护得到写入保护),而且该命令
将设置 E_ERR 状态。
图 9.54 扇区擦除 (SE 20h 或 4SE 21h)命令序列
CS#
SCK
SI_IO0
7
6
5
4
3
2
1
0
A
1
0
SO_IO1
Phase
Instruction
Address
注意
1. A = 地址的 MSB = A23 (在 SE 20h 和 CR2V[0] = 0 条件下)或 = A31 (在 SE 20h 和 CR2V[0] = 1 或 4SE 21h 条件下)。
该命令也受 QPI 模式的支持。在 QPI 模式下,指令和地址将通过 IO0-IO3 信号传入到芯片内。
图 9.55 扇区擦除 (SE 20h 或 4SE 21h)的 QPI 模式命令序列
CS#
SCLK
IO0
4
0
A-3
4
0
IO1
5
1
A-2
5
1
IO2
6
2
A-1
6
2
IO3
7
3
A
7
3
Phase
Instructtion
Address
注意
1. A = 地址的 MSB = A23 (在 SE 20h 和 CR2V[0] = 0 条件下)或 = A31 (在 SE 20h 和 CR2V[0] = 1 或 4SE 21h 条件下)。
文档编号:002-03823 版本 *A
页 108/143
预览资料
9.6.2
S25FL256L
半块擦除 (HBE 52h 或 4HBE 53h)
半块擦除 (HBE)命令将地址半块中的所有位设置为 1 (这样所有字节均为 FFh)。收半块擦除 (HBE)命令前,器件必须发送写
入使能 (WREN)命令并对其进行解码。这样将设置状态寄存器中的写入使能锁存 (WEL)位,以使能所有写入操作。
指令

52h[CR2V[0] = 0] 先被发送,然后轮到 3 字节地址 (A23-A0)或

52h[CR2V[0] = 1] 先被发送,然后轮到 4 字节地址 (A31-A0)或

53h 先被发送,然后轮到 4 字节地址 (A31-A0)
地址的第 24 或第 32 位通过 SI/IO0 锁存在芯片内之后,必须将 CS# 信号驱动为逻辑高电平状态。该操作将启动擦除周期,包括预编
程和擦除已选模块的每个扇区。如果锁存地址的最后位后不将 CS# 驱动为高电平,则半块擦除操作将不被执行。
将 CS# 信号驱动为逻辑高电平状态后,将启动内部擦除周期。在内部擦除周期中,用户可以读取正在进行写入操作 (WIP)位的
值,从而检查该操作是否完成。在擦除周期期间, WIP 位将为 “1” ;在擦除周期完成后,该位显示为 “0”。
半块擦除 (HBE)命令未被执行于整块 (该模块通过传统的模块保护、单独模块锁定或指针区域保护得到写入保护),而且该命令
将设置 E_ERR 状态。
如果使用了半块擦除命令并且半块擦除区中的任意区域、扇区或块得到保护,那么将不会在 32 KB 范围内执行擦除操作,但会设置
E_ERR 状态。
图 9.56 半块擦除 (HBE 52h 或 4HBE 53h)命令序列
CS#
SCK
SI_IO0
7
6
5
4
3
2
1
0
A
1
0
SO_IO1
Phase
Instruction
Address
注意
1. A = 地址的 MSB = A23 (在 HBE 52h 和 CR2V[0] = 0 条件下)或 A31 (在 HBE 52h 和 CR2V[0] = 1 或 4HBE 53h 条件下)。
2. A[15] = 0 时,将擦除块的第 0-7 扇区; A[15] = 1 时,则擦除块的第 8-15 扇区。
3. A = 地址的 MSB = A23 (在 HBE 52h 和 CR2V[0] = 0 条件下)或 A31 (在 HBE 52h 和 CR2V[0] = 1 或 4HBE 53h 条件下)。
该命令也受 QPI 模式的支持。在 QPI 模式下,指令和地址将通过 IO0-IO3 信号传入到芯片内。
图 9.57 半块擦除 (HBE 52h 或 4HBE 53h)的 QPI 模式命令序列
CS#
SCLK
IO0
4
0
A-3
4
0
IO1
5
1
A-2
5
1
IO2
6
2
A-1
6
2
IO3
7
3
A
7
3
Phase
Instructtion
Address
注意
1. A = 地址的 MSB = A23 (在 HBE 52h 和 CR2V[0] = 0 条件下)或 = A31 (在 HBE 52h 和 CR2V[0] = 1 或 4HBE 53h 条件下)。
2. A[15] = 0 时,将擦除块的第 0-7 扇区; A[15] = 1 时,则擦除块的第 8-15 扇区。
3. A = 地址的 MSB = A23 (在 HBE 52h 和 CR2V[0] = 0 条件下)或 A31 (在 HBE 52h 和 CR2V[0] = 1 或 4HBE 53h 条件下)。
文档编号:002-03823 版本 *A
页 109/143
预览资料
9.6.3
S25FL256L
块擦除 (BE D8h 或 4BE DCh)
块擦除(BE)命令将地址块中的所有位设置为 1(所有字节均为 FFh)。接收块擦除(BE)命令前,器件必须发送写入使能(WREN)
命令并对其进行解码。这样将设置状态寄存器中的写入使能锁存 (WEL)位,以使能所有写入操作。
指令

D8h[CR2V[0] = 0] 先被发送,然后轮到 3 字节地址 (A23-A0)或

D8h[CR2V[0] = 1] 先被发送,然后轮到 4 字节地址 (A31-A0)或

DCh 先被发送,然后轮到 4 字节地址 (A31-A0)
地址的第 24 或第 32 位通过 SI/IO0 锁存在芯片内后,必须将 CS# 信号驱动为逻辑高电平状态。该操作将启动擦除周期,包括预编程
和擦除已选模块的每个扇区。如果锁存地址的最后位后未将 CS# 驱动为高电平,将不执行块擦除操作。
将 CS# 信号驱动为逻辑高电平状态后,将启动内部擦除周期。在内部擦除周期中,用户可以读取正在进行写入操作 (WIP)位的值,
从而检查该操作是否完成。在擦除周期期间, WIP 位将为 “1” ;在擦除周期完成后,该位显示为 “0”。
用于整块的块擦除 (BE)命令不被执行 (该模块通过传统的模块保护、单独模块锁定或指针区域保护得到写入保护) ,而且该命令
将设置 E_ERR 状态。
如果使用块擦除命令,但任意区域或扇区得到保护,那么将不在 64 KB 范围内进行擦除操作,并会设置 E_ERR 状态。
图 9.58 块擦除 (BE D8h 或 4BE DCh)命令序列
CS#
SCK
SI_IO0
7
6
5
4
3
2
1
0
A
1
0
SO_IO1
Phase
Instruction
Address
注意
1. A = 地址的 MSB = A23 (在 BE D8h 和 CR2V[0] = 0 条件下)或 = A31 (在 BE D8h 和 CR2V[0] = 1 或 4BE DCh 条件下)。
2. A = 地址的 MSB = A23 (在 BE D8h 和 CR2V[0] = 0 条件下)或 = A31 (在 BE D8h 和 CR2V[0] = 1 或 4BE DCh 条件下)。
该命令也受 QPI 模式的支持。在 QPI 模式下,指令、地址和数据将通过 IO0-IO3 信号传入到芯片内。
图 9.59 块擦除 (BE D8h 或 4BE DCh)的 QPI 模式命令序列
CS#
SCLK
IO0
4
0
A-3
4
0
IO1
5
1
A-2
5
1
IO2
6
2
A-1
6
2
IO3
7
3
A
7
3
Phase
Instructtion
Address
注意
1. A = 地址的 MSB = A23 (在 BE D8h 和 CR2V[0] = 0 条件下)或 = A31 (在 BE D8h 和 CR2V[0] = 1 或 4BE DCh 条件下)。
2. A = 地址的 MSB = A23 (在 BE D8h 和 CR2V[0] = 0 条件下)或 = A31 (在 BE D8h 和 CR2V[0] = 1 或 4BE DCh 条件下)。
文档编号:002-03823 版本 *A
页 110/143
预览资料
9.6.4
S25FL256L
芯片擦除 (CE 60h 或 C7h)
在整个闪存寄存器阵列中,芯片擦除 (CE)命令将所有位 (均为 FFh)设置为 ‘1’。接收 CE 命令之前,器件必须发送写入使能
(WREN)命令并对其进行解码。该器件也设置状态寄存器中的写入使能锁存 (WEL)命令,以使能所有操作。
指令字节的第 8 位通过 SI/IO0 锁存在芯片内之后,必须将 CS# 信号驱动为逻辑高电平状态。该操作将导致擦除周期发生,该周期包
含对整个闪存存储器阵列的预编程和擦除。如果锁存指令的最后位之后不将 CS# 驱动为高电平,则不会执行 CE 操作。
一将 CS# 信号驱动为逻辑高电平状态,就发生擦除周期。在擦除周期过程中,用户可以读取正在进行写入操作 (WIP)位的值,从
而确定该操作完成的时间。当器件处于擦除周期过程中时, WIP 位将显示为 ‘1’ ;当擦除周期完成后, WIP 则显示为 ‘0’。
当设置遗留块保护、单独块锁定或指针区域保护来保护任何扇区或块时, CE 命令将不被执行,而该操作将设置 E_ERR 状态位。
图 9.60 芯片擦除命令序列
CS#
SCK
SI_IO0
7
6
5
4
3
2
1
0
SO_IO1
Phase
Instruction
该命令也受 QPI 模式的支持。在 QPI 模式下,指令将通过 IO0-IO3 信号传入到芯片内。
图 9.61 QPI 模式下的芯片擦除命令序列
CS#
SCLK
IO0
4
0
IO1
5
1
IO2
6
2
IO3
7
3
Phase
9.6.5
Instruction
编程或擦除挂起 (PES 75h)
通过 PES 命令,系统可中断编程或擦除操作,然后对任何其他非擦除挂起扇区或非编程挂起页进行读取。仅在编程或扇区擦除、半块
擦除或块擦除操作过程中,编程或擦除挂起才有效。而却不可挂起芯片擦除操作。
必须检查状态寄存器 1 (SR1V[0])中的正在进行写入操作 (WIP)位,以了解编程或擦除操作停止的时间。可以使用状态寄存器 2
(SR2[0])中的编程挂起状态位来确定编程操作在 WIP 位改成 ‘0’ 时被挂起还是完成。同样,可以使用状态寄存器 2 (SR2[1])中
的擦除挂起状态位来确定擦除操作已在 WIP 位改成 ‘0’ 时已被挂起还是完成。挂起操作完成所需的时间为 tSL,请参见第 38 页上
的表 5.7 编程或擦除挂起交流参数。
可挂起擦除操作来执行编程操作或读取操作。在擦除挂起过程中,可通过对 IBL 阵列的读取来检查扇区的保护,并可通过对其的写入
来对被编程的扇区进行删除或恢复保护。恢复操作时,保护位不被重新检查,所以所进行的任何修改将不影响操作过程中的电流。
可挂起编程操作来执行读取操作。
在已挂起擦除或编程操作中不允许执行新的挂起操作。在次情况下,忽略挂起命令。
表 9.6 在编程或擦除挂起时可执行的命令
指令名称
指令代码
(十六进制)
在擦除挂起
期间可用
在编程挂起
期间可用
READ
03
X
X
在挂起过程中可执行所有阵列读取操作
RDSR1
05
X
X
用于读取 WIP 以确定挂起过程是否结束
RDAR
65
X
X
读取 WIP 以确定挂起过程结束的其他方法
文档编号:002-03823 版本 *A
注释
页 111/143
预览资料
S25FL256L
表 9.6 在编程或擦除挂起时可执行的命令 (续)
指令名称
指令代码
(十六进制)
在擦除挂起
期间可用
在编程挂起
期间可用
注释
RDSR2
07
X
X
RDCR1
35
X
X
用于读取配置寄存器 1
RDCR2
15
X
X
用于读取配置寄存器 2
用于读取挂起状态来确定操作被挂起还是已经完成。
RDCR3
33
X
X
用于读取配置寄存器 3
RUID
4B
X
X
用于读取唯一 ID
RDID
9F
X
X
用于读取器件 ID
RDQID
AF
X
X
用于四线读取器件 ID
RSFDP
5A
X
X
用于读取 SFDP
SBL
77
X
X
用于设置突发长度
WREN
06
X
X
用于执行擦除挂起期间所发出的编程命令
WRDI
04
X
X
用于执行擦除挂起期间所发出的编程命令
PP
02
X
用于执行擦除挂起期间的阵列编程操作。仅在无编程挂起操作时有效 (SR2V[0] = 0)。存在某
一挂起编程操作时,编程命令均被忽略。如果将编程命令发送到擦除挂起扇区中某个位置,则
编程操作失败,并将 P_ERR 位置为 1。
4PP
12
X
用于执行擦除挂起期间的阵列编程操作。仅在无编程挂起操作时有效 (SR2V[0] = 0)。存在某
个挂起编程操作时,编程命令均被忽略。如果将编程命令发送到擦除挂起扇区中某个位置,则
编程操作失败,并将 P_ERR 位置为 1。
QPP
32
X
用于执行擦除挂起期间的阵列编程操作。仅在无编程挂起操作时有效 (SR2V[0] = 0)。存在某
个挂起编程操作时,编程命令均被忽略。如果将编程命令发送到擦除挂起扇区中某个位置,则
编程操作失败,并将 P_ERR 位置为 1。
4QPP
34
X
用于执行擦除挂起期间的阵列编程操作。仅在无编程挂起操作时有效 (SR2V[0] = 0)。存在某
个挂起编程操作时,编程命令均被忽略。如果将编程命令发送到擦除挂起扇区中某个位置,则
编程操作失败,并将 P_ERR 位置为 1。
4READ
13
X
X
在挂起过程中可执行所有阵列读取操作
CLSR
30
X
X
擦除挂起期间,如果编程操作失败,则可能需要清除状态。
EPR
7A
X
X
用于从擦除或编程挂起恢复。
RSTEN
66
X
X
复位可随时发生
RST
99
X
X
复位可随时发生
FAST_READ
0B
X
X
在挂起过程中可执行所有阵列读取操作
4FAST_READ
0C
X
X
在挂起过程中可执行所有阵列读取操作
DOR
3B
X
X
在挂起过程中可执行所有阵列读取操作
4DOR
3C
X
X
在挂起过程中可执行所有阵列读取操作
DIOR
BB
X
X
在挂起过程中可执行所有阵列读取操作
4DIOR
BC
X
X
在挂起过程中可执行所有阵列读取操作
IBLRD
3D
X
X
擦除挂起期间,可能需要移除和恢复单独块锁定,以便执行编程操作。
4IBLRD
E0
X
X
擦除挂起期间,可能需要移除和恢复单独块锁定,以便执行编程操作。
IBL
36
X
X
擦除挂起期间,可能需要恢复单独块锁定,以便执行编程操作。
4IBL
E1
X
X
擦除挂起期间,可能需要恢复单独块锁定,以便执行编程操作
IBUL
39
X
X
擦除挂起期间,可能需要移除单独块锁定,以便执行编程操作。
4IBUL
E2
X
X
擦除挂起期间,可能需要移除单独块锁定,以便执行编程操作。
QOR
6B
X
X
四线读取输出 (3 或 4 字节地址) (1)
4QOR
6C
X
X
四线读取输出 (4 字节地址)(1)
QIOR
EB
X
X
在挂起过程中可执行所有阵列读取操作 (1)
4QIOR
EC
X
X
在挂起过程中可执行所有阵列读取操作 (1)
DDRQIOR
ED
X
X
在挂起过程中可执行所有阵列读取操作 (1)
DDR4QIOR
ED
X
X
在挂起过程中可执行所有阵列读取操作 (1)
MBR
FF
X
X
在挂起过程中可用于复位读取操作
文档编号:002-03823 版本 *A
页 112/143
预览资料
S25FL256L
表 9.6 在编程或擦除挂起时可执行的命令 (续)
指令名称
指令代码
(十六进制)
在擦除挂起
期间可用
SECRP
42
X
SECRR
48
X
在编程挂起
期间可用
注释
在擦除挂起过程中可执行所有安全区域编程操作
X
在挂起过程中可执行所有安全区域读取操作
注意:
1. 对于所有四线命令,由于挂起状态中不允许执行 WRR/WRAR 命令,所以初始化编程或擦除操作之前,需要将四线使能 CR1V[1] 位 (请参见第 52 页上的表 7.7)设置
为 ‘1’。
在擦除或编程挂起过程中,不允许执行第 111 页上的表 9.6 在编程或擦除挂起时可执行的命令中不包含的所有命令。在擦除或编程挂
起过程中,不允许执行 WRR、 WRAR 或 SPRP 命令,因此,在擦除挂起时不能改变遗留块保护位或指针区域保护位。
读取擦除挂起扇区或编程挂起页中的任何地址都会生成不确定的数据。
擦除挂起模式下的编程操作完成后,器件返回擦除挂起模式。系统可以通过读取状态寄存器的 WIP 位来确定编程操作的状态,同在执
行标准编程操作一样。
图 9.62 编程或擦除挂起命令序列
CS#
SCK
SI_IO0
7
6
5
4
3
2
1
0
SO_IO1
Phase
Instruction
该命令也受 QPI 模式的支持。在 QPI 模式下,通过 IO0-IO3 信号将指令传入到器件内。
图 9.63 QPI 模式下编程或擦除挂起的命令序列
CS#
SCLK
IO0
4
0
IO1
5
1
IO2
6
2
IO3
7
3
Phase
Instruction
图 9.64 带有连续命令序列的编程或擦除挂起命令
tSL
CS#
SCK
SI_IO0
7 6 5 4 3 2 1 0
SO
Phase
7 6 5 4 3 2 1 0
7 6 5 4 3 2 1 0
7 6 5 4 3 2 1 0
Suspend Instruction
Phase
文档编号:002-03823 版本 *A
Read Status Instruction
Status
Instr. During Suspend
Repeat Status Read Until Suspended
页 113/143
预览资料
9.6.6
S25FL256L
擦除或编程恢复 (EPR 7Ah)
编程或读取操作完成后,在编程或擦除挂起过程中,器件将发送擦除或编程恢复命令,以便继续执行被挂起的操作。
发送擦除或编程恢复命令后,状态寄存器中的 WIP 位将被设置为 ‘1’,并且被挂起的操作将恢复 (若它被挂起)。如果没有任何被
挂起的编程或擦除操作,将忽略恢复命令。
编程和擦除操作可以根据需要被中断。例如,执行编程挂起命令后可立即执行编程恢复命令。但为了正常完成编程或擦除操作,恢复
和下一次挂起指令之间的时间不能小于 tRNS。请参见第 38 页上的表 5.7 编程或擦除挂起交流参数。
可以使用状态寄存器 2 (SR2[0])中的编程挂起状态位来确定编程操作已被挂起还是已在 WIP 位改成 ‘0’ 时完成。同样,可以使
用状态寄存器 2 (SR2[1])中的擦除挂起状态位来确定擦除操作被挂起还是已在 WIP 位改成 ‘0’ 时完成。请参见第 50 页上的
7.6.1.3,状态寄存器 2 易失性 (SR2V)。
器件必须写入擦除或编程恢复命令来恢复被挂起的操作。
图 9.65 擦除或编程恢复的命令序列
CS#
SCK
SI_IO0
7
6
5
4
3
2
1
0
SO_IO1
Phase
Instruction
该命令也受 QPI 模式的支持。在 QPI 模式下,通过 IO0-IO3 信号将指令传入到器件内。
图 9.66 QPI 模式下擦除或编程恢复的命令序列
CS#
SCLK
IO0
4
0
IO1
5
1
IO2
6
2
IO3
7
3
Phase
9.7
Instruction
安全区域阵列命令
通过安全区域命令可以选择地址 A15 到 A8 将使用的区域,具体如下所示。

安全区域 0:A23-16 = 00h ; A15-8 = 00h ; A7-0 = 字节地址

安全区域 1:A23-16 = 00h ; A15-8 = 01h ; A7-0 = 字节地址

安全区域 2:A23-16 = 00h ; A15-8 = 02h ; A7-0 = 字节地址

安全区域 3:A23-16 = 00h ; A15-8 = 03h ; A7-0 = 字节地址
9.7.1
安全区域擦除 (SECRE 44h)
通过使用安全区域擦除命令来擦除安全区域中的数据,该安全区域和主阵列数据的地址空间不一样。安全区域大小为 1024 个字节,
因此,该命令的地址位 (A24 到 A10)必须为 0。可以单独擦除每个区域。欲了解安全区域的详细信息,请参考第 47 页上的 7.5,
安全区域地址空间。
接收安全区域擦除命令前,器件必须发送写入使能 (WREN)命令并对其进行解码。这样将设置状态寄存器中的写入使能锁存
(WEL)位,从而使能所有写入操作。通过检查 SR1V 中的 WIP 位,可以确定该操作是否完成。同样,通过检查 SR2V 中的
E_ERR 位,可以确定在操作过程中是否发生了任何错误。
通过使用配置寄存器 1 中的安全区域锁定位 (CR1NV[2-5]),可以防止擦除安全区域。一旦将锁定位设置为 1,将永久锁定相应的
安全区域。尝试擦除被锁定的区域时,会引起结果失败,而且 SR2V[6] 中的 E_ERR 位被设置为 “1”。
文档编号:002-03823 版本 *A
页 114/143
预览资料
S25FL256L
当保护寄存器的 NVLOCK 位为 “0” 时,将不能对安全区域 2 和 3 进行编程或擦除操作。尝试擦除被锁定的区域时,将导致结果失
败,而且 SR2V[6] 中的 E_ERR 位被设置为 “1”。请参见第 73 页上的 8.7.2.1, NVLOCK 位 (PR[0])。
密码保护模式的锁定位 (IRP[2])防止对区域 2 和区域 3 进行擦除操作,直到提供一个正确的密码来擦除这些安全区域为止。尝试
擦除用密码锁定的区域时,将导致失败结果,而且 SR2V[6] 中的 E_ERR 位被设置为 “1”。请参见 第 74 页上的安全区域读取密码
保护。
安全区域擦除命令和扇区擦除命令使用相同的协议。欲了解命令序列,请参见第 108 页上的 9.6.1,扇区擦除 (SE 20h 或 4SE
21h)。支持 QPI 模式。
9.7.2
安全区域编程 (SECRP 42h)
通过使用安全区域编程命令来编程安全区域中的数据,该安全区域和主阵列数据的地址空间不一样。安全区域大小为 1024 个字节,
因此,该命令的地址位 (A24 到 A10)必须为 0。欲了解安全区域的详细信息,请参考第 47 页上的 7.5,安全区域地址空间。
接收安全区域编程命令前,器件必须发送写入使能(WREN)命令并对其进行解码。这样将设置状态寄存器中的写入使能锁存(WEL)
位,以使能所有写入操作。通过检查 SR1V 中的 WIP 位可以确定该操作是否完成。同样,通过检查 SR2V 中的 P_ERR 位可以确定在
操作过程中是否发生了任何错误。
为了以位粒度程度仔细编程安全区域阵列,可将数据字节中的剩下位设置为 “1”。
如果该区域不被锁定,则可对安全区域的存储器空间进行一次或多次编程。然而,要想获得最佳的数据完整性,建议将一个或多个 16
字节长度和字节的对齐组一起编程,并且在每一区域的擦除操作之间只编程一次。
通过使用配置寄存器 1 中的安全区域锁定位 (CR1NV[2-5]),可以防止编程安全区域。一旦将锁定位设置为 1,就永久性锁定的相应
的安全区域。尝试将 0 或 1 编程到被锁定 (受保护)的区域时,将导致结果失败,而且 SR2V[5] 中的 P_ERR 位被设置为 “1”。将
1 编程到未受保护的区域时,不会导致错误,也不会设置 P_ERR 位。(请参考 第 51 页上的配置寄存器 1,以了解详细的说明)。
当保护寄存器的 NVLOCK 位为 “0” 时,将不能对安全区域 2 和 3 进行编程或擦除操作。尝试编程被锁定的区域时,将导致失败结
果,而且 SR2V[5] 中的 P_ERR 位被设置为 “1”。请参见第 73 页上的 8.7.2.1, NVLOCK 位 (PR[0])。
密码保护模式的锁定位 (IRP[2])防止对区域 2 和区域 3 进行编程操作,直到提供一个正确的密码来编程安全区域为止。尝试编程用
密码锁定的区域时,将导致失败结果,而且 SR2V[5] 中的 P_ERR 位被设置为 “1”。请参见 第 73 页上的密码保护模式。
安全区域编程命令和页编程命令使用相同的协议。欲了解指令序列,请参见第 106 页上的 9.5.1.1,页编程。支持 QPI 模式。
9.7.3
安全区域读取 (SECRR 48h)
安全区域读取 (SECRR)命令提供了从安全区域读取数据的方法。安全区域大小为 1024 个字节,因此,该命令的地址位 (A24 到
A10)必须为 0。欲了解安全区域的详细信息,请参见第 47 页上的 7.5,安全区域地址空间。
该指令后面是 3 或 4 字节地址 (取决于地址长度配置 CR2V[0]),最后是由 CR3V[3:0] 指定的延迟 (虚拟)周期数量。这样将返回
选定的寄存器数据。当读取完安全区域地址的最大值后,安全区域读取命令的协议将不会返回到起始地址;相反,超出最大地址的数
据将是不确定的。安全区域读取命令的读取延迟由 CR3V[3:0] 决定的延迟值设置。
安全区域读取的密码模式的使能位 (IRP[6])防止对区域 3 进行读取操作,直到提供一个正确的密码来使能这些安全区域的读取操
作为止。尝试读取密码被锁定的区域时,将返回无效和未定义的数据。请参见 第 74 页上的安全区域读取密码保护。
图 9.67 安全区域的读取命令序列
CS#
SCK
SI_IO0
7
6
5
4
3
2
1
0
A
1
0
SO_IO1
Phase
7
Instruction
Address
Dummy Cycles
6
5
4
3
2
1
0
Data 1
注意
1. A = 地址的 MSB = 23 (在地址长度 (CR2V[0] = 0 条件下)或 = 31 (在 CR2V[0] = 1 条件下)。
该命令也受 QPI 模式的支持。在 QPI 模式下,指令和地址将通过 IO0-IO3 信号传入到芯片内,同时返回的数据被传出。
文档编号:002-03823 版本 *A
页 115/143
预览资料
S25FL256L
图 9.68 QPI 模式下的安全区域读取命令序列
CS#
SCLK
IO0
4
0
A-3
4
0
4
0
4
0
4
0
4
0
IO1
5
1
A-2
5
1
5
1
5
1
5
1
5
1
IO2
6
2
A-1
6
2
6
2
6
2
6
2
6
2
IO3
7
3
A
7
3
7
3
7
3
7
3
7
3
Phase
Instruct.
Address
Dummy
D1
D2
D3
D4
注意
1. A = 地址的 MSB = 23 (在 CR2V[0] = 0 条件下)或 = 31 (在 CR2V[0] = 1 条件下)。
9.8
单块锁定命令
要想使用单块锁定,在配置寄存器 2 中,必须将 WPS 位设置为 CR2V[2] = 1,以选定 IBL 保护方案。如果 CR2V[2] = 0 就不选择
IBL 保护方案,则会忽略 IBL 命令。
单块锁定位 (IBL)均是易失性的,其中每一位用于一个扇区 / 块,并且可被单独修改。通过发送 IBL 或 GBL 命令,可将 IBL 位设
置为 ‘0’,从而能保护相关的每一个扇区 / 块。通过发送 IBUL 或 GUL 命令,可将 IBL 位清除成 ‘1’,从而解除相关的每一个扇
区 / 块的保护。通过发送 IBLRD 命令,可以读取每个 IBL 位保护的状态。
9.8.1
IBL 读取 (IBLRD 3Dh 或 4IBLRD E0h)
通过发送 IBLRD/4IBLRD 命令,可以读取每个 IBL 位保护的状态。
指令在 SCK 信号的上升沿上被锁存在 SI 中。先读取命令,然后锁存 24 位或 32 位地址 (地址的长度取决于配置寄存器 2 中的
CR2V[0] 值),在所需扇区中选择位置 0。
然后, 8 位 IBL 访问寄存器内容将通过串行输出 SO/IO1 被移出。在 SCK 频率下,在 SCK 信号的下降沿上移出每个位。通过提供 8
个时钟周期的倍数,可以连续读取相同的 IBL 访问寄存器。 IBL 寄存器的地址不增加,所以这不是读取整个 IBL 阵列的方法。必须通
过一个单独 IBL 读取命令读取每个位置。
图 9.69 IRPRD 命令序列
CS#
SCK
SI_IO0
7
6
5
4
3
2
1
0
A
1
0
SO_IO1
Phase
7
Instruction
Address
6
Dummy Cycles
5
4
3
2
1 0
Output IBL
注意
1. A = 地址的 MSB = 23 (在地址长度 (CR2V[0] = 0 条件下)或 = 31 (在 CR2V[0] = 1 和命令 3Dh 条件下)。
2. A = 地址的 MSB = 31 (在命令 E0h 的条件下)。
该命令也受 QPI 模式的支持。在 QPI 模式下,通过 IO0-IO3 信号传入指令和地址及返回数据。
文档编号:002-03823 版本 *A
页 116/143
预览资料
S25FL256L
图 9.70 QPI 模式下的 IRPRD 命令序列
CS#
SCLK
IO0
4
0
A-3
4
0
4
0
4
0
IO1
5
1
A-2
5
1
5
1
5
1
IO2
6
2
A-1
6
2
6
2
6
2
IO3
7
3
A
7
3
7
3
7
3
Phase
Instruct.
Address
Dummy
IBL
Repeat IBL
注意
1. A = 地址的 MSB = 23 (在地址长度 (CR2V[0] = 0 条件下)或 = 31 (在 CR2V[0] = 1 和命令 3Dh 条件下)。
2. A = 地址的 MSB = 31 (在命令 E0h 的条件下)。
9.8.2
IBL 锁定 (IBL 36h 或 4IBL E1h)
IBL/4IBL 命令将 IBL 位设置为 “0”,以保护相关的每个扇区 / 块。
通过将 CS# 信号驱动为逻辑低电平状态,然后传送指令,最后传送 24 位或 32 位地址 (地址的长度取决于配置寄存器 2 中的
CR2V[0] 值),可以输入 IBL 命令。与所有其他编程操作相同, IBL 命令也会影响状态和配置寄存器的 WIP 位。
锁存 24 位或 32 位地址 (地址的长度取决于配置寄存器 2 中的 CR2V[0] 值)后,必须将 CS# 信号驱动为逻辑高电平状态。 CS# 被
驱动为逻辑高电平状态时,会立即启动自定时 IBL 操作。在执行 IBL 操作的过程中,可以读取状态寄存器以检查正在进行写入操作
(WIP)位的值。执行自定时 IBL 操作期间,正在进行写入操作 (WIP)位为 “1” ;完成该操作时, WIP 位为 “0”。
图 9.71 IBL 命令序列
CS#
SCK
SI_IO0
7
6
5
4
3
2
1
0
A
1
0
SO_IO1
Phase
Instruction
Address
注意
1. A = 地址的 MSB = 23 (在地址长度 (CR2V[0] = 0 条件下)或 = 31 (在 CR2V[0] = 1 和命令 36h 条件下)。
2. A = 地址的 MSB = 31 (在命令 E1h 的条件下)。
该命令也受 QPI 模式的支持。在 QPI 模式下,指令、地址和数据将通过 IO0-IO3 信号传入到芯片内。
图 9.72 QPI 模式下的 IBL 命令序列
CS#
SCLK
IO0
4
0
A-3
4
0
IO1
5
1
A-2
5
1
IO2
6
2
A-1
6
2
IO3
7
3
A
7
3
Phase
Instructtion
Address
注意
1. A = 地址的 MSB = 23 (在地址长度 (CR2V[0] = 0 条件下)或 = 31 (在 CR2V[0] = 1 和命令 36h 条件下)。
2. A = 地址的 MSB = 31 (在命令 E1h 的条件下)。
文档编号:002-03823 版本 *A
页 117/143
预览资料
9.8.3
S25FL256L
IBL 解锁 (IBUL 39h 或 4IBUL E2h)
IBUL/4IBUL 命令将已选定的 IBL 位清除成 “1”,以取消相关每一扇区 / 块的保护。
通过将 CS# 信号驱动为逻辑低电平状态,然后锁存指令,最后锁存 24 位或 32 位地址 (地址的长度取决于配置寄存器 2 中的
CR2V[0] 值),可以输入 IBUL 命令。与所有其他编程操作相同, IBUL 命令也会影响状态和配置寄存器的 WIP 位。
锁存 24 位或 32 位地址 (地址的长度取决于配置寄存器 2 中的 CR2V[0] 值)后,必须将 CS# 信号驱动为逻辑高电平状态。将 CS#
驱动为逻辑高电平状态时,会立即启动自定时 IBL 操作。在执行 IBUL 操作的过程中,可以读取状态寄存器以检查正在进行写入操作
(WIP)位的值。执行自定时 IBUL 操作期间,正在进行写入操作 (WIP)位为 “1” ;完成该操作时, WIP 位为 “0”。
图 9.73 IBUL 命令序列
CS#
SCK
SI_IO0
7
6
5
4
3
2
1
0
A
1
0
SO_IO1
Phase
Instruction
Address
注意
1. A = 地址的 MSB = 23 (在地址长度 (CR2V[0] = 0 条件下)或 = 31 (在 CR2V[0] = 1 和命令 39h 条件下)。
2. A = 地址的 MSB = 31 (在命令 E2h 的条件下)。
该命令也受 QPI 模式的支持。在 QPI 模式下,指令和地址将通过 IO0-IO3 信号传入到芯片内。
图 9.74 QPI 模式下的 IBUL 命令序列
CS#
SCLK
IO0
4
0
A-3
4
0
IO1
5
1
A-2
5
1
IO2
6
2
A-1
6
2
IO3
7
3
A
7
3
Phase
Instructtion
Address
注意
1. A = 地址的 MSB = 23 (在地址长度 (CR2V[0] = 0 条件下)或 = 31 (在 CR2V[0] = 1 和命令 39h 条件下)。
2. A = 地址的 MSB = 31 (在命令 E2h 的条件下)。
9.8.4
全局 IBL 锁定 (GBL 7Eh)
GBL 命令将所有 IBL 位清除为 ‘0’,以保护所有扇区 / 块。
指令字节的第 8 位通过 SI 被锁存在芯片内之后,必须将 CS# 信号驱动为逻辑高电平状态。该操作将启动 GBL 命令。如果锁存指令
的最后位之后不将 CS# 驱动为高电平,则将不执行 GBL 操作。
将 CS# 驱动为逻辑高电平状态时,会立即启动 GBL 操作。在执行 GBL 操作过程中,用户可以读取正在进行写入操作 (WIP)位的
值,以确定该操作是否完成。在执行 GBL 操作期间, WIP 位将显示为 ‘1’ ;该操作结束时, WIP 位则显示为 ‘0’。
文档编号:002-03823 版本 *A
页 118/143
预览资料
S25FL256L
图 9.75 全局 IBL 锁定 (GBL)命令序列
CS#
SCK
SI_IO0
7
6
5
4
3
2
1
0
SO_IO1
Phase
Instruction
该命令也受 QPI 模式的支持。在 QPI 模式下,指令将通过 IO0-IO3 信号传入到芯片内。
图 9.76 QPI 模式下的全局 IBL 锁定 (GBL)命令序列
CS#
SCLK
IO0
4
0
IO1
5
1
IO2
6
2
IO3
7
3
Phase
9.8.5
Instruction
全局 IBL 解锁 (GBUL 98h)
GBUL 命令将所有 IBL 位清除为 ‘1’,从而取消所有扇区 / 块的保护。
指令字节的第 8 位通过 SI 锁存在芯片内之后,必须将 CS# 信号驱动为逻辑高电平状态。该操作将启动 GBUL 命令。如果锁存指令
最后位结束后未将 CS# 驱动为高电平,便不会执行 GBL 操作。
将 CS# 驱动为逻辑高电平状态时,会立即启动 GBL 操作。在执行 GBL 操作过程中,用户可以读取正在进行写入操作 (WIP)位的
值,以确定该操作是否完成。在执行 GBUL 操作期间, WIP 位将显示为 ‘1’ ;该操作结束时, WIP 位则显示为 ‘0’。
图 9.77 全局 IBL 解锁 (GBUL)命令序列
CS#
SCK
SI_IO0
7
6
5
4
3
2
1
0
SO_IO1
Phase
Instruction
该命令也受 QPI 模式的支持。在 QPI 模式下,指令将通过 IO0-IO3 信号传入到芯片内。
图 9.78 QPI 模式下的全局 IBL 解锁 (GBUL)命令序列
CS#
SCLK
IO0
4
0
IO1
5
1
IO2
6
2
IO3
7
Phase
文档编号:002-03823 版本 *A
3
Instruction
页 119/143
预览资料
9.9
S25FL256L
指针区域命令
9.9.1
设置指针区域保护 (SPRP FBh 或 4SPRP E3h)
在挂起状态期间,将忽略 SPRP 或 4SPRP 命令。这是因为在挂起状态下不可擦除或重新编程指针值。
如果默认电源的锁定保护 NVLOCK PR[0] = 0 或电源锁定保护使能 IRP[1] = 0 或密码保护使能 IRP[2] = 0 和 NVLOCK PR[0] = 0,则
忽略 SPRP 或 4SPRP 命令。
S25FL256L 器件必须使能 4 字节地址 (CR2V[0] = 1),以设置指针区域保护寄存器 PRPR (请参考 第 60 页上的 7.6.9 节),这样
才能确保 A24 和 A25 被正确设置。 接收 SPRP 或 4SPRP 命令之前,器件必须发送写入使能 (WREN)命令。成功解码写入使能
(WREN)命令后,器件将设置状态寄存器中的写入使能锁存 (WEL)位,以使能任意写入操作。
通过将 CS# 信号驱动为逻辑低电平状态,然后传送指令,最后再传送 24 位或 32 位地址(地址的长度取决于配置寄存器 2 中的 CR2V[0]
值),可以输入 SPRP 或 4SPRP 命令。请参见 第 69 页上的指针区域保护 (PRP)以了解地址值的详细信息,从而选择保护选项。
锁存地址最后位结束后,必须将 CS# 驱动为逻辑高电平状态。否则,不能执行 SPRP 命令。将 CS# 驱动为逻辑高电平状态时,会立
即启动自定时 SPRP 操作。在执行 SPRP 操作的过程中,可以读取状态寄存器,以检查正在进行写入操作 (WIP)位上的值。执行
自定时 SPRP 操作期间,正在进行写入操作 (WIP)位为 ‘1’ ;完成该操作时, WIP 位为 ‘0’。完成 SPRP 操作时,写入使能
锁存 (WEL)位将被设置为 “0”。如果设置指针区域保护操作失败, SPRP 或 4SPRP 命令将设置 P_ERR 或 E_ERR 位。
欲了解用于定义存储器中受保护和不受保护区域间扇区边界的地址指针的详细信息,请参见 第 69 页上的指针区域保护
(PRP)。
图 9.79 SPRP 命令序列
CS#
SCK
SI_IO0
7
6
5
4
3
2
1
0
A
1
0
SO_IO1
Phase
Instruction
Address
注意
1. A = 地址的 MSB = 23 (在地址长度 (CR2V[0] = 0 条件下)或 31 (在 CR2V[0] = 1 和命令 FDh 条件下)。
2. A = 地址的 MSB = 31 (在命令 E3h 的条件下)。
该命令也受 QPI 模式的支持。在 QPI 模式下,指令和地址将通过 IO0-IO3 信号传入到芯片内。
图 9.80 QPI 模式下的 SPRP 命令序列
CS#
SCLK
IO0
4
0
A-3
4
0
IO1
5
1
A-2
5
1
IO2
6
2
A-1
6
2
IO3
7
3
A
7
3
Phase
Instructtion
Address
注意
1. A = 地址的 MSB = 23 (在地址长度 (CR2V[0] = 0 条件下)或 31 (在 CR2V[0] = 1 和命令 FDh 条件下)。
2. A = 地址的 MSB = 31 (在命令 E3h 的条件下)。
文档编号:002-03823 版本 *A
页 120/143
预览资料
9.10
9.10.1
S25FL256L
单独和区域保护 (IRP)命令
IRP 寄存器读取 (IRPRD 2Bh)
在 SCK 信号的上升沿上,将 IRP 寄存器读取命令 2Bh 转移给 SI/IO0 ,转移完成后存在一个虚拟周期。器件的内部电路需要该延迟
周期以进行访问初始地址的数据。在这些延迟周期内, IO0-IO3 上的数据值为 “ 无需关注项 ”,该值可能为高阻抗。
然后,在串行输出 S0/IO1 上移出 16 位 IRP 寄存器的内容,最低有效字节优先。在 SCK 频率下,会在 SCK 的下降沿上移出每一
位。通过提供 16 时钟周期的倍数,可以连续读取 IRP 寄存器。
图 9.81 IRPRD 命令序列
CS#
SCK
SI_IO0
7
6
5
4
3
2
1
0
SO_IO1
Phase
7
Instruction
DY
6
5
4
3
2
1
0
7
Output IRP Low Byte
6
5
4
3
2
1
0
Output IRP High Byte
在 QPI 模式下,器件也支持该命令。在 QPI 模式下,通过 IO0-IO3 信号传入指令及传出返回的数据。
图 9.82 IRPRD 命令序列 — QPI 模式
CS#
SCLK
IO0
4
0
4
0
4
0
IO1
5
1
5
1
5
1
IO2
6
2
6
2
6
2
IO3
7
3
7
3
7
3
Phase
9.10.2
Instruct.
Dummy
IRP Low Byte
IRP High Byte
IRP 编程 (IRPP 2Fh)命令
接受 IRP 编程 (IRPP)命令前,器件必须发送写使能 (WREN)命令。对写使能 (WREN)命令进行解码后,器件将设置状态寄
存器中的写使能锁存 (WEL)位以使能所有写入操作。
通过将 CS# 驱动为逻辑低电平状态,可以输入 IRPP 命令,然后输入 SI 上的指令和两个数据字节,最低有效字节优先。 IRP 寄存器
的长度为两个数据字节。
与所有其他编程操作相同, IRPP 命令也会影响状态和配置寄存器的 P_ERR 和 WIP 位。
数据字节的第十六位被锁存后,必须将 CS# 驱动为逻辑高电平状态。否则,不能执行 IRPP 命令。 CS# 被驱动为逻辑高电平状态
时,会立即启动自定时 IRPP 操作。在执行 IRPP 操作的过程中,可以读取状态寄存器以检查正在写入 (WIP)位的值。执行自定时
IRPP 操作期间,正在写入 (WIP)位为 ‘1’ ;完成该操作时, WIP 位为 ‘0’。完成 IRPP 操作时,写使能锁存 (WEL)位将被
设为 ‘0’。
文档编号:002-03823 版本 *A
页 121/143
预览资料
S25FL256L
图 9.83 IRP 编程 (IRPP)命令
CS#
SCK
SI_IO0
7
6
5
4
3
2
1
0
7
6
5
4
3
2
1
0
7
6
5
4
3
2
1
0
SO_IO1
Phase
Instruction
Input IRP Low Byte
Input IRP High Byte
在 QPI 模式下,器件也支持该命令。在 QPI 模式下,通过 IO0-IO3 信号将指令和数据传入到芯片内。
图 9.84 IRP 编程 (IRPP)命令 QPI 模式
CS#
SCLK
IO0
4
0
4
0
C
8
IO1
5
1
5
1
D
9
IO2
6
2
6
2
E
A
IO3
7
3
7
3
F
B
Phase
9.10.3
Instruct.
IRP Low Byte
IRP High Byte
保护寄存器读取 (PRRD A7h)命令
使用保护寄存器读取 (PRRD)命令可以从 SO/IO1 读取保护寄存器内容。在 SCK 信号的上升沿上,将读取指令 A7h 传入到 SI 内,
传入完成后存在一个虚拟周期。器件的内部电路需要该延迟周期以进行访问初始地址中的数据。在这些延迟周期内, IO0-IO3 上的数
值为 “ 无需关注项 ”,该值可能为高阻抗。
然后,通过串行输出 SO/IO1 被移出 8 位保护寄存器的内容。在 SCK 频率下,在 SCK 的下降沿上移出每个位。通过提供 8 时钟周期
的倍数,可以连续读取保护寄存器。
如果器件处于待机状态并不在执行任何其他操作,则仅能读取保护寄存器中的内容。
图 9.85 保护寄存器读取 (PRRD)命令序列
CS#
SCK
SI_IO0
7
6
5
4
3
2
1
0
SO_IO1
Phase
7
Instruction
DY
6
5
4
3
2
Register Read
1
0
7
6
5
4
3
2
1
0
Repeat Register Read
在 QPI 模式下,器件也支持该命令。在 QPI 模式下,通过 IO0-IO3 信号将指令传入到芯片内,同时传出返回的数据。
文档编号:002-03823 版本 *A
页 122/143
预览资料
S25FL256L
图 9.86 保护寄存器读取 (PRRD)命令序列 — QPI 模式
CS#
SCLK
IO0
4
0
4
0
4
0
IO1
5
1
5
1
5
1
IO2
6
2
6
2
6
2
IO3
7
3
7
3
7
3
Phase
9.10.4
Instruct.
Dummy
Register Read
Register Read
保护寄存器锁定 (PRL A6h)命令
保护寄存器锁定 (PRL)命令会将 NVLOCK 位 (PR[0])清除为 0 并将 IRP[6] 值载入到 SECRRP (PR[6])内。请参见第 59 页上
的 7.6.7,保护寄存器 (PR)。接收 PRL 命令前,器件必须发送写使能 (WREN)命令并对其进行解码。器件也设置状态寄存器中
的写使能锁存 (WEL)位以使能所有写入操作。
通过将 CS# 驱动为逻辑低电平状态,可以输入 PRL 命令,然后输入指令。
指令的第 8 位被锁存后,必须将 CS# 信号驱动为逻辑高电平状态。否则,不能执行 PRL 命令。 CS# 被驱动为逻辑高电平状态时,会
立即启动自定时 PRL 操作。在执行 PRL 操作的过程中,还可以读取状态寄存器,以检查正在写入 (WIP)位上的值。执行自定时
PRL 操作期间,正在写入 (WIP)位为 ‘1’ ;完成该操作时, WIP 位为 ‘0’。完成 PRL 操作时,写使能锁存 (WEL)位将被设
置为 ‘0’。
图 9.87 保护寄存器锁定 (PRL)命令序列
CS#
SCK
SI_IO0
7
6
5
4
3
2
1
0
SO_IO1
Phase
Instruction
在 QPI 模式下,器件也支持该命令。在 QPI 模式下,指令将通过 IO0-IO3 信号传入到芯片内。
图 9.88 保护寄存器锁定 (PRL)命令序列 — QPI 模式
CS#
SCLK
IO0
4
0
IO1
5
1
IO2
6
2
IO3
7
3
Phase
文档编号:002-03823 版本 *A
Instruction
页 123/143
预览资料
9.10.5
S25FL256L
密码读取 (PASSRD E7h)命令
仅在编程正确密码值后且通过在 IRP 寄存器 (IRP[2])中将密码保护模式位编程为 ‘0’ 来选定密码模式前,才能读取正确密码值。
选定密码保护模式后,密码不再可读,此时 PASSRD 命令将输出未定义的数据。
PASSRD 命令被传入 SI,传入完成后存在一个虚拟周期。器件的内部电路需要该延迟周期用于进行访问初始地址的数据。在这些延
迟周期内, IO0-IO3 上的数据值为 “ 无需关注项 ”,该值可能为高阻抗。
然后,在串行输出 SO/IO1 上移出 64 位密码,并且为最低有效字节优先,每个字节的最高有效位优先。在 SCK 频率下,在 SCK 的
下降沿上移出每一位。通过提供 64 时钟周期的倍数,可以连续读取密码。
图 9.89 密码读取 (PASSRD)命令序列
CS#
SCK
SI_IO0
7
6
5
4
3
2
1
0
SO_IO1
7
6
5
4
3
2
1
0
7
6
5
4
3
2
1
0
IO2-IO3
Phase
Instruction
DY
Data 1
Data 8
在 QPI 模式下,器件也支持该命令。在 QPI 模式下,通过 IO0-IO3 信号将指令传入到芯片内,同时传出返回的数据。
图 9.90 密码读取 (PASSRD)命令序列 — QPI 模式
CS#
SCLK
IO0
4
0
4
0
4
0
4
0
IO1
5
1
5
1
5
1
5
1
IO2
6
2
6
2
6
2
6
2
IO3
7
3
7
3
7
3
7
3
Phase
9.10.6
Instruct.
Dummy
Data 1
Data 8
密码编程 (PASSP E8h)
接受密码编程 (PASSP)命令前,器件必须发送写使能 (WREN)命令并对其进行解码。对写使能 (WREN)命令进行解码后,器
件将设置状态寄存器中的写使能锁存 (WEL)位以使能 PASSP 操作。
仅当通过在 IRP 寄存器(IRP[2])中将密码保护模式位编程为 ‘0’ 来选定密码模式前,才能编程密码。选定密码保护模式后,PASSP
命令将被忽略。
通过将 CS# 驱动为逻辑低电平状态,可以输入 PASSP 命令,然后输入 SI/IO0 上的指令和密码数据字节,最低有效字节优先,每个
字节的最高有效位优先。密码的长度为六十四 (64)位。
数据字节的第六十四 (64)位被锁存后,必须将 CS# 驱动为逻辑高电平状态。否则,不能执行 PASSP 命令。 CS# 被驱动为逻辑高
电平状态时,会立即启动自定时 PASSP 操作。在执行 PASSP 操作的过程中,可以读取状态寄存器以检查正在写入(WIP)位的值。
执行自定时 PASSP 操作期间,正在写入 (WIP)位为 ‘1’ ;完成该操作时, WIP 位为 ‘0’。 PASSP 命令可以报告状态寄存器
中 P_ERR 位的发生编程错误。完成 PASSP 操作时,写使能锁存 (WEL)位将被设置为 ‘0’。
文档编号:002-03823 版本 *A
页 124/143
预览资料
S25FL256L
图 9.91 密码编程 (PASSP)命令序列
CS#
SCK
SI_IO0
7
6
5
4
3
2
1
0
7
6
5
4
3
2
1
0
7
6
5
4
3
2
1
0
SO_IO1
Phase
Instruction
Password Byte 1
Password Byte 8
在 QPI 模式下,器件也支持该命令。在 QPI 模式下,通过 IO0-IO3 信号将指令和数据传入到芯片内。
图 9.92 密码编程 (PASSP)命令序列 — QPI 模式
CS#
SCLK
IO0
4
0
4
0
4
0
4
0
IO1
5
1
5
1
5
1
5
1
IO2
6
2
6
2
6
2
6
2
IO3
7
3
7
3
7
3
7
3
Phase
9.10.7
Instruct.
Password Byte 1
Password Byte 8
密码解锁 (PASSU EAh)命令
通过将 CS# 驱动为逻辑低电平状态,可以输入 PASSU 命令,然后输入 SI 上的指令和密码数据字节,最低有效字节优先,每个字节
的最高有效位优先。密码的长度为六十四 (64)位。
数据的第六十四 (64)位被锁存后,必须将 CS# 驱动为逻辑高电平状态。否则,不能执行 PASSU 命令。 CS# 被驱动为逻辑高电平
状态时,会立即启动自定时 PASSU 操作。在执行 PASSU 操作的过程中,可以读取状态寄存器以检查正在写入 (WIP)位的值。
执行自定时 PASSU 操作期间,正在写入 (WIP)位为 ‘1’ ;完成该操作时, WIP 位为 ‘0’。
如果 PASSU 命令提供的密码与密码寄存器中隐藏密码不匹配,将 P_ERR 位设为 ‘1’ 便可以报告错误。状态寄存器的 WIP 位仍
保持为 ‘1’。另外需要使用 CLSR 命令来清除状态寄存器中的内容,使用软件复位命名 (由 RST 99h 随后的 RSTEN 66h )来复
位器件或驱动 RESET# 和 IO3 / RESET# 以启动硬件复位,从而使 P_ERR 和 WIP 位返回 ‘0’。这样会使器件进入待机状态,以
准备好执行新命令 (如重新执行 PASSU 命令)。
如果密码不匹配, NVLOCK 位将被设置为 ‘1’。
图 9.93 密码解锁 (PASSU)命令序列
CS#
SCK
SI_IO0
7
6
5
4
3
2
1
0
7
6
5
4
3
2
1
0
7
6
5
4
3
2
1
0
SO_IO1
Phase
Instruction
Password Byte 1
Password Byte 8
在 QPI 模式下,器件也支持该命令。在 QPI 模式下,通过 IO0-IO3 信号将指令和数据传入到芯片内。
文档编号:002-03823 版本 *A
页 125/143
预览资料
S25FL256L
图 9.94 密码解锁 (PASSU)命令序列 — QPI 模式
CS#
SCLK
IO0
4
0
4
0
4
0
4
0
IO1
5
1
5
1
5
1
5
1
IO2
6
2
6
2
6
2
6
2
IO3
7
7
3
7
3
7
3
3
Phase
9.11
Instruct.
Password Byte 1
Password Byte 8
复位命令
通过将非易失性默认值重新载入易失性存储器内,软件控制的复位命令将器件恢复为其初始的加电状态。如果在执行对寄存器的擦
除、编程或写入操作期间启动软件复位且扇区、页面或寄存器内的数据不稳定,那么需要重新启动被中断的操作。
然而,一个软件复位不能修改配置寄存器 CR1V[0] 中的 SRP1 易失性位和保护寄存器中的 NVLOCK 易失性位。不能使用软件复位来
将其他安全配置位代替 SRP1 或 NVLOCK 位的保护机制。
进行软件复位前,SRP1 位和 NVLOCK 位会保持其设置为最后的值。要想清除 SRP1 位并将 NVLOCK 位设置为其保护模式选定的上
电状态,需要完成完整的上电复位序列或硬件复位。
如果在指令结束时 CS# 被置为高电平,将会执行软件复位命令 (由 RST 99h 随后的 RSTEN 66h),该过程需要 tRPH 时间。
如果无法完成先前的加电复位 (POR),那么复位命令会触发一个完整的加电序列,需要 tPU 来完成该序列。
图 9.95 软件 / 模式位复位命令序列
CS#
SCK
SI_IO0
7
6
5
4
3
2
1
0
SO_IO1
Phase
Instruction
在 QPI 模式下,器件也支持该命令。在 QPI 模式下,指令将通过 IO0-IO3 信号传入到芯片内。
图 9.96 软件复位 / 模式位命令序列 — QPI 模式
CS#
SCLK
IO0
4
0
IO1
5
1
IO2
6
2
IO3
7
3
Phase
文档编号:002-03823 版本 *A
Instruction
页 126/143
预览资料
9.11.1
S25FL256L
软件复位使能 (RSTEN 66h)
在软件复位命令 (RST 99h)前立即需要复位使能 (RSTEN)命令,这样的软件复位是一个双命令的序列。随后 RSTEN 指令的任
何命令 (RST 除外)将清除复位使能条件并防止识别随后的 RST 命令。
9.11.2
软件复位 (RST 99h)命令
随后 RSTEN 命令的复位 (RST)命令会启动软件复位程序。随后 RSTEN 指令的任何命令 (RST 除外)将清除复位使能条件并防
止识别随后的 RST 命令。
9.11.3
模式位复位 (MBR FFh)命令
模式位复位 (MBR)命令用于使器件从高性能读取模式返回到正常待机模式,此时器件会等待所有新命令。因为硬件 RESET# 输入
可能被禁用,并且处于持续高性能读取模式的器件可能不会识别出任何正常的 SPI 命令,因此器件可能无法区分是系统硬件复位还
是软件复位命令。在执行系统复位 (当 RESET# 信号不可用时)后或在发送软件复位前,建议使用 MBR 命令以保证器件已经退出
持续高性能读取模式。
在八个 SCK 周期内, MBR 命令将通过 SI/IO0 发送 ‘1’。在这些周期期间, IO1-IO3 为 “ 无需关注内容 ”。
9.12
9.12.1
深度掉电命令
深度掉电 (DPD B9h)命令
虽然在执行正常操作时待机电流相对低,但使用深度掉电命令还可以更加降低待机电流。由于能够降低功耗,深度掉电 (DPD)命
令对电池供电的应用非常有用 (请参考 (第 26 页上的 4.5,直流特性)中的 ICC1 和 ICC2)。通过将 CS# 引脚驱动为低电平并发送
指令代码 “B9h”,启动该命令。
锁存第八位后,必须将 CS# 引脚驱动为高电平。否则,不能执行深度掉电命令。 CS# 被驱动为高电平后,在 tDP (第 33 页上的表
5.4)期间,器件将进入掉电状态。在掉电状态下,器件只能识别出退出深度掉电模式 / 器件 ID 命令 (使器件恢复正常操作)。所有
其他命令均被忽略,包括读取状态寄存器命令,在执行正常操作过程中,该命令始终可用。忽略所有命令,除了一个命令外使掉电状
态成为最大写保护的有用条件。
在深度掉电模式下,器件只接受一个硬件复位,该复位会启动上电复位 (用于使器件恢复正常操作)。在正常操作模式下,器件始终
被加电,消耗的是 ICC1 大小的待机电流。
图 9.97 深度掉电 (DPD)命令序列
CS#
SCK
SI_IO0
7
6
5
4
3
2
1
0
SO_IO1
Phase
Instruction
在 QPI 模式下,器件也支持该命令。在 QPI 模式下,指令将通过 IO0-IO3 信号传入到芯片内。
文档编号:002-03823 版本 *A
页 127/143
预览资料
S25FL256L
图 9.98 深度掉电 (DPD)命令序列 — QPI 模式
CS#
SCLK
IO0
4
0
IO1
5
1
IO2
6
2
IO3
7
3
Phase
9.12.2
Instruction
退出深度掉电模式 / 器件 ID (RES ABh)
退出深度掉电模式 / 器件 ID 命令是一个多功能命令。该命令可用于使器件退出深度掉电状态或取得器件电子标识 (ID)编号。
要想使器件退出深度掉电状态,首先要将 CS# 引脚驱动为低电平、发送指令代码 “ABh” 并将 CS# 信号驱动为高电平,然后发送该
命令。器件恢复正常操作并接受其他命令前,执行退出深度掉电命令需要 tRES (第 33 页上的表 5.4)长的时间。在 tRES 期间, CS#
引脚必须保持为高电平状态。
如果不在深度掉电状态下使用该命令的唯一目的是为了获取器件ID,那么可以通过将 CS# 引脚驱动为低电平并发送指令代码 “ABh”
(3 个虚拟字节随后)来启动该命令。然后,在 CLK 的下降沿上移出器件 ID 位,最高有效位 (MSB)优先。 S25FL-L 系列的器件 ID
值将在第 138 页上的表 11.5 制造商器件类型中详细说明。所定义的 ID 地址结束后,持续移出的输出会提供未定义数据。通过将 CS#
驱动为高电平来完成该命令。
当用于使器件退出深度掉电状态和获取器件 ID 时,该命令与上面所述相同,并在图 9.101 和图 9.102 中详细显示,唯一不同的是,
CS# 被驱动为高电平后它必须保持高电平状态 tRES 时间。经过这段时间后,器件将恢复正常操作,并接受其他命令。如果在执行擦
除、编程或写周期过程 (BUSY 寄存器等于 ‘1’ 时)中发送退出深度掉电模式 / 器件 ID 命令,该命令将被忽略,并且不会影响到
电流周期。
图 9.99 退出深度掉电模式 (RES)命令序列
CS#
SCK
SI_IO0
7
6
5
4
3
2
1
0
SO_IO1
Phase
Instruction
在 QPI 模式下,器件也支持该命令。在 QPI 模式下,指令将通过 IO0-IO3 信号传入到芯片内。
图 9.100 退出深度掉电模式 (RES) 命令序列 — QPI 模式
CS#
SCLK
IO0
4
0
IO1
5
1
IO2
6
2
IO3
7
3
Phase
文档编号:002-03823 版本 *A
Instruction
页 128/143
预览资料
S25FL256L
图 9.101 读取标识 (RES)命令序列
CS#
SCK
SI_IO0
7
6
5
4
3
2
1
0 23
1
SO_IO1
0
7
Phase
Instruction
6
5
4
Dummy
3
2
1
0
7
Dev ID
1
0
Dev ID
在 QPI 模式下,器件也支持该命令。在 QPI 模式下,将通过 IO0-IO3 信号传入指令及传出返回数据。
图 9.102 QPI 模式下的读取标识 (RES)命令
CS#
SCLK
IO0
4
0
IO1
5
1
IO2
6
IO3
7
Phase
文档编号:002-03823 版本 *A
4
0
4
0
4
5
5
1
5
1
5
2
6
6
2
6
2
6
3
7
7
3
7
3
7
Instruction
23
22
4
Dummy
0
Dev ID
Dev ID
页 129/143
预览资料
S25FL256L
10. 数据完整性
10.1
10.1.1
耐久性
擦除次数
表 10.1 擦除耐久性
参数
主闪存阵列扇区的编程 / 擦除次数
安全区域或非易失性寄存器阵列的编程 / 擦除次数
最小值
典型值
单位
100 K
编程 / 擦除次数
1K
编程 / 擦除次数
注意:
1. 每次将写命令发送到非易失性寄存器都会使整个非易失性寄存器阵列上的数据增加一个 PE 周期。 OTP 位和寄存器内部位于一个未循环的单独阵列。
2. 针对工业级、增强型工业级和扩展温度范围。
10.2
数据保持时间
表 10.2 数据保持时间
参数
测试条件
典型值
单位
主闪存阵列的数据保持时间
在 55°C 的温度下
20
年
安全区域或非易失性寄存器阵列的数据保持时间
在 55°C 的温度下
20
年
文档编号:002-03823 版本 *A
页 130/143
预览资料
S25FL256L
11. 软件接口参考
11.1
JEDEC JESD216B 串行闪存可发现参数
本文档定义了串行闪存可发现参数 (SFDP)版本 B 的数据结构,在以下各赛普拉斯串行闪存器件中使用:
S25FL-L 系列

这些数据结构值是旧版本 SFDP 数据结构 (当前在上述器件存在)的更新值。
根据串行闪存可发现参数的 JEDEC JESD216B 标准,读取 SFDP (RSFDP)命令 (5Ah)从单独闪存存储器地址空间读取信息,
以获取器件标识、特性和配置信息。
SFDP 数据结构包含一个标题表,该表用于识别受支持的 JESD216 标题格式的版本并提供一个版本编号以及每个 SFDP 参数表的指
针。随后 SFDP 标题是参数表。然而,可以将参数表放置在 SFDP 地址控制中任何物理位置和顺序。这些表格不需要相邻放置,也
不需要按照其标题表条目的顺序放置。
SFDP 标题指向下面各参数表:

基本闪存
– 这是原始的 SFDP 表。在表格的结尾添加了一些已修改的字段和新的额外字段。
4 字节地址指令

– 这是原始的 SFDP 表。在表格末端添加了一些已修改的字段和新的额外字段。
SFDP 地址控制中表格的物理顺序为:SFDP 标题、基本闪存扇区映射、 4 字节指令。
该 SFDP 地址空间由赛普拉斯编程,主机系统只能对其进行读取操作。
11.1.1
串行闪存可发现参数 (SFDP)地址映射
SFDP 地址空间具有起始地址为 0 的标题,用于识别 SFDP 数据结构并向每个参数提供一个指针。一个基本闪存参数由 JEDEC
JESD216B 标准规定。后面的基本闪存表是 4 字节地址指令的可选参数表。
表 11.1 SFDP 映射概述
字节地址
0000h
,,,
0300h
...
说明
JEDEC JESD216B SFDP 空间中的地址零 — SFDP 头的起点
SFDP 头的剩下部分,后面是未定义空间
SFDP 参数开始
SFDP JEDEC 参数的剩下部分,后面是未定义空间
文档编号:002-03823 版本 *A
页 131/143
预览资料
11.1.2
S25FL256L
SFDP 标题字段定义
表 11.2 SFDP 头
SFDP 字节地址
SFDP Dword 名称
00h
01h
数据
53H
SFDP 头第一个
DWORD
说明
读取 SFDP (5Ah)的入口点,即为 SFDP 空间中的地址零
ASCII “S”
46H
ASCII “F”
44h
ASCII “D”
50h
ASCII “P”
06h
SFDP 次要版本 (06h = JEDEC JESD216 版本 B)
— 该版本与以前所有次要版本向后兼容。 SFDP 读取和分析软件能够用于比设置所指定的次要版本编号
更高的版本。设计用于较高版本的软件需要能够处理较低的版本。例如:设计用于次要版本 0 的 SFDP
读取和分析软件能够用于次要版本 6,而设计用于次要版本 6 的 SFDP 读取和分析软件则要确保能够读取
次要版本 0 或 5。因此,用户不应对次要版本编号进行简单的比较,也不应该仅关注软件设计指定的版本
编号。完全可以使用更高的次要版本。
01h
SFDP 主要版本
是原始的主要版本。该主要版本与所有 SFDP 读取和分析软件均兼容。
06h
01h
参数头的数量 (以零为基准, 01h = 2 个参数)
07h
FFh
未使用
08h
00h
参数 ID LSB (00h = JEDEC SFDP 基本 SPI 闪存参数)
06h
参数次要版本 (06h = JESD216 版本 B)
01h
参数主要版本 (01h = 原始主要版本 — 所有 SFDP 软件均与该版本兼容)
10h
参数表长度 (单位为双字 = Dwords = 4 字节) 10h = 16 Dwords
00h
参数表指针字节 0 (Dword = 4 字节对齐)
JEDEC 基本 SPI 闪存参数字节偏移 = 0300h 地址
02h
03h
04h
SFDP 头第二个
DWORD
05h
09h
0Ah
参数头
0
第一个 DWORD
0Bh
0Ch
0Dh
参数头
0
第二个 DWORD
03h
参数表指针字节 1
00h
参数表指针字节 2
0Fh
FFh
参数 ID MSB (FFh = JEDEC 定义的参数)
10h
84h
参数 ID LSB (84h = SFDP 4 字节地址指令参数)
00h
参数次要版本 (00h = 初始版本,如 JESD216 版本 B 的定义)
0Eh
11h
12h
参数头
1
第一个 DWORD
01h
参数主要版本 (01h = 原始主要版本 — 识别该参数 ID 的所有 SFDP 软件均与该主要版本兼容)
13h
02h
参数表长度 (单位为双字 = Dwords = 4 字节)(2h = 2 Dwords)
14h
40h
参数表指针字节 0 (Dword = 4 字节对齐)
JEDEC 参数字节偏移 = 0340h
03h
参数表指针字节 1
00h
参数表指针字节 2
FFh
参数 ID MSB (FFh = JEDEC 定义参数)
15h
16h
参数头
1
第二个 DWORD
17h
文档编号:002-03823 版本 *A
页 132/143
预览资料
11.1.3
S25FL256L
JEDEC SFDP 基本 SPI 闪存参数
表 11.3 基本 SPI 闪存参数, JEDEC SFDP 版本 B
SFDP 参数的相对
字节地址
SFDP Dword 名称
00h
数据
E5h
01h
说明
SFDP JEDEC 参数开始
位 7:5 = 未使用 = 111b
位 4:3 = 05h 是易失性状态寄存器写入指令和状态寄存器的非易失性默认值 = 00b
位 2 = 编程缓冲区 > 64 B = 1
位 1:0 = 器件支持统一的 4 KB 擦除 = 01b
20h
位 15:8 = 统一的 4 KB 擦除指令 = 20h
02h
FBh
位 23 = 未使用 = 1b
位 22 = 支持 DOR 读取, Yes = 1b
位 21 = 支持 QIO 读取, Yes = 1b
位 20 = 支持 DIO 读取, Yes = 1b
位 19 = 支持 DDR, Yes = 1b
位 18:17 = 地址字节的数量, 3 或 4 = 01b
位 16 = 支持快速读取 SIO 和 DIO, Yes = 1b
03h
FFh
位 31:24 = 未使用 = FFh
04h
FFh
JEDEC 基本闪存参数
Dword-1
05h
06h
JEDEC 基本闪存参数
Dword-2
FFh
FFh
07h
0Fh 256 Mb
08h
48h
09h
容量 (单位为位,基于零),256 Mb = 0FFFFFFFh
位 7:5 = QIO 模式周期的数量 = 010b
位 4:0 = 快速读取 QIO 虚拟周期的数量 = 01000b (对于默认延迟代码)
EBh
快速读取 QIO 指令代码
08h
位 23:21 = 四线输出模式周期的数量 = 000b
位 20:16 = 四线输出虚拟周期的数量 = 01000b (对于默认延迟代码)
0Bh
6Bh
四线输出指令代码
0Ch
08h
位 7:5 = 双线输出模式周期的数量 = 000b
位 4:0 = 双线输出虚拟周期的数量 = 01000b (对于默认延迟代码)
3Bh
双线输出指令代码
88 h
位 23:21 = 双线 I/O 模式周期的数量 = 100b
位 20:16 = 双线 I/O 虚拟周期的数量 = 01000b (对于默认延迟代码)
0Ah
0Dh
0Eh
JEDEC 基本闪存参数
Dword-3
JEDEC 基本闪存参数
Dword-4
0Fh
10h
11h
JEDEC 基本闪存参数
Dword-5
BBh
双线 I/O 指令代码
FEh
位 7:5 RFU = 111b
位 4 = 支持 QPI = 1b
位 3:1 RFU = 111b
位 0 = 不支持所有双线指令 = 0b
FFh
位 15:8 = RFU = FFh
12h
FFh
位 23:16 = RFU = FFh
13h
FFh
位 31:24 = RFU = FFh
14h
FFh
位 7:0 = RFU = FFh
FFh
位 15:8 = RFU = FFh
FFh
位 23:21 = 所有双线指令的模式周期 = 111b
位 20:16 = 所有双线指令的虚拟周期 = 11111b
15h
16h
JEDEC 基本闪存参数
Dword-6
17h
FFh
所有双线指令代码
18h
FFh
位 7:0 = RFU = FFh
FFh
位 15:8 = RFU = FFh
48h
位 23:21 = QPI 模式周期的数量 = 010b
位 20:16 = QPI 虚拟周期的数量 = 01000b (对于默认延迟代码)
EBh
QPI 快速读取指令代码 (QPI 使能时,与 QIO 相同)
19h
1Ah
JEDEC 基本闪存参数
Dword-7
1Bh
文档编号:002-03823 版本 *A
页 133/143
预览资料
S25FL256L
表 11.3 基本 SPI 闪存参数, JEDEC SFDP 版本 B (续)
SFDP 参数的相对
字节地址
SFDP Dword 名称
数据
说明
1Ch
0Ch
1Dh
20h
扇区 1 类指令
0Fh
扇区 2 类大小 = 2^N 字节 = 32 KB = 0Fh (统一为 32 KB)
1Eh
JEDEC 基本闪存参数
Dword-8
扇区 1 类大小 = 2^N 字节 = 4 KB = 0Ch (统一为 4 KB)
1Fh
52H
扇区 2 类指令
20h
10h
扇区 3 类大小 = 2^N 字节 = 64 KB = 10h (统一为 64 KB)
D8h
扇区 3 类指令
21h
22h
JEDEC 基本闪存参数
Dword-9
00h
扇区 4 类大小 = 2^N 字节 = 不支持 = 00h
FFh
扇区 4 类指令 = 不支持 = FFh
24h
21h
25h
5Ah
26h
C1h
位 31:30 = 扇区 4 类擦除,典型时间单位 (00b:1 ms、 01b:16 ms、 10b:128 ms、 11b:1 s)
= RFU = 11b
位 29:25 = 扇区 4 类擦除,典型时间计数 = RFU = 1_1111b (典型擦除时间 = 计数值 +1 * 单位 =
RFU =11111)
位 24:23 = 扇区 3 类擦除,典型时间单位 (00b:1 ms、 01b:16 ms、 10b:128 ms、 11b:1 s)
= 16 ms = 01b
位 22:18 = 扇区 3 类擦除,典型时间计数 = 1_0000b (典型擦除时间 = 计数值 +1 * 单位 = 17*16
ms = 272 ms)
位 17:16 = 扇区 2 类擦除,典型时间单位 (00b:1 ms、 01b:16 ms、 10b:128 ms、 11b:1 s)
= 16 ms = 01b
位 15:11 = 扇区 2 类擦除,典型时间计数 = 0_1011b (典型擦除时间 = 计数值 +1 * 单位 = 12*16
ms = 192 ms)
位 10:9 = 扇区 1 类擦除,典型时间单位 (00b:1 ms、 01b:16 ms、 10b:128 ms、 11b:1 s) =
16 ms = 01b
位 8:4 = 扇区 1 类擦除,典型时间计数 = 0_0010b (典型擦除时间 = 计数值 +1 * 单位 = 3*16 ms =
48 ms)
位 3:0 = 计数值 = (最长的擦除时间 / (2 * 典型擦除时间)) - 1 = 0001b
典型的擦除时间与最长擦除时间之间的倍数 = 4x
最长擦除时间 = 2* (计数值 +1) * 典型擦除时间
23h
JEDEC 基本闪存参数
Dword-10
27h
FEh
二进制字段:11-11111-01-10000-01-01011-01-00010-0001
半字节格式:1111_1110_1100_0001_0101_1010_0010_0001
十六进制格式:FE_C1_5A_21
28h
81h
29h
E4h
2Ah
29h
JEDEC 基本闪存参数
Dword-11
位 23 = 字节编程典型时间,附加字节单位 (0b:1 us、 1b:8 us) = 1 us = 0b
位 22:19 = 字节编程典型时间,附加字节计数,(计数值 +1) * 单位,计数值 = 0101b,(典型编程
时间 = 计数值 +1 * 单位 = 6*1 us = 6 us
位 18 = 字节编程典型时间,第一字节单位 (0b:1 us、 1b:8 us) = 1 us = 0b
位 17:14 = 字节编程典型时间,第一字节计数,(计数值 +1) * 单位,计数值 = 0111b,(典型编程
时间 = 计数值 +1 * 单位 = 8*1 us = 8 us
位 13 = 页编程典型时间单位 (0b:8 us、 1b:64 us) = 64 us = 1b
位 12:8 = 页编程典型时间计数,(计数值 +1)* 单位,计数值 = 00100b,(典型编程时间 = 计数值
+1 * 单位 = 5*64 us = 320 us)
位 7:4 = N = 1000b,页大小 = 2^N = 256B 页
位 3:0 = 计数值 = 0001b = (最大页编程时间 / (2 * 典型页编程时间)) - 1
典型页编程时间与最大页编程时间之间的倍数 = 4x
最大页编程时间 = 2* (计数值 +1) * 典型页编程时间
二进制字段:0-0101-0-0111-1-00100-1000-0001
半字节格式:0010_1001_1110_0100_1000_0001
十六进制格式:29_74_81
2Bh
文档编号:002-03823 版本 *A
E2h 256 Mb
256 Mb = 1110_0010b = E2h
位 31 保留 = 1b
位 30:29 = 芯片擦除,典型时间单位 (00b: 16 ms、 01b: 256 ms、 10b: 4 s、 11b: 64 s) = 64s =
11b
位 28:24 = 芯片擦除,典型时间计数,(计数值 +1) * 单位,计数值 = 00010b,(典型编程时间 =
计数值 +1 * 单位 = 3*64s = 192s)
页 134/143
预览资料
S25FL256L
表 11.3 基本 SPI 闪存参数, JEDEC SFDP 版本 B (续)
SFDP 参数的相对
字节地址
SFDP Dword 名称
数据
说明
位 31 = 支持挂起和恢复 = 0b
位 30:29 = 正在执行挂起操作擦除最长延迟单位 (00b:128 ns、 01b:1 us、 10b:8 us、 11b:
64 us) = 8 us= 10b
位 28:24 = 正在执行挂起操作擦除最长延迟计数 = 00100b,最长擦除挂起延迟 = 计数值 +1 * 单位
= 5*8 us = 40 us
位 23:20 = 擦除恢复到挂起间隔计数 = 0001b,间隔 = 计数值 +1 * 64 us = 2 * 64 us = 128 us
位 19:18 = 正在执行挂起操作编程最长延迟单位 (00b:128 ns、 01b:1 us、 10b:8 us、 11b:
64 us) = 8 us= 10b
位 17:13 = 正在执行挂起操作编程最长延迟计数 = 00100b,最长擦除挂起延迟 = 计数值 +1 * 单位
= 5*8 us = 40 us
位 12:9 = 编程恢复到挂起间隔计数 = 0001b,间隔 = 计数值 +1 * 64 us = 2 * 64 us = 128 us
位 8 = RFU = 1b
位 7:4 = 擦除挂起过程中禁用各种操作
= xxx0b:可能不会启动任何新的擦除操作 (不允许擦除嵌套)
+ xx0xb:可能不会启动任何页编程操作
+ x1xxb:可能不会在擦除挂起扇区空间内启动读操作
+ 1xxxb:位 5:4 中的擦除和编程限制充足
= 1100b
位 3:0 = 编程挂起过程中禁用各种操作
= xxx0b:可能不会启动任何新的擦除操作 (不允许擦除嵌套)
+ xx0xb:可能不会启动任何新的页编程操作 (不允许编程嵌套)
+ x1xxb:可能不会在编程挂起页空间内启动读操作
+ 1xxxb:位 1:0 中的擦除和编程限制充足
= 1100b
2Ch
CCh
2Dh
83h
2Eh
18h
JEDEC 基本闪存参数
Dword-12
2Fh
44h
二进制字段:0-10-00100-0001-10-00100-0001-1-1100-1100
半字节格式:0100_0100_0001_1000_1000_0011_1100_1100
十六进制格式:44_18_83_CC
30h
31h
32h
7Ah
JEDEC 基本闪存参数
Dword-13
33h
75h
7Ah
75h
34h
F7h
35h
A2h
36h
D5h
JEDEC 基本闪存参数
Dword-14
37h
5Ch
位 31:24 = 擦除挂起指令 = 75h
位 23:16 = 擦除恢复指令 = 7Ah
位 15:8 = 编程挂起指令 = 75h
位 7:0 = 编程恢复指令 = 7Ah
位 31 = 支持深度下电模式 = 支持 = 0
位 30:23 = 进入深度下电指令 = B9h = 1011_1001b
位 22:15 = 退出深度下电指令 = ABh = 1010_1011b
位 14:13 = 退出深度下电到下一个操作的延迟单位 = (00b:128 ns、 01b:1 us、 10b:8 us、
11b:64 us) = 1 us = 01b
位 12:8 = 退出深度下电直到下一个操作的延迟计数 = 00010b,退出深度下电直到下一个操作的延
迟 = (计数值 +1) * 单位 = 3*1 us = 3 us
位 7:4 = RFU = Fh
位 3:2 = 状态寄存器轮询器件忙碌
= 01b:支持传统状态轮询 = 发出 05h 指令来读取状态寄存器并检查 WIP 位 (0 = 就绪; 1 = 忙
碌),以进行传统轮询。
位 1:0 = RFU = 11b
二进制字段:0-10111001-10101011-01-00010-1111-01-11
半字节格式:0101_1100_1101_0101_1010_0010_1111_0111
十六进制格式:5C_D5_A2_F7
文档编号:002-03823 版本 *A
页 135/143
预览资料
S25FL256L
表 11.3 基本 SPI 闪存参数, JEDEC SFDP 版本 B (续)
SFDP 参数的相对
字节地址
SFDP Dword 名称
数据
说明
38h
22h
39h
F6h
3Ah
5Dh
位 31:24 = RFU = FFh
位 23 = Hold 和 WP 禁用 = 不支持 = 0b
位 22:20 = 四线使能要求
= 101b:QE 是状态寄存器 2 的位 1。通过读取状态指令 05h 读取状态寄存器 1。通过指令 35h 读
取状态寄存器 2. 通过写状态指令 01h 写入两个数据字节 (其中的第二个字节的位 1 为 “1”)来
设置 QE。通过写状态指令写入两个数据字节 (其中的第二个字节的位 1 为 “0”)来将其清零。
位 19:16 0-4-4 模式进入方法
= xxx1b:模式位 [7:0] = A5h 注意:使用该模式前,需要设置 QE
+ x1xxb:模式位 [7:0] = Axh
+ 1xxxb:RFU
= 1101b
位 15:10 0-4-4 模式退出方法
= xx_xxx1b:模式位 [7:0] = 00h 在当前读取操作结束时,将终止该模式
+ xx_1xxxb:8 个周期内在 DQ0-DQ3 上输入 Fh (模式位复位)。这样会使模式在执行下一个读操
作前被终止
+ 11_x1xx:RFU
= 111101
位 9 = 支持 0-4-4 模式 = 1
位 8:4 = 4-4-4 模式使能序列
= 0_0010b:发出指令 38h
位 3:0 = 4-4-4 模式禁用序列
= 0010b:4-4-4 发出 F5h 指令
JEDEC 基本闪存参数
Dword-15
3Bh
FFh
二进制字段:11111111-0-101-1101-111101-1-00010-0010
半字节格式:1111_1111_0101_1101_1111_0110_0010_0010
十六进制格式:FF_5D_F6_22
3CH
E8h
3Dh
50h
3Eh
F8h
JEDEC 基本闪存参数
Dword-16
3Fh
A1h
位 31:24 = 进入 4 字节地址模式
= xxxx_xxx1b:发出指令 B7 (无需事先使能写入)
= xxxx_1xxxb:使用 8 位易失性组寄存器来定义 A[30:24] 位。 MSB (位 [7])用于使能 / 禁用 4 字
节地址模式。 MSB 为 “1” 时, 4 字节地址模式有效, A[30:24] 位为无需关注项。使用指令 16h
进行读取。写指令为 17h,数据长度为 1 字节。 MSB 被清零时,正确设置 A[30:24] 位,以选择有
效的 128 Mb 段,并使用 3 字节地址。
+ xx1x_xxxxb:支持专用的 4 字节地址指令集。请查看供应商数据手册以了解指令集或查看 4 字节
地址参数表。
+ 1xxx_xxxxb:保留
= 10100001b
位 23:14 = 退出 4 字节地址模式
= xx_xxxx_xxx1b:发出指令 E9h 以退出 4 字节地址模式 (无需要写入使能指令 06h)
= xx_xxxx_1xxxb:使用 8 位易失性组寄存器来定义 A[30:24] 位。 MSB (位 [7])用于使能 / 禁用 4
字节地址模式。 MSB 被清零时,将进入 3 字节地址模式,并且 A30:A24 用于选择有效的 128 Mb
段。使用指令 16h 进行读取。写指令为 17h,数据长度为 1 字节。
+ xx_xx1x_xxxxb:硬件复位
+ xx_x1xx_xxxxb:软件复位 (请参见该 DWORD 中的位 13:8)
+ xx_1xxx_xxxxb:电源循环
+ x1_xxxx_xxxxb:保留
+ 1x_xxxx_xxxxb:保留
= 1111100001b
位 13:8 = 支持软复位和挽救序列
= x1_xxxxb:发出复位使能指令 66h,然后发出复位指令 99h。根据器件的操作模式,复位使能和
复位序列可能在 1、 2 或 4 条线上被发送。
= 010000b
位 7 = RFU = 1
位 6:0 = 易失性或非易失性寄存器和状态寄存器 1 的写使能指令
= xxx_1xxxb:非易失性 / 易失性状态寄存器 1 上电到向非易失性状态寄存器写入最后数值期间,使
用指令 06h 使能对非易失性状态寄存器进行的写入操作。上电后,易失性状态寄存器可能被激活,
从而能重新设置非易失性状态寄存器,使用指令 50h 来使能写入和激活易失性状态寄存器。
+ x1x_xxxxb:保留
+ 1xx_xxxxb:保留
= 1101000b
二进制字段:10100001-1111100001-010000-1-1101000
半字节格式:1010_0001_1111_1000_0101_0000_1110_1000
十六进制格式:A1_F8_60_E8
文档编号:002-03823 版本 *A
页 136/143
预览资料
11.1.4
S25FL256L
JEDEC SFDP 4 字节地址指令表
表 11.4 4 字节地址指令, JEDEC SFDP 版本 B
SFDP 参数的相对
字节地址
SFDP Dword 名称
数据
40h
FBh
41H
8Eh
42h
F3h
JEDEC 4 字节地址指令
参数 Dword-1h
43h
FFh
说明
支持 = 1,不支持 = 0
位 31:20 = RFU = FFFh
位 19 = 支持非易失性单独扇区锁定写入命令,指令 = E3h = 0
位 18 = 支持非易失性单独扇区锁定读取命令,指令 = E2h = 0
位 17 = 支持易失性单独扇区锁定写入命令,指令 = E1h = 1
位 16 = 支持易失性单独扇区锁定读取命令,指令 = E0h = 1
位 15 = 支持 (1-4-4) DTR_Read 命令,指令 = EEh = 1
位 14 = 支持 (1-2-2) DTR_Read 命令,指令 = BEh = 0
位 13 = 支持 (1-1-1) DTR_Read 命令,指令 = 0Eh = 0
位 12 = 支持擦除命令 – 4 类 = 0
位 11 = 支持擦除命令 – 3 类 = 1
位 10 = 支持擦除命令 – 2 类 = 1
位 9 = 支持擦除命令 – 1 类 = 1
位 8 = 支持 (1-4-4) 页编程命令,指令 = 3Eh = 0
位 7 = 支持 (1-1-4) 页编程命令,指令 = 34h = 1
位 6 = 支持 (1-1-1) 页编程命令,指令 = 12h = 1
位 5 = 支持 (1-4-4) FAST_READ 命令,指令 = ECh = 1
位 4 = 支持 (1-1-4) FAST_READ 命令,指令 = 6Ch = 1
位 3 = 支持 (1-2-2) FAST_READ 命令,指令 = BCh = 1
位 2 = 支持 (1-1-2) FAST_READ 命令,指令 = 3Ch = 0
位 1 = 支持 (1-1-1) FAST_READ 命令,指令 = 0Ch = 1
位 0 = 支持 (1-1-1) READ 命令,指令 = 13h = 1
半字节格式:1111_1111_1111_0011_1000_1110_1111_1011
十六进制格式:FF_F3_8E_FB
44h
21h
45h
52h
46h
JEDEC 4 字节地址指令
参数 Dword-2h
47h
文档编号:002-03823 版本 *A
DCh
FFh
位 31:24 = FFh = 4 类擦除的指令:保留
位 23:16 = DCh = 3 类擦除的指令:擦除区块
位 15:8 = 52h = 2 类擦除的指令:擦除半区块
位 7:0 = 21h = 1 类擦除的指令:擦除扇区
页 137/143
预览资料
11.2
S25FL256L
器件 ID 地址映射
11.2.1
字段定义
表 11.5 制造商器件类型
字节地址
数据
00h
01h
01h
60h
02h
19h (256 Mb)
03h
未定义
说明
Spansion 公司的制造商 ID
器件 ID 最高有效字节 — 存储器接口类型
器件 ID 最低有效字节 — 容量和特性
保留供将来使用
表 11.6 器件的唯一 ID
字节地址
11.3
数据
00h 到 07
器件的 8 字节大小的唯一 ID
08h 到 0F
器件的附加 8 字节大小唯一 ID
10 到 1Fh
未定义
20h 到 37h
24 字节 OEM 名称
说明
64 位大小的唯一 ID,请参考第 47 页上的 7.3.1,器件的唯一 ID
128 位大小唯一 ID 的附加字节
保留供将来使用
OEM 名称
初始供应状态
该器件由赛普拉斯生产,其非易失性位如下设置:

整个存储器阵列被擦除:例如,所有位均被设为 ‘1’ (因此每个字节都包含 FFh)。

安全区域地址空间的全部字节都被擦除为 FFh。

SFDP 地址空间包含如 SFDP 地址空间的说明部分中所定义的值。

ID 地址空间包含如 ID 地址空间的说明部分中所定义的值。

状态寄存器 1 非易失性包含 00h (全部 SR1NV 位均被清除为 ‘0’)。

配置寄存器 1 非易失性包含 00h。

配置寄存器 2 非易失性包含 60h。

配置寄存器 3 非易失性包含 78h。

密码寄存器包含 FFFFFFFF-FFFFFFFFh。

对于标准器件, IRP 寄存器位是 FFFDh ;对于高安全性器件, IRP 寄存器位是 FFFFh。

PRPR 寄存器位是 FFFFFFh。
文档编号:002-03823 版本 *A
页 138/143
预览资料
S25FL256L
12. 订购信息
12.1
订购器件型号
订购器件型号由以下有效组合构成:
S25FL
256
L
AG
M
F
I
00
1
包装类型
0 = 托盘
1 = 包装管
3= 13” 盘带包装
型号 (附加订购选项)
00 = SOIC16 封装 (300 mil)
01 = 8 接触点 WSON 封装
02 = 5 x 5 圆形焊盘 BGA 封装
03 = 4 x 6 圆形焊盘 BGA 封装
温度范围
I = 工业级 (–40°C 到 +85°C)
V = 扩展的工业级 (–40°C 到 +105°C)
N = 扩展范围 (–40°C 到 +125°C)
封装材料
F = 无铅 (无 Pb)
H = 低卤素,无铅 (无 Pb)
封装类型
M = 16-SOIC
N = 8 接触点 WSON 6 x 8 mm
B = 24 球 BGA 6 x 8 mm 封装,间距为 1.00 mm
速度
AG = 133 MHz
DP = 66 MHz DDR
器件技术
L = 0.065 µm 浮栅处理技术
容量
256 = 256 Mb
器件系列
S25FL 赛普拉斯存储器, 3.0 V 电压, SPI 闪存系列
文档编号:002-03823 版本 *A
页 139/143
预览资料
S25FL256L
有效组合
有效组合列出了计划针对该器件批量支持的配置。如要确认特定有效组合的可用性和了解最新推出的组合,请咨询您当地的销售办事
处。
表 12.1 一般市场 OPN 有效组合
一般市场的有效组合
基本订购器件型号
S25FL256L
速度选项
封装和温度
型号
包装类型
AG
MFI、 MFV、 MFN
00
0、 1、 3
(基本型号) + A + (温度) + F + (型号)
封装标识
AG
NFI、 NFV、 NFN
01
0、 1、 3
(基本型号) + A + (温度) + F + (型号)
AG
BHI、 BHV、 BHN
02、 03
0、 3
(基本型号) + A + (温度) + H + (型号)
DP
MFI、 MFV、 MFN
00
0、 1、 3
(基本型号) + A + (温度) + F + (型号)
DP
NFI、 NFV、 NFN
01
0、 1、 3
(基本型号) + A + (温度) + F + (型号)
DP
BHI、 BHV、 BHN
02、 03
0、 3
(基本型号) + A + (温度) + H + (型号)
文档编号:002-03823 版本 *A
页 140/143
预览资料
S25FL256L
术语表
BCD
二进码十进数每四位代表一个十进制数的值。
命令
CS# 为低电平时,在一个周期内主机系统与存储器间传输的所有信息。信息包括指令(有时称为操作代码
或操作码)和全部所需地址、模式位、延迟周期或数据。
DDP
双晶片封装 = 两个晶片在同一个封装中堆叠,以增加单个封装的存储容量。有时被称为多芯片封装
(MCP)。
DDR
双倍数据速率 = 输入和输出在 SCK 的每一个边沿上被锁存。
闪存
它是一种电可擦可编程只读存储器 (EEPROM)的名称,能够同时擦除大量的存储器位,这样可使擦除
速度比早期的 EEPROM 快得多。
高电平
≥ VIH 的信号电压电平或由二进制 “1” 所代表的逻辑电平。
指令
一个 8 位代码,它指明了命令需要执行的功能 (有时称为操作代码或操作码)。指令始终是主机系统传送
给存储器的命令中最靠前的 8 位。
低电平
 VIL 的信号电压电平或由二进制 “0” 所代表的逻辑电平。
LSB
最低有效位 = 寄存器或数据值位组中单位数值最小的位,通常是最右边的位。
MSB
最高有效位 = 寄存器或数据值位组中单位数值最大的位,通常是最左边的位。
N/A
不适用。某个值不适用于所述条件。
非易失性
无需使用电源,但仍能保持存储器中的数据。
OPN
订购器件型号 = 指出存储器件类型、容量、封装、工厂非易失性配置等信息的字母数字,用于选择所需
器件。
QPI
四线外设接口
页
256 字节大小的对齐数据组。
PCB
印刷电路板
寄存器位参考
格式为:Register_name[bit_number] 或 Register_name[bit_range_MSB: bit_range_LSB]
扇区
擦除单位大小;根据器件模型和扇区位置,扇区大小可为 4 KB、 32 KB 或 64 KB。
SDR
单倍数据速率 = 输入和输出分别在 SCK 的上升和下降沿上被锁存。
写入
该操作用于修改易失性或非易失性寄存器位中或非易失性闪存中的数据。改变非易失性数据时,会对无
改变的非易失性数据进行擦除和重新编程,这样可以使用单一的写入操作改变非易失性数据,该方式与
改变易失性数据同样的。非易失性数据显示到主机,并会经过单一的写入命令得到更新,这便无需分开
使用不同命令来擦除和编程各个相邻但无受影响的数据。
文档编号:002-03823 版本 *A
页 141/143
预览资料
S25FL256L
13. 文档修订记录
文档标题: S25FL256L 256 Mb (32 MB)3.0 V 的 FL-L 闪存存储器
文档编号:002-03823
版本
**
ECN 编号
5001771
变更者
YOQI
提交日期
11/05/2015
本文档版本号为 Rev**,译自英文版 002-00124 Rev**。
*A
5174697
YOQI
03/17/2016
本文档版本号为 Rev*A,译自英文版 002-00124 Rev*A。
文档编号:002-03823 版本 *A
变更说明
页 142/143
预览资料
S25FL256L
销售、解决方案和法律信息
全球销售和设计支持
赛普拉斯公司具有一个由办事处、解决方案中心、厂商代表和经销商组成的全球性网络。要想找到离您最近的办事处,请访问赛普拉
斯所在地。
产品
PSoC® 解决方案
汽车级产品 .................................cypress.com/go/automotive
psoc.cypress.com/solutions
时钟与缓冲区 .....................................cypress.com/go/clocks
PSoC 1 | PSoC 3 | PSoC 4 | PSoC 5LP
接口 ................................................cypress.com/go/interface
赛普拉斯开发者社区
照明与电源控制 ...........................cypress.com/go/powerpsoc
存储器 .............................................cypress.com/go/memory
PSoC.....................................................cypress.com/go/psoc
触摸感应产品 ......................................cypress.com/go/touch
社区 | 论坛 | 博客 | 视频 | 培训
技术支持
cypress.com/go/support
USB 控制器 ..........................................cypress.com/go/USB
无线 / 射频 ......................................cypress.com/go/wireless
© 赛普拉斯半导体公司, 2015-2016。此处所包含的信息可能会随时更改,恕不另行通知。除赛普拉斯产品内嵌的电路外,赛普拉斯半导体公司不对任何其他电路的使用承担任何责任。也不根据专利
或其他权利以明示或暗示的方式授予任何许可。除非与赛普拉斯签订明确的书面协议,否则赛普拉斯不保证产品能够用于或适用于医疗、生命支持、救 生、关键控制或安全应用领域。此外,对于可能
发生运转异常和故障,并对用户造成严重伤害的生命支持系统,赛普拉斯不授权将其产 品用作此类系统的关键组件。若将赛普拉斯产品用于生命支持系统中,则表示制造商将承担因此类使用而招致的
所有风险,并确保赛普拉斯免于因此而受到任何指控。
所有源代码 (软件和 / 或固件)均归赛普拉斯半导体公司 (赛普拉斯)所有,并受全球专利法规 (美国 和美国以外的专利法规)、美国版权法以及国际条约规定的保护和约束。赛普拉斯据此向获许
可者授予适用于个人的、非独占性、不可转让的许可,用以复制、使用、修改、创建赛普拉斯源代码的派生作品、编译赛普拉斯源代码和派生作品,并且其目的只能是创建自定义软件和 / 或固件,以
支持获许可者仅将其获得的产品依照适用协议规定的方式与赛普拉斯集成电路配合使用。除上述指定的用途外,未经赛普拉斯明确的书面许可,不得对此类源代码进行任何复制、修改、转换、编译或
演示。
免责声明:赛普拉斯不针对此材料提供任何类型的明示或暗示保证,包括 (但不限于)针对特定用途的 适销性和适用性的暗示保证。赛普拉斯保持在不做出通知的情况下对此处所述材料进行更改的
权利。赛普拉斯不对此处所述之任何产品或电路的应用或使用承担任何责任。对于可能发生运转异常和故障,并对用户造成严重伤害的生命支持系统,赛普拉斯不授权将其产品用作 此类系统的关键组
件。若将赛普拉斯产品用于生命支持系统,则表示制造商将承担因此类使用而招致的所有风险,并确保赛普 拉斯免于因此类使用而受到任何指控。
产品使用可能受赛普拉斯软件许可协议的限制。
文档编号:002-03823 版本 *A
修订日期:March 17, 2016
页 143/143
Cypress®、Spansion®、MirrorBit®、MirrorBit® Eclipse™、 ORNAND™ 以及它们的组合都是赛普拉斯半导体公司的商标和注册商标。本文档中所提及的所有产品和公司名称均为其各自所有者的商
标。