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
時序