1 SPI NAND接口
一般来说,SPI的接口就是6个IO,CS, CLK, SI, SO, WP, HOLD。
IO位数 | 输入 | 输出 |
---|---|---|
Single | SI | SO |
Dual | SI | SI(IO0), SO(IO1) |
Quad | SI | SI(IO0), SO(IO1), WP(IO2), HOLD(IO3) |
基本上接口跟Quad SPI FLASH是一样的。支持一根线,两根线和四根线的模式。
下面是MX35LF1GE4AB 这片SPI NAND 的verilog module的定义
module MX35LF1GE4AB( SCK,
CSB,
SI,
SO,
WPB,
HOLDB );
....
// *==============================================================================================
// * Declaration of ports (input, output, inout)
// *==============================================================================================
input SCK; //Clock input
input CSB; //Chip select
inout SI; //Serial data input(for 1xI/O) or Serial data input & output(for 2xI/O or 4xI/O read mode) SIO0
inout SO; //Serial data output(for 1xI/O) or Serial data input & output(for 2xI/O or 4xI/O read mode) SIO1
inout WPB; //Write protection or Serial data input & output(for 4xI/O read mode) SIO2
inout HOLDB; //Hold or Serial data input & output(for 4xI/O read mode) SIO3
...
endmodule
2 寻址
SPI NAND最大存储单元是PLANE,一个PLANE有多个block,一个block有多个PAGE,PAGE是SPI NAND最小的存储单元。
这里以MX35LF1GE4AB为例,
- 一个PLANE有2048个block。
- 一个block有64个page
- 一个page中2111个byte。
RA是行地址,行地址的16:6位用来寻址Block,行地址的5:0位用来寻址PAGE。CA为列地址,一共12位,寻址空间是4096。但是SPI NAND中只有一部分是可用的,这里只有0到2112个byte是可用的,其余的地址空间都是out of bound。
常用型号
型号 | Page Size | 内置ECC | 支持Quad 模式 | vendor |
---|---|---|---|---|
MX35LFxGE4AB | 2k | Y | Y | Macronix |
GD5F4GQ4xC | 4k | Y | Y | Gigadevice |
3 Feature寄存器
Feature寄存器每个芯片的定义都不一样,这里以MX35LFxGE4AB为例
MX35LFxGE4AB一共有三个feature寄存器。
- A0 寄存器用做一些Block的写保护
- B0寄存器是Secure OTP。QE表示使能Quad模式, ECC表示使能ECC。
- C0寄存器是状态寄存器,一般用于查询以下
- OIP: FLASH是否处于操作模式,1: Busy, 0: Ready
- WEL: 是否写使能,1: write enable, 0: not write enable
- E_FAIL: 擦除错误,0: Passed, 1: Failed
- P_FAIL:编程错误, 0: Passed, 1: Failed
- ECC_S0, ECC_S1,ECC状态,00b = 0 bit error,01b = 1 to 4 bits error corrected,10b = More than 4-bit error not corrected,11b = Reserved
时序