本文以Micron公司的MT29F2G08為例介紹NAND Flash原理和使用。
1. 概述
MT29F2G08使用一個(gè)高度復用的8-bit總線(xiàn)(I/O[7:0])來(lái)傳輸數據、地址、指令。5個(gè)命令腳(CLE、ALE、CE#、WE#)實(shí)現NAND命令總線(xiàn)接口規程。3個(gè)附加的腳用作: 控制硬件寫(xiě)保護(WP#)、監視芯片狀態(tài)(R/B#),和發(fā)起上電自動(dòng)讀特征(PRE-僅3V芯片支持)。注意, PRE功能不支持寬溫芯片。
MT29F2G08內部有2048個(gè)可擦除的塊,每個(gè)塊分為64個(gè)可編程的頁(yè),每個(gè)頁(yè)包含2112字節(2048個(gè)字節作為數據存儲區,64個(gè)備用字節一般作為錯誤管理使用)。
每個(gè)2112個(gè)字節的頁(yè)可以在300us內編程,每個(gè)塊(64x2112=132K)可以在2ms內被擦除。片上控制邏輯自動(dòng)進(jìn)行PROGRAM和ERASE操作。
NAND的內部存儲陣列是以頁(yè)為基本單位進(jìn)行存取的。讀的時(shí)候,一頁(yè)數據從內部存儲陣列copy到數據寄存器,之后從數據寄存器按字節依次輸出。寫(xiě)(編程)的時(shí)候,也是以頁(yè)為基本單位的:起始地址裝載到內部地址寄存器之后,數據被依次寫(xiě)入到內部數據寄存器,在頁(yè)數據寫(xiě)入之后,陣列編程過(guò)程啟動(dòng)。
為了增加編程的速度,芯片有一個(gè)CACHE寄存器。在CACHE編程模式,數據先寫(xiě)入到CACHE寄存器,然后再寫(xiě)入到數據寄存器,一旦數據copy進(jìn)數據寄存器后,編程就開(kāi)始。在數據寄存器被裝載及編程開(kāi)始之后,CACHE寄存器變?yōu)榭?,可以繼續裝載下一個(gè)數據,這樣內部的編程和數據的裝載并行進(jìn)行,提高了編程速度。
內部數據搬移命令(INTERNAL DATA MOVE)也使用內部CAHCE寄存器,通常搬移數據需要很長(cháng)時(shí)間,通過(guò)使用內部CACHE寄存器和數據寄存器,數據的搬移速度大大增加,且不需要使用外部?jì)却妗?
2. 功能框圖
3. 管腳
名稱(chēng) |
類(lèi)型 |
描述 |
ALE |
I |
地址鎖存使能。ALE為高時(shí),在WE#下降沿,地址信息通過(guò)I/O[7:0]鎖存片內的地址寄存器。如果傳輸的不是地址信息,ALE應該為低。 |
CE# |
I |
片選。一旦器件進(jìn)入PROGRAM或ERASE操作,CE#可以變無(wú)效。 |
CLE |
I |
命令鎖存使能。CLE為高時(shí),在WE#上升沿,命令通過(guò)I/O[7:0]鎖存到命令寄存器,當不傳輸命令時(shí),CLE應該為低。 |
PRE |
I |
上電讀使能。 |
RE# |
I |
讀使能。 |
WE# |
I |
寫(xiě)使能。 |
WP# |
I |
寫(xiě)保護。當為低時(shí)候,所有的PROGRAM和ERASE都被禁止。 |
I/O[7:0] |
I/O |
數據輸入/輸出。傳輸命令、數據、地址。僅在讀操作時(shí),數據是輸出。 |
R/B#, R/B2 |
O |
準備好/忙。集電極開(kāi)路輸出。外部需要接上拉電阻,這個(gè)腳表示芯片正在進(jìn)行PROGRAM或ERASE操作。在讀操作期間,表示數據正從陣列中傳輸到串行數據寄存器中,一旦這些操作完成,R/B#回到High-Z狀態(tài)。 |
Vcc |
電源 |
電源 |
Vss |
地 |
地 |
4. 尋址
Block地址和頁(yè)地址 = 實(shí)際的頁(yè)地址,希望通過(guò)這個(gè)圖,我們能理解塊、頁(yè)、塊地址,頁(yè)地址,列地址,備份空間,備份地址
Cycle |
I/O7 |
I/O6 |
I/O5 |
I/O4 |
I/O3 |
I/O2 |
I/O1 |
I/O0 |
1 |
CA7 |
CA6 |
CA5 |
CA4 |
CA3 |
CA2 |
CA1 |
CA0 |
2 |
LOW |
LOW |
LOW |
LOW |
CA11 |
CA10 |
CA9 |
CA8 |
3 |
RA19 |
RA18 |
RA17 |
RA16 |
RA15 |
RA14 |
RA13 |
RA12 |
4 |
RA27 |
RA26 |
RA25 |
RA24 |
RA23 |
RA22 |
RA21 |
RA20 |
5 |
LOW |
LOW |
LOW |
LOW |
LOW |
LOW |
LOW |
RA28 |
CAx:列地址;RAx=行地址
5. 總線(xiàn)操作
CLE |
ALE |
CE# |
WE# |
RE# |
WP# |
PRE# |
MODE |
|
H |
L |
L |
上升沿 |
H |
X |
X |
讀模式 |
命令輸入 |
L |
H |
L |
上升沿 |
H |
X |
X |
地址輸入 |
|
H |
L |
L |
上升沿 |
H |
H |
X |
寫(xiě)模式 |
命令輸入 |
L |
H |
L |
上升沿 |
H |
H |
X |
地址輸入 |
|
L |
L |
L |
上升沿 |
H |
H |
X |
數據輸入 |
|
L |
L |
L |
H |
下降沿 |
X |
X |
依次讀和數據輸出 |
|
L |
L |
L |
H |
H |
X |
X |
在讀期間(忙) |
|
X |
X |
X |
X |
X |
H |
X |
在編程期間(忙) |
|
X |
X |
X |
X |
X |
H |
X |
在擦除期間(忙) |
|
X |
X |
X |
X |
X |
L |
X |
寫(xiě)保護 |
|
X |
X |
H |
X |
X |
0V/Vcc |
0V/Vcc |
待機 |
上電自動(dòng)讀:在上電期間,PRE為VCC,3V VCC器件自動(dòng)傳輸[敏感詞]頁(yè)到數據寄存器,而無(wú)需要發(fā)布一個(gè)命令或地址鎖存序列。在VCC達到大約2.5V的時(shí)候,內部電壓檢測器觸發(fā)上電自動(dòng)讀功能。在[敏感詞]頁(yè)數據copy到數據寄存器過(guò)程中,R/B#為低,當copy結束后,R/B#變高,在RE#脈沖的作用下[敏感詞]頁(yè)數據可以依次輸出。
6. 命令表
操作 |
周期1 |
周期2 |
在忙期間有效 |
PAGE READ |
0x00 |
0x30 |
NO |
PAGE READ CACHE MODE START |
0x31 |
- |
NO |
PAGE READ CACHE MODE START LAST |
0x3F |
- |
NO |
READ for INTERNAL DATA MOVE |
0x00 |
0x35 |
NO |
RANDOM DATA READ |
0x05 |
0xE0 |
NO |
READ ID |
0x90 |
- |
NO |
READ STATUS |
0x70 |
- |
NO |
PROGRAM PAGE |
0x80 |
0x10 |
NO |
PROGRAM PAGE CACHE |
0x80 |
0x15 |
NO |
PROGRAM for INTERNAL DATA MOVE |
0x85 |
0x10 |
NO |
RANDOM DATA INPUT for PROGRAM |
0x85 |
- |
NO |
BLOCK ERASE |
0x60 |
0xD0 |
NO |
RESET |
0xFF |
- |
YES |
7. PAGE READ,0x00-0x30
5個(gè)地址周期,確定了讀出的起始地址,數據才RE#脈沖的作用下,從這個(gè)起始地址開(kāi)始依次輸出,直到這一頁(yè)的結束。
8. RANDOM DATA READ,0x05-0xE0
隨機數據讀,是為了用戶(hù)能夠設定新的列地址,增加數據讀出的靈活性,隨即讀模式在頁(yè)讀(0x00-0x30序列)后使能。這個(gè)命令的發(fā)布次數是不受限制的。但僅僅是當前頁(yè)數據的讀出。
9. PAGE READ CACHE MODE START,0x31;PAGE READ CACHE MODE START LAST,0x3F
發(fā)布PAGE READ命令后,在R/B#變高后,在發(fā)送0x31命令,這時(shí)啟動(dòng)將數據寄存器的內容傳給CACHE寄存器,然后就可以順序從CACHE里讀[敏感詞]個(gè)PAGE READ命令獲得數據,由于這是數據寄存器是沒(méi)有用的,因此,芯片自動(dòng)啟動(dòng)讀下一頁(yè)的PAGE READ命令,將下一頁(yè)讀到數據寄存器,可以看出這么做提高的讀出的速度,除了[敏感詞]個(gè)PAGE READ命令外,其他PAGE READ命令都是后臺自動(dòng)進(jìn)行的。再后一次使用0x3F命令,以便禁止芯片再次自動(dòng)發(fā)布PAGE READ命令。
10.READ ID,0x90
讀出廠(chǎng)家的芯片標識。
11. READ STATUS,0x70
讀出芯片的8bit狀態(tài)??梢酝ㄟ^(guò)RE#脈沖,反復讀。
12.編程操作
PROGRAM PAGE 0x80-0x10:
Micron NAND FLASH僅支持頁(yè)的編程,在一個(gè)塊以?xún)?,?yè)必須從一個(gè)塊的頁(yè)低位到這個(gè)塊的頁(yè)的高位連續編程,禁止隨機頁(yè)地址的編程。
芯片也支持頁(yè)的部分編程操作,這意味著(zhù)任何單個(gè)位在需要一個(gè)擦除之前僅可以被編程一次,然而,這種頁(yè)能被劃分成在需要一個(gè)擦除之前允許大8個(gè)編程操作。
SERIAL DATA INPUT 0x80:
PAGE PROGRAM操作要求加載SERAIL DATA INPUT(0x80)命令進(jìn)入命令寄存器,隨著(zhù)5個(gè)地址周期之后,串行數據通過(guò)連續的WE#周期加載到值得的起始地址,PROGRAM(0x10)命令在數據輸入完成之后被寫(xiě)入,內部寫(xiě)狀態(tài)周期自動(dòng)執行合適的編程算法,并控制所有必要的定時(shí)編程和比較操作。寫(xiě)比較僅僅檢測“1”是否被成功地編程為“0”了。
R/B#在陣列編程期間(tPROG)為低,在編程操作期間,僅READ STATUS和RESET命令有效,狀態(tài)寄存器的Bit6反映R/B#的狀態(tài),當芯片準備好時(shí),讀Bit0的狀態(tài)確定編程操作是否成功或失敗,命令寄存器在新的有效命令寫(xiě)入之前,一直停留在讀狀態(tài)寄存器模式。
RANDOM DATA INPUT 0x85:
在發(fā)起
聯(lián)系方式
辦公地址:深圳市寶安區新橋街道新二體育中心綜合樓同方創(chuàng )想公社606室
服務(wù)熱線(xiàn):0755-27502764
全國產(chǎn)/企業(yè)級:135-1068-5504
188-9877-7001
行業(yè)/工規:135-3095-1400
189-2939-2673
郵箱地址:sales@pancunstorage.com