找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 6142|回復: 5
打印 上一主題 下一主題
收起左側(cè)

W25M02_W25N01中文版+原版(70%中文)芯片手冊下載

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:155701 發(fā)表于 2020-12-5 14:46 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
W25M02_W25N01中文版+原版芯片手冊
只撿了一些我寫代碼用得上的部分翻譯了大概70%中文。
W25M02由兩片W25N01GV疊加組成

每個 W25N01GV 有 128M 字節(jié),用寫命令(C2h)選擇使用那一片。

標準 SPI 指令使用單向 DI(輸入)引腳將指令、地址或數(shù)據(jù)串行寫入串行時鐘(CLK)輸入引腳上升沿上的設備 標準 SPI 還使用單向 DO(輸出)來從 CLK 下降沿上的設備讀取數(shù)據(jù)或狀態(tài)。


標準 SPI 說明 W25M02GV 通過 SPI 兼容總線訪問,該總線由四個信號組成: 串行時鐘(CLK)、芯片選擇(/CS)、串行數(shù)據(jù)輸入(DI)和串行數(shù)據(jù)輸出(DO)。


標準 SPI 指令使用 DI 輸入引腳串行地將指令、地址或數(shù)據(jù)寫入 CLK 上升沿上的設備。

DO 輸出引腳用于從 CLK 下降沿上的設備讀取數(shù)據(jù)或狀態(tài)。 支持 SPI 總線操作模式 0(0,0)和 3(1,1)。


模式 0 和模式 3 之間的主要區(qū)別在于當 SPI 總線主機處于待機狀態(tài)且數(shù)據(jù)未傳輸?shù)酱虚W存時,CLK 信號的正常狀態(tài)。 對于模式 0,CLK 信號在/CS 的下降和上升邊緣通常較低。

對于模式 3,CLK 信號通常在/CS 的下降和上升沿高。

為每個堆疊的 W25N01GV 模具提供三個狀態(tài)寄存器: 保護寄存器(SR-1)、配置寄存器(SR-2)和狀態(tài)寄存器(SR-3)。 每個寄存器分別由讀狀態(tài)寄存器和寫狀態(tài)寄存器命令結(jié)合 1 字節(jié)寄存器地址訪問。


讀取狀態(tài)寄存器指令(05h/0Fh)可用于提供有關(guān)閃存陣列可用性的狀態(tài), 無論設備是寫啟用還是禁用、寫入保護狀態(tài)、讀取模式、保護寄存器/OTP 區(qū)域鎖定狀態(tài)、擦除/程序結(jié)果、ECC 使用/狀態(tài)。

寫入狀態(tài)寄存器指令可用于配置設備寫保護功能、軟件/硬件寫入保護、讀取模式、啟用/禁用 ECC、保護寄存器/OTP 區(qū)域鎖定。 對狀態(tài)寄存器的寫入訪問由非易失性狀態(tài)寄存器保護位(SRP0,SRP1)的狀態(tài)控制,寫啟用指令,當 WP-E 設置為 1 時,由/WP 引
腳控制。

4.4寫保護腳(/WP
寫保護(/WP)引腳可用于防止寫入狀態(tài)寄存器。

與狀態(tài)寄存器的塊保護位 BP[3:0]和狀態(tài)寄存器 Protect SRP bits SRP[1:0]一起使用時,小到 256K 字節(jié)(2x128KB 塊)或最多整個 內(nèi)存陣列的一部分都可以受到硬件保護。

保護寄存器(SR-1)中的 WP-E 位控制/WP 引腳的功能。
當 WP-E=0 時,設備處于軟件保護模式,只有 SR-1 可以被保護。

/WP 引腳作為四重 SPI 操作的數(shù)據(jù)輸入/輸出引腳,以及用于 SR-1 寫保護功能的有源低輸入引腳。 有關(guān)詳細信息,請參閱第 7.1.3 節(jié)。


當 WP-E=1 時,設備處于硬件保護模式,即/WP 成為整個設備寫保護的專用有源低輸入引腳。 如果/WP 連接到 GND,則所有“寫入/編程/擦除”功能都將被禁用。 整個設備(包括所有寄存器、內(nèi)存陣列、OTP 頁)將變?yōu)橹蛔x。

當 WP-E 設置為 1 時,Quad SPI read 操作也被禁用。

4.5保持腳(/保持)
在標準和雙 SPI 操作期間,/HOLD 引腳允許設備在活動選擇時暫停。

當(/HOLD)低時,/CS 低時,DO 引腳將處于高阻抗狀態(tài),DI 和 CLK 引腳上的信號將被忽略(無所謂)。 當(/HOLD)被調(diào)高時,設備操作可以恢復。

當多個設備共享相同的 SPI 信號時,(/HOLD)函數(shù)非常有用。
(/HOLD)引腳處于低激活狀態(tài)。

當發(fā)出 Quad SPI Read/Buffer Load 命令時,(/HOLD)pin 將成為 Quad 操作的數(shù)據(jù) I/O pin,并且在當前 Quad 操作完成之前沒 有可用的 HOLD 函數(shù)。

(/HOLD)(IO3)必須由主機驅(qū)動高電平,或者必須在 PCB 上放置一個外部上拉電阻器,以避免/HOLD 輸入浮動。



7.1.1塊保護位(BP3、BP2、BP1、BP0TB易失性可寫,OTP可鎖定

塊保護位(BP3、BP2、BP1、BP0 和 TB)是狀態(tài)寄存器 1(S6、S5、S4、S3 和 S2)中的易失性讀/寫位,提供寫保護控制和狀態(tài)。 塊保護位可以使用寫入狀態(tài)寄存器指令進行設置。內(nèi)存陣列的所有、無或一部分都可以受到程序和擦除指令的保護(請參閱狀態(tài)寄存器內(nèi)存保護表)。

塊保護位的默認值在通電后為 1,以保護整個陣列。 需要清零這些保護位才能進行擦除操作和編程操作(寫入數(shù)據(jù)操作) 如果配置寄存器(SR-2)中的 SR1-L 位設置為 1,則默認值為 OTP 鎖定的值。


7.1.2寫保護啟用位(WP-E易失性可寫,OTP可鎖定

寫保護啟用位(WP-E)是狀態(tài)寄存器 1(S1)中的易失性讀/寫位。 WP-E 位與 SRP1 和 SRP0 一起控制寫保護的方法: 軟件保護,硬件保護、電源鎖定或一次性可編程(OTP)保護、/WP 引腳功能和四重 SPI 操作啟用/禁用。

當 WP-E=0(默認值)時,設備處于軟件保護模式,/WP&/HOLD 管腳被多路復用為 IO 管腳,并且四路程序/讀取功能一直處于啟 用狀態(tài)。

當 WP-E 設置為 1 時,設備處于硬件保護模式,所有四元功能被禁用,/WP&/HOLD 引腳成為專用控制輸入引腳

7.1.3狀態(tài)寄存器保護位(SRP1SRP0易失性可寫,OTP可鎖定

狀態(tài)寄存器保護位(SRP1 和 SRP0)是狀態(tài)寄存器(S0 和 S7)中的易失性讀/寫位。 SRP 位控制寫保護的方法:軟件保護,硬件保護,電源鎖定或一次性可編程(OTP)保護。



7.2.1一次性程序鎖定位(OTP-L–OTP可鎖定

除了主內(nèi)存陣列之外,W25M02GV 還為系統(tǒng)提供了一個 OTP 區(qū)域,用于存儲一旦鎖定就無法更改的關(guān)鍵數(shù)據(jù)。
OTP 區(qū)域由 10 頁組成,每頁 2112 字節(jié)。
OTP 區(qū)域中的默認數(shù)據(jù)是 FFh。

只能向 OTP 區(qū)域發(fā)出程序命令,將數(shù)據(jù)從“1”更改為“0”,并且數(shù)據(jù)不能通過 Erase 命令可逆(“0”到“1”)。 一旦正確的數(shù)據(jù)被編程和驗證,系統(tǒng)開發(fā)人員可以將 OTP-L 位設置為1,這樣整個 OTP 區(qū)域?qū)⒈绘i定,以防止對數(shù)據(jù)的進一步修改。


7.2.2進入OTP訪問模式位(OTP-E易失性可寫

OTP-E 位必須設置為 1,以便使用標準程序/讀取命令訪問 OTP 區(qū)域以及讀取唯一的 ID/參數(shù)頁信息。 通電命令后的默認值為 0 或復位。


7.2.3狀態(tài)寄存器-1鎖定位(SR1-L–OTP可鎖定

SR1-L 鎖定位用于 OTP 鎖定保護寄存器(SR-1)中的值。
根據(jù) SR-1 中的設置,可以將設備配置為對整個陣列進行寫保護,并且可以通過將 SR1-L 位設置為 1 來鎖定設置。
當 SRP1 和 SRP0 設置為(1,1)時,SR1-L 位只能永久設置為 1,并且必須進入 OTP 訪問模式(OTP-E=1)才能執(zhí)行編程。詳見
8.2.26。


7.2.4ECC啟用位(ECC-E易失性可寫

W25M02GV 有一個內(nèi)置的 ECC 算法,可以用來保持數(shù)據(jù)的完整性。

內(nèi)部 ECC 計算在頁面編程期間完成,結(jié)果存儲在每個頁面的額外 64 字節(jié)區(qū)域中。 在數(shù)據(jù)讀取操作期間,ECC 引擎將根據(jù)先前存儲的 ECC 信息驗證數(shù)據(jù)值,并在需要時進行必要的更正。 驗證和校正狀態(tài)由 ECC 狀態(tài)位指示。

ECC 功能在開機時默認啟用(ECC-E=1),并且不會通過設備重置命令將其重置為 0。


7.2.5緩沖區(qū)讀取/連續(xù)讀取模式位(BUF-易失性可寫

每個堆疊的 W25N01GV 芯片為讀取操作提供兩種不同的模式,緩沖區(qū)讀取模式(BUF=1)和連續(xù)讀取模式(BUF=0)。 在任何讀取操作之前,需要一個頁面數(shù)據(jù)讀取命令來啟動從內(nèi)存數(shù)組中的指定頁到數(shù)據(jù)緩沖區(qū)的數(shù)據(jù)傳輸。 默認情況下,通電后,第 0 頁中的數(shù)據(jù)將自動加載到數(shù)據(jù)緩沖區(qū)中,設備已準備好接受任何讀取命令。



緩沖區(qū)讀取模式(BUF=1)需要一個列地址來開始輸出數(shù)據(jù)緩沖區(qū)內(nèi)的現(xiàn)有數(shù)據(jù), 一旦到達數(shù)據(jù)緩沖區(qū)(字節(jié) 2111)的末尾,DO(IO1)引腳將變?yōu)?high-Z 狀態(tài)。 連續(xù)讀取模式(BUF=0)不需要起始列地址。 設備將始終從數(shù)據(jù)緩沖區(qū)的第一列(字節(jié) 0)開始輸出數(shù)據(jù), 一旦到達數(shù)據(jù)緩沖區(qū)(字節(jié) 2048)的末尾,數(shù)據(jù)輸出將繼續(xù)通過下一個內(nèi)存頁。 在連續(xù)讀取模式下,可以使用單個讀取命令讀取整個內(nèi)存陣列。

關(guān)于不同讀取模式下每個讀取命令的虛擬循環(huán)要求,請參考各自的命令說明。 對于 W25M02GVxxIG 零件號,兩個堆疊模具通電后 BUF 位的默認值為 1。
BUF 位可以單獨寫入狀態(tài)寄存器 2 中的 0,以執(zhí)行連續(xù)讀取操作。
對于 W25M02GVxxIT 零件號,兩個堆疊模具通電后 BUF 位的默認值為 0。
BUF 位可以單獨寫入狀態(tài)寄存器 2 中的 1,以執(zhí)行緩沖區(qū)讀取操作。




7.3.1查找表已滿(LUT-F-僅狀態(tài)

為了方便 NAND 閃存壞塊管理,每個堆疊的 W25N01GV 芯片都配備了內(nèi)部壞塊管理查找表(BBM LUT)。 一個好的內(nèi)存塊可以替換多達 20 個壞內(nèi)存塊。 塊的地址作為邏輯塊地址(LBA,壞塊)和物理塊地址(PBA,good 塊)存儲在內(nèi)部查找表中。

LUT-F 位指示 20 個存儲器塊鏈路是否已被充分利用。 LUT-F 的默認值為 0,一旦全部 20 個鏈路都被使用, LUT-F 將變?yōu)?1,并且不可能建立更多的存儲塊鏈路。



7.3.2累計ECC狀態(tài)(ECC-1ECC-0-僅狀態(tài)

在 NAND 閃存中使用 ECC 功能來糾正讀取操作中的有限內(nèi)存錯誤。 讀取操作完成后,應檢查 ECC 狀態(tài)位(ECC-1、ECC-0),以驗證數(shù)據(jù)的完整性。 如果 ECC-E=0,ECC 狀態(tài)位值不重要。 在通電循環(huán)或復位命令后,這些位將被清除為 0。



ECC-1=0
ECC-0=0
整個數(shù)據(jù)輸出成功,無需任何 ECC 校正。
ECC-1=0
ECC-0=1
整個數(shù)據(jù)輸出成功,單頁或多頁中有 1~4 位/頁 ECC 校正。
ECC-1=1
ECC-0=0
整個數(shù)據(jù)輸出僅在單個頁面中包含超過 4 位的錯誤,ECC 無法修復這些錯誤。


在連續(xù)讀取模式下,可以使用附加命令來讀取出現(xiàn)錯誤的頁地址(PA)。
ECC-1=1
ECC-0=1
整個數(shù)據(jù)輸出在多個頁面中包含超過 4 位的錯誤/頁。(僅適用于連續(xù)讀取操作(BUF=0))
在連續(xù)讀取模式下,附加命令只能提供發(fā)生故障的最后一頁地址(PA),
用戶無法獲取其他失敗頁面的 PA。數(shù)據(jù)不適合使用。


7.3.3程序/擦除失�。�P-失敗,E-失�。�-僅狀態(tài)

程序/擦除失敗位用于指示內(nèi)部控制的程序/擦除操作是否成功執(zhí)行。 當向鎖定或受保護的存儲器陣列或 OTP 區(qū)域發(fā)出程序或擦除命令時,這些位也將被分別設置。 在程序執(zhí)行或塊擦除指令以及設備復位指令開始時,這兩個位都將被清除。



7.3.4寫入啟用閂鎖(WEL僅狀態(tài)

寫啟用閂鎖(WEL)是狀態(tài)寄存器(S1)中的一個只讀位,在執(zhí)行寫啟用指令后被設置為 1。 當設備被禁用寫入時,WEL 狀態(tài)位被清除為 0。 寫入禁用狀態(tài)在通電時或以下任何指令之后發(fā)生:

OTP 頁的寫禁用、程序執(zhí)行、塊擦除、頁數(shù)據(jù)讀取、程序執(zhí)行和壞塊管理。


7.3.5擦除/程序進行中(BUSY(忙))-僅狀態(tài)

BUSY 是狀態(tài)寄存器(S0)中的只讀位, 當設備通電或執(zhí)行頁面數(shù)據(jù)讀取、壞塊管理、程序執(zhí)行、塊擦除、OTP 區(qū)域的程序執(zhí)行、 OTP 鎖定或連續(xù)讀取指令之后,該位被設置為 1 狀態(tài)。 在此期間,設備將忽略除讀取狀態(tài)寄存器和讀取 JEDEC ID 指令以外的其他指令。 當程序、擦除或?qū)懭霠顟B(tài)寄存器指令完成時,忙位將被清除

到 0 狀態(tài),指示設備已準備好接受進一步的指令。


總結(jié)
1、輸出指定從設備輸出的數(shù)據(jù)。
2、字節(jié)地址或列地址(CA)只需要 CA[11:0],CA[15:12]被視為偽位。
3、頁地址(PA)需要 16 位。
PA[15:6]是 128KB 塊的地址(共 1024 個塊),PA[5:0]是 2KB 頁的地址(每個塊總共 64 頁)。
4、邏輯和物理塊地址(LBA 和 PBA)都由 16 位組成。
LBA[9:0]和 PBA[9:0]是有效的塊地址。[14:15]用于補充信息。
5、狀態(tài)寄存器地址:

狀態(tài)寄存器 1/保護寄存器:Addr=Axh 狀態(tài)寄存器 2/配置寄存器:Addr=Bxh 狀態(tài)寄存器3/狀態(tài)寄存器:Addr=Cxh

10、當保護寄存器中的 WP-E 位設置為 1 時,所有四元程序/讀取命令被禁用。

11、對于連續(xù)讀取模式下的所有讀取操作,一旦/CS 信號被調(diào)高以終止讀取操作,設備仍將保持忙碌狀態(tài)~5us(busy=1),并且數(shù)據(jù) 緩沖區(qū)內(nèi)的所有數(shù)據(jù)都將丟失,無法可靠使用。

必須發(fā)出新的頁數(shù)據(jù)讀取指令,才能將正確的頁數(shù)據(jù)重新加載到數(shù)據(jù)緩沖區(qū)中。

12、對于緩沖區(qū)讀取模式下的所有讀取操作,一旦/CS 信號變?yōu)楦咭越K止讀取操作,設備將準備好接受新的指令,并且數(shù)據(jù)緩沖區(qū)內(nèi) 的所有數(shù)據(jù)將與上一頁數(shù)據(jù)讀取指令保持不變。



BUF==1 時 指令大同小異




8.2.1軟件模具選擇(C2h

每個疊層模具都有工廠預先指定的“模具 ID”,順序為 0x00、0x01 等。 在任何給定的時間,W25M 包內(nèi)只能有一個活動的模具,用于與外部 SPI 控制器通信。 通電后,模具 0 始終為活動模具。

軟件模具選擇(C2h)指令用于根據(jù)圖 4 所示 C2h 指令后的 8 位模具 ID 選擇要激活的特定模具。


“并行操作”可以通過分配當前活動的模具來執(zhí)行需要一定時間才能完成的擦除/程序操作來實現(xiàn)。 當內(nèi)部程序/擦除操作正在進行時,控制器可以發(fā)出“軟件模具選擇(C2h)”指令來選擇另一個要激活的模具。 根據(jù)系統(tǒng)要求,可以在新選擇的活動模具上執(zhí)行讀取、編程或擦除操作。 “邊讀邊程序/擦除”或“多芯片程序/擦除”可以以這種方式執(zhí)行,以提高系統(tǒng)程序/擦除吞吐量,并避免在某些應用程序中持續(xù)的 程序/擦除掛起和恢復活動。



在設備加電和復位期間,建議不要發(fā)出“軟件模具選擇(C2h)”命令,以避免設備可能的未知狀態(tài)。 最小 tVSL(見第 56 頁)和最大 tRST(見第 60 頁)值可分別應用于“軟件模具選擇(C2h)”命令。



如果發(fā)送到設備的模具 ID 錯誤,則兩個堆疊的 W25N01GV 模具都可能閑置。 在這種情況下,應發(fā)出一個新的“軟件模具選擇(C2h)”命令, 后跟正確的模具 ID(0x00 或 0x01),以重新選擇激活的模具。



8.2.2設備復位(FFh

由于封裝小,引腳數(shù)量有限,W25M02GV 提供軟件復位指令,而不是專用復位引腳。 一旦復位指令被接受,任何正在進行的內(nèi)部操作都將被終止,設備將返回其默認上電狀態(tài),并丟失所有當前易失性設置,例如易失性 狀態(tài)寄存器位。

一旦設備接受復位命令,設備將需要大約 tRST 來復位,根據(jù)設備正在執(zhí)行的當前操作,tRST 可以是 5us~500us。 在此期間,不接受任何命令。

此外,“軟件模具選擇(C2h)”不應在最大 tRST(500us)時間段內(nèi)發(fā)出,以避免由于模具的重置狀態(tài)而導致的模具選擇混亂。 當設備接受復位命令序列時,如果正在進行內(nèi)部擦除或程序操作,則可能會發(fā)生數(shù)據(jù)損壞。 建議在發(fā)出復位命令之前檢查狀態(tài)寄存器中的忙位。



通電和設備復位后狀態(tài)寄存器的默認值


8.2.3讀取JEDECID9Fh

Read JEDEC ID 指令與 2003 年采用的 SPI 兼容串行存儲器 JEDEC 標準兼容。 該指令通過驅(qū)動/CS 引腳低并移動指令代碼“9Fh”和 8 個假時鐘來啟動。

然后,JEDEC 為 Winbond(EFh)分配的制造商 ID 字節(jié)和兩個設備 ID 字節(jié)在 CLK 的下降沿移出,首先是最有效位(MSB),如圖 6
所示。有關(guān)存儲器類型和容量值,請參閱制造商和設備標識表。
8.2.4讀取狀態(tài)寄存器(0Fh/05h

讀取狀態(tài)寄存器指令允許讀取 8 位狀態(tài)寄存器。

該指令通過驅(qū)動/CS low,并將指令代碼“0Fh 或 05h”移到 CLK 上升沿上的 DI 引腳中,然后是一個 8 位狀態(tài)寄存器地址。 然后狀態(tài)寄存器位在 CLK 下降沿的 DO 引腳上移出,首先是最有效位(MSB),如圖 7 所示。

狀態(tài)寄存器說明見第 7.1-3 節(jié)。


讀取狀態(tài)寄存器指令可在任何時候使用,即使在程序或擦除周期正在進行時也是如此。 這允許檢查忙狀態(tài)位以確定周期何時完成以及設備是否可以接受另一條指令。 狀態(tài)寄存器可以連續(xù)讀取。

指令通過駕駛/CS 高速來完成。


8.2.5寫入狀態(tài)寄存器(1Fh/01h

寫入狀態(tài)寄存器指令允許寫入狀態(tài)寄存器。 可寫狀態(tài)寄存器位包括:

狀態(tài)寄存器 1 中的 SRP[1:0]、TB、BP[3:0]和 WP-E 位; 狀態(tài)寄存器 2 中的 OTP-L、OTP-E、SR1-L、ECC-E 和BUF 位。



所有其他狀態(tài)寄存器位位置都是只讀的,不受寫入狀態(tài)寄存器指令的影響。

要寫入狀態(tài)寄存器位,輸入指令的方法是:驅(qū)動/CS low,發(fā)送指令代碼“1Fh 或 01h”,然后發(fā)送 8 位狀態(tài)寄存器地址,然后寫入狀 態(tài)寄存器數(shù)據(jù)字節(jié),如圖 8 所示。 狀態(tài)寄存器說明見第 7.1-3 節(jié)。

通電后,BP[3:0]、TB、ECC-E 位的出廠默認值為 1,其他位為 0。


8.2.6寫啟用(06h

寫啟用指令(圖 9)將狀態(tài)寄存器中的寫啟用閂鎖(WEL)位設置為 1。
WEL 位必須在每個頁面程序、四頁程序、塊擦除和壞塊管理指令之前設置。
寫入使能指令通過驅(qū)動/CS low 輸入,將指令代碼“06h”移入 CLK 上升沿的數(shù)據(jù)輸入(DI)引腳,然后驅(qū)動/CS high。



8.2.7寫禁用(04h

寫禁用指令(圖 10)將狀態(tài)寄存器中的寫啟用閂鎖(WEL)位重置為 0。

通過驅(qū)動/CS low,將指令代碼“04h”移到 DI pin,然后驅(qū)動/CS high,輸入寫禁用指令。 請注意,WEL 位在通電后以及頁面程序、四頁程序、塊擦除、重置和壞塊管理指令完成后自動重置。

8.2.8壞塊管理(A1h

由于 NAND 內(nèi)存密度大,且受技術(shù)限制,在出廠測試中發(fā)現(xiàn)一定數(shù)量的“壞塊”時,NAND 內(nèi)存設備允許運往最終客戶。 裝運時,多達 2%的內(nèi)存塊可標記為“壞塊”,這是每個堆疊的 W25N01GV 模具最多 20 塊。 為了識別這些壞塊,建議掃描整個內(nèi)存陣列以查找出廠時設置的壞塊標記。

“壞塊標記”是存儲在每個壞塊的第 0 頁字節(jié) 0 處的非 FFh 數(shù)據(jù)字節(jié)。 另一個標記也存儲在 64 字節(jié)備用區(qū)域的第一個字節(jié)中。



W25M02GV 提供了一種方便的方法來管理 NAND 閃存中在大量使用后通常發(fā)現(xiàn)的壞塊。 “壞塊管理”命令是通過將指令代碼“A1h”移到 DI 管腳,然后是 16 位“邏輯塊地址”和16 位“物理塊地址”,如圖 11 所示。 在設備接受壞塊管理指令之前,必須執(zhí)行寫啟用指令(狀態(tài)寄存器位 WEL=1)。 邏輯塊地址是“壞”塊的地址,它將被物理塊地址指示的“好”塊替換。



成功執(zhí)行壞塊管理命令后,指定的 LBA-PBA 鏈接將添加到內(nèi)部查找表(LUT)。 在非易失性 LUT 中可以建立多達 20 個鏈路。

如果所有 20 條鏈路都已寫入,狀態(tài)寄存器中的 LUT-F 位將變?yōu)?1,并且不能再建立 LBA-PBA 鏈路。 因此,在發(fā)出壞塊管理命令之前,可以檢查 LUT-F 位值,或者可以發(fā)出“閱讀BBM 查找表”命令來確認 LUT 中是否仍然有備用鏈路



為了保證前 1000 個塊上的連續(xù)讀取操作,制造商可能使用了一些 BBM LUT 入場權(quán)。 建議用戶在第一次擦除/程序操作之前掃描所有塊并保存所有制造商壞塊的表。 禁止在多個 PBA 中注冊同一地址。它可能導致意外行為。



8.2.9讀取BBM查找表(A5h

內(nèi)部查找表(LUT)由 20 個邏輯物理內(nèi)存塊鏈接組成(從 LBA0/PBA0 到 LBA19/PBA19)。
“閱讀 BBM 查找表”命令可用于檢查存儲在 LUT 中的現(xiàn)有地址鏈接。


“讀取 BBM 查找表”命令通過將指令代碼“A5h”移入 DI 引腳,然后是 8 位虛擬時鐘,在第 16 個時鐘的下降沿,設備將開始輸出 16
位“邏輯塊地址”和 16 位“物理塊地址”,如圖 12 所示。

所有塊地址鏈路將從 LUT 中的第一個鏈路(LBA0 和 PBA0)開始按順序輸出。 如果有未使用的可用鏈接,輸出將包含所有“00h”數(shù)據(jù)。



每個鏈路的 MSB 位 LBA[15:14]用于指示鏈路的狀態(tài)。



為了更好地管理數(shù)據(jù)完整性,W25M02GV 對整個內(nèi)存陣列執(zhí)行內(nèi)部 ECC 校正。

當狀態(tài)/配置寄存器中的 ECC-E 位設置為 1(也是加電默認值)時,所有程序和讀取操作都啟用內(nèi)部 ECC 算法。 在特定頁面的“程序執(zhí)行”命令期間,ECC 算法將根據(jù) 2K 字節(jié)數(shù)據(jù)緩沖區(qū)內(nèi)的數(shù)據(jù)計算 ECC 信息,并將 ECC 數(shù)據(jù)寫入同一物理內(nèi)存 頁中額外的 64 字節(jié) ECC 區(qū)域。



在讀取操作期間,ECC 信息將用于驗證從物理內(nèi)存陣列中讀取的數(shù)據(jù),并且可以對包含錯誤的有限數(shù)量的數(shù)據(jù)位進行可能的更正。
ECC 狀態(tài)位(ECC-1 和 ECC-0)也將被設置,指示 ECC 計算的結(jié)果。


對于“連續(xù)讀取模式(BUF=0)”操作,可以通過發(fā)出單個讀取命令連續(xù)讀取多頁主陣列數(shù)據(jù)。 在完成讀取操作后,應檢查 ECC 狀態(tài)位,以驗證讀取的數(shù)據(jù)中是否存在 ECC 校正或不可糾正的錯誤。

如果 ECC-1 和 ECC-0 等于(1,0)或(1,1),則以前讀取的數(shù)據(jù)包含一個或多個包含 ECC 不可糾正錯誤的頁。 可以通過發(fā)出“上次 ECC 失敗頁地址”命令獲得失敗頁面地址(如果是多個頁面,則為最后一個頁面地址),如圖 13 所示。 包含不可糾正 ECC 錯誤的 16 位頁地址將顯示在指令代碼“A9h”之后的 DO 引腳上,DI 引腳上的 8 位虛擬時鐘之后。




128KB 塊擦除指令將指定塊(64 頁,128K 字節(jié))中的所有內(nèi)存設置為所有 1(FFh)的已擦除狀態(tài)。

在設備接受塊擦除指令(狀態(tài)寄存器位 WEL 必須等于 1)之前,必須執(zhí)行寫啟用指令。 該指令通過驅(qū)動/CS 引腳低,并移動指令代碼“D8h”,然后是 8 位虛擬時鐘和 16 位頁地址來啟動。 塊擦除指令序列如圖 14 所示。



在鎖存最后一個字節(jié)的第八位之后,/CS 引腳必須被驅(qū)動到高位。 如果不這樣做,將不執(zhí)行塊擦除指令。

在/CS 被驅(qū)動為高電平后,自定時塊擦除指令將在 tBE 的持續(xù)時間內(nèi)開始(參見交流特性)。 當塊擦除周期正在進行時,仍可以訪問讀取狀態(tài)寄存器指令以檢查忙位的狀態(tài)。 在塊擦除周期中,忙位為 1,當周期結(jié)束且設備準備再次接受其他指令時,忙位變?yōu)?0。 塊擦除周期完成后,狀態(tài)寄存器中的寫入啟用閂鎖(WEL)位被清除為 0。 如果尋址塊受塊保護(TB、BP2、BP1 和 BP0)位保護,則不會執(zhí)行塊擦除指令。



這里雖然用的是頁地址,擦除擦除時還是按塊擦除,即 64 頁的數(shù)據(jù)都擦除。 這使得數(shù)據(jù)不好進行修改操作,這是這個 IC 的缺點。 另一個缺點就是存在壞塊,所以需要壞塊管理。

有人建議使用前把全部塊測試一遍,我把 65536*2 個頁面都測試了一遍,我這個 IC 沒有發(fā)現(xiàn)壞塊。



8.2.12加載程序數(shù)據(jù)(02h/隨機加載程序數(shù)據(jù)(84h

程序操作允許在先前擦除的(FFh)內(nèi)存位置對 1 字節(jié)到 2112 字節(jié)(一頁)的數(shù)據(jù)進行編程。 程序操作包括兩個步驟:

1 將程序數(shù)據(jù)加載到數(shù)據(jù)緩沖區(qū)。
2 發(fā)出“程序執(zhí)行”命令將數(shù)據(jù)從數(shù)據(jù)緩沖區(qū)傳輸?shù)街付ǖ膬?nèi)存頁。


在設備接受加載程序數(shù)據(jù)指令(狀態(tài)寄存器位 WEL=1)之前,必須執(zhí)行寫啟用指令。 “加載程序數(shù)據(jù)”或“隨機加載程序數(shù)據(jù)”指令是通過驅(qū)動/CS 引腳低,然后將指令代碼“02h”或“84h”后接 16 位列地址(只有 CA[11:0]有效)和至少一個字節(jié)的數(shù)據(jù)轉(zhuǎn)移到 DI 管腳來啟動。

當數(shù)據(jù)被發(fā)送到設備時,/CS 引腳在整個指令長度內(nèi)必須保持在低位。 如果發(fā)送到設備的數(shù)據(jù)字節(jié)數(shù)超過數(shù)據(jù)緩沖區(qū)中的數(shù)據(jù)字節(jié)數(shù),設備將忽略多余的數(shù)據(jù)。 加載程序數(shù)據(jù)指令序列如圖 15 所示。



“加載程序數(shù)據(jù)”和“隨機加載程序數(shù)據(jù)”指令共享相同的命令序列。 不同的是,“加載程序數(shù)據(jù)”指令會將數(shù)據(jù)緩沖區(qū)中未使用的數(shù)據(jù)字節(jié)重置為 FFh 值,而“隨機加載程序數(shù)據(jù)”指令只更新命令輸入 序列指定的數(shù)據(jù)字節(jié),其余數(shù)據(jù)緩沖區(qū)將保持不變。



如果 ECC 算法中的所有字節(jié)都被 ECC 指定為 21 字節(jié),則 ECC 將接受額外字節(jié)的計算。
如果 ECC-E 位設置為 0 以禁用內(nèi)部 ECC,則額外的 64 字節(jié)部分可用于外部 ECC 或其他用途。



8.2.13QuadLoadProgramData(32h)/QuadRandomLoadProgramData(34h),



8.2.14程序執(zhí)行(10h

程序執(zhí)行指令是程序操作的第二步。

在程序數(shù)據(jù)加載到 2112 字節(jié)數(shù)據(jù)緩沖區(qū)(或在啟用 ECC 時為 2048 字節(jié))后,程序執(zhí)行指令將數(shù)據(jù)緩沖區(qū)內(nèi)容編程到指令中指定的 物理內(nèi)存頁中。

該指令通過驅(qū)動/CS 引腳低,然后將指令代碼“10h”,隨后是 8 位虛擬時鐘和 16 位頁面地址轉(zhuǎn)移到 DI pin,如圖 17 所示。


在/CS 被驅(qū)動到高電平以完成指令周期后,自定時程序執(zhí)行指令將在 tpp 的持續(xù)時間內(nèi)開始(參見 AC 特性)。 當程序執(zhí)行周期正在進行時,讀取狀態(tài)寄存器指令仍可用于檢查忙位的狀態(tài)。

在程序執(zhí)行周期中,忙位為 1,當周期結(jié)束且設備準備再次接受其他指令時,忙位變?yōu)?0。 程序執(zhí)行周期結(jié)束后,狀態(tài)寄存器中的寫入啟用閂鎖(WEL)位被清除為 0。 如果尋址頁受塊保護(TB、BP2、BP1 和 BP0)位保護,則不會執(zhí)行程序執(zhí)行指令。 每一頁只允許 4 個部分頁面程序時間。



塊內(nèi)的頁必須按順序從低階頁地址編程到塊內(nèi)的高階頁地址。 禁止無序編程頁面。





8.2.15頁面數(shù)據(jù)讀取(13h

頁數(shù)據(jù)讀取指令將指定內(nèi)存頁的數(shù)據(jù)傳輸?shù)?2112 字節(jié)的數(shù)據(jù)緩沖區(qū)。
該指令通過驅(qū)動/CS 引腳低,然后將指令代碼“13h”,隨后是 8 位虛擬時鐘和 16 位頁面地址轉(zhuǎn)移到 DI pin,如圖 18 所示。


在/CS 被驅(qū)動到高電平以完成指令周期后,自定時讀頁數(shù)據(jù)指令將在 tRD 的持續(xù)時間內(nèi)開始(見交流特性)。 當讀取頁數(shù)據(jù)循環(huán)正在進行時,讀取狀態(tài)寄存器指令仍可用于檢查忙位的狀態(tài)。 在讀頁數(shù)據(jù)循環(huán)期間,忙位為 1,當周期結(jié)束且設備準備再次接受其他指令時,忙位變?yōu)?0。



在 2112 字節(jié)的頁數(shù)據(jù)加載到數(shù)據(jù)緩沖區(qū)后,可以發(fā)出多個讀取指令來訪問數(shù)據(jù)緩沖區(qū)并讀出數(shù)據(jù)。 根據(jù)狀態(tài)寄存器中的 BUF 位設置,可以使用“緩沖區(qū)讀取模式”或“連續(xù)讀取模式”來完成讀取操作。





8.2.16讀取數(shù)據(jù)(03h

讀取數(shù)據(jù)指令允許在執(zhí)行讀取頁數(shù)據(jù)指令之后從數(shù)據(jù)緩沖區(qū)順序讀取一個或多個數(shù)據(jù)字節(jié)。

讀取數(shù)據(jù)指令通過驅(qū)動/CS 引腳低,然后將指令代碼“03h”,隨后是 16 位列地址和 8 位假時鐘或 24 位假時鐘移入 DI pin 來啟動。 在接收到地址后,地址數(shù)據(jù)緩沖區(qū)位置的數(shù)據(jù)字節(jié)將在 CLK 下降沿的 DO 引腳上移出,最有效位(MSB)優(yōu)先。 在數(shù)據(jù)的每個字節(jié)被移出后,地址會自動遞增到下一個更高的地址,以允許連續(xù)的數(shù)據(jù)流。

指令通過駕駛/CS 高速來完成。


讀取數(shù)據(jù)指令序列如圖 19a 和 19b 所示。當 BUF=1 時,設備處于緩沖區(qū)讀取模式。 數(shù)據(jù)輸出序列將從 16 位列地址指定的數(shù)據(jù)緩沖區(qū)位置開始,一直到數(shù)據(jù)緩沖區(qū)的末尾。 一旦數(shù)據(jù)的最后一個字節(jié)被輸出,輸出引腳將變成 Hi-Z 狀態(tài)。

當 BUF=0 時,設備處于連續(xù)讀取模式,數(shù)據(jù)輸出序列將從數(shù)據(jù)緩沖區(qū)的第一個字節(jié)開始,并遞增到下一個更高的地址。 當?shù)竭_數(shù)據(jù)緩沖區(qū)的末尾時,下一個內(nèi)存頁的第一個字節(jié)的數(shù)據(jù)將跟隨并繼續(xù)貫穿整個內(nèi)存數(shù)組。 這允許使用單個讀取指令讀取整個內(nèi)存陣列,并且還兼容 Winbond 的 SpiFlash NOR flash memory 命令序列。



快速讀取指令通過驅(qū)動/CS 引腳低,然后將指令代碼“0Bh”以及 16 位列地址和 8 位假時鐘或 32 位假時鐘轉(zhuǎn)移到 DI 引腳來啟動。 在接收到地址后,地址數(shù)據(jù)緩沖區(qū)位置的數(shù)據(jù)字節(jié)將在 CLK 下降沿的 DO 引腳上移出,最有效位(MSB)優(yōu)先。 在數(shù)據(jù)的每個字節(jié)被移出后,地址會自動遞增到下一個更高的地址,以允許連續(xù)的數(shù)據(jù)流。

指令通過駕駛/CS 高速來完成。


快速讀取指令序列如圖 20a 和 20b 所示。 當 BUF=1 時,設備處于緩沖區(qū)讀取模式。

數(shù)據(jù)輸出序列將從 16 位列地址指定的數(shù)據(jù)緩沖區(qū)位置開始,一直到數(shù)據(jù)緩沖區(qū)的末尾。 一旦數(shù)據(jù)的最后一個字節(jié)被輸出,輸出引腳將變成 Hi-Z 狀態(tài)。

當 BUF=0 時,設備處于連續(xù)讀取模式,數(shù)據(jù)輸出序列將從數(shù)據(jù)緩沖區(qū)的第一個字節(jié)開始,并遞增到下一個更高的地址。 當?shù)竭_數(shù)據(jù)緩沖區(qū)的末尾時,下一個內(nèi)存頁的第一個字節(jié)的數(shù)據(jù)將跟隨并繼續(xù)貫穿整個內(nèi)存數(shù)組。 這允許使用單個讀取指令讀取整個內(nèi)存陣列,并且還兼容 Winbond 的 SpiFlash NOR flash memory 命令序列。




快速讀取指令是通過驅(qū)動/CS 引腳低,然后將指令代碼“0Ch”,然后將 16 位列地址和 24 位假時鐘(當 BUF=1)或 40 位假時鐘(BUF=0
時)移入 DI 引腳來啟動。

在接收到地址后,地址數(shù)據(jù)緩沖區(qū)位置的數(shù)據(jù)字節(jié)將在 CLK 下降沿的 DO 引腳上移出,最有效位(MSB)優(yōu)先。 在數(shù)據(jù)的每個字節(jié)被移出后,地址會自動遞增到下一個更高的地址,以允許連續(xù)的數(shù)據(jù)流。

指令通過駕駛/CS 高速來完成。


快速讀取指令序列如圖 21a 和 21b 所示。當 BUF=1 時,設備處于緩沖區(qū)讀取模式。 數(shù)據(jù)輸出序列將從 16 位列地址指定的數(shù)據(jù)緩沖區(qū)位置開始,一直到數(shù)據(jù)緩沖區(qū)的末尾。 一旦數(shù)據(jù)的最后一個字節(jié)被輸出,輸出引腳將變成 Hi-Z 狀態(tài)。

當 BUF=0 時,設備處于連續(xù)讀取模式,數(shù)據(jù)輸出序列將從數(shù)據(jù)緩沖區(qū)的第一個字節(jié)開始,并遞增到下一個更高的地址。 當?shù)竭_數(shù)據(jù)緩沖區(qū)的末尾時,下一個內(nèi)存頁的第一個字節(jié)的數(shù)據(jù)將跟隨并繼續(xù)貫穿整個內(nèi)存數(shù)組。 這允許使用單個讀取指令讀取整個內(nèi)存陣列,并且還兼容 Winbond 的 SpiFlash NOR flash memory 命令序列。





除了主存儲器陣列外,每個堆疊的 W25N01GV 模具還配有一個唯一的 ID 頁、一個參數(shù)頁和十個 OTP 頁

要訪問這些附加數(shù)據(jù)頁,必須首先將狀態(tài)寄存器 2 中的 OTP-E 位設置為“1”。

然后,可以在唯一 ID 和參數(shù)頁上執(zhí)行讀取操作,如果 OTP 頁尚未鎖定,則可以在 OTP 頁上執(zhí)行讀取和程序操作。 要返回到主存儲器陣列操作,OTP-E 位需要設置為 0。



讀取操作必須發(fā)出“頁面數(shù)據(jù)讀取”命令,后跟上表中所示的特定頁面地址,才能將頁面數(shù)據(jù)加載到主數(shù)據(jù)緩沖區(qū)中。 在設備完成數(shù)據(jù)加載(BUSY=0)之后,所有的 Read 命令都可以用來從任何指定的列地址開始讀取數(shù)據(jù)緩沖區(qū)。 請注意,無論之前的 BUF 位設置如何,所有讀命令現(xiàn)在都必須遵循“緩沖區(qū)讀取模式”命令結(jié)構(gòu)(CA[15:0],虛擬時鐘的數(shù)量)。 還可以為 OTP 頁讀取操作啟用 ECC,以確保數(shù)據(jù)的完整性。



程序和OTP鎖定操作

OTP 頁提供額外的空間(2K 字節(jié) x10)來存儲重要的數(shù)據(jù)或安全信息, 這些數(shù)據(jù)或安全信息可以被鎖定以防止在字段中進行進一步修改。



這些 OTP 頁面處于出廠設置的擦除狀態(tài),并且只能編程(將數(shù)據(jù)從“1”更改為“0”),直到被配置/狀態(tài)寄存器 2 中的 OTP-L 位鎖定。 必須首先將 OTP-E 設置為“1”以允許訪問這些OTP 頁,然后必須使用任何“程序數(shù)據(jù)加載”命令將程序數(shù)據(jù)加載到主數(shù)據(jù)緩沖區(qū)。 “程序執(zhí)行”命令后跟特定的 OTP 頁地址,用于啟動從數(shù)據(jù)緩沖區(qū)到 OTP 頁的數(shù)據(jù)傳輸。

當啟用 ECC 時,ECC 計算將在“程序執(zhí)行”期間執(zhí)行,ECC 信息將存儲在 64 字節(jié)的備用區(qū)域中。


一旦 OTP 頁面被正確編程,OTP-L 位可用于永久鎖定這些頁面,因此無法進行進一步的修改。

當仍處于“OTP 訪問模式”(OTP-E=1)時,用戶需要將配置/狀態(tài)寄存器 2 中的 OTP-L 位設置為“1”,并發(fā)出“程序執(zhí)行”命令(頁 面地址為“無所謂”)。

在設備完成 OTP 鎖定設置(BUSY=0)后,用戶可以將 OTP-E 設置為“0”,以返回到主存儲器陣列操作。


SR1-LOTP鎖定操作

保護/狀態(tài)寄存器-1 包含保護位,可設置為保護部分或整個內(nèi)存陣列不被編程/擦除,或?qū)⒃O備設置為軟件寫入保護(WP-E=0)或硬 件寫入保護(WP-E=1)。

一旦 BP[3:0],TB,WP-E 位設置正確,SRP1 和 SRP0 也應設置為“1”,以允許將 SR1-L 位設置為“1”,以永久鎖定狀態(tài)寄存器 1
(SR1)中的保護設置。
與上面的 OTP-L 設置過程類似,為了設置 SR1-L 鎖位,設備必須首先進入“OTP 訪問模式”(OTP-E=1),在“程序執(zhí)行”命令之前,
SR1-L 位應設置為“1”(頁面地址為“無所謂”)。
一旦 SR1-L 設置為“1”(BUSY=0),用戶可以將 OTP-E 設置為“0”以返回到主存儲器陣列操作。



8.2.28參數(shù)頁數(shù)據(jù)定義

參數(shù)頁包含 3 個 256 字節(jié)參數(shù)數(shù)據(jù)的相同副本。 下表列出了所有關(guān)鍵數(shù)據(jù)字節(jié)的位置。 所有其他未指定的字節(jié)位置都默認有 00h 數(shù)據(jù)。





全部資料51hei下載地址:
W25M02_W25N01中文版 原版(70%中文).rar (4.45 MB, 下載次數(shù): 60)

評分

參與人數(shù) 1黑幣 +100 收起 理由
admin + 100 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:201190 發(fā)表于 2021-6-1 16:27 | 只看該作者
有操作代碼嗎
回復

使用道具 舉報

板凳
ID:155701 發(fā)表于 2021-6-11 14:47 | 只看該作者
回復

使用道具 舉報

地板
ID:414303 發(fā)表于 2023-2-1 11:10 | 只看該作者
請問下:
“成功執(zhí)行壞塊管理命令后,指定的 LBA-PBA 鏈接將添加到內(nèi)部查找表(LUT)”后,如果向壞塊中(LBA)寫入數(shù)據(jù),數(shù)據(jù)是會自動寫入PBA代表的block中嗎?
回復

使用道具 舉報

5#
ID:391781 發(fā)表于 2023-3-6 23:49 | 只看該作者
很棒,剛好需要使用這個芯片。
回復

使用道具 舉報

6#
ID:249650 發(fā)表于 2024-6-16 16:55 | 只看該作者
剛好用這個芯片,感謝分享
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表