解讀Datasheet系列:W25Q80DV(華邦 SPI Flash)
本文只對 W25Q80DV 數(shù)據(jù)手冊的一部分進(jìn)行解讀,其涵蓋的內(nèi)容基本足夠開發(fā)標(biāo)準(zhǔn) SPI 接口的 Linux 驅(qū)動和裸板驅(qū)動
一般描述
W25Q80DV(8M-bit)是一個串行 Flash 存儲器。容量為 8M-bit(存儲器被組織成 4096 頁,每頁 256 字節(jié)),同一時間最多可以寫 256 字節(jié)(一頁)。
頁擦除方式可以按 16 頁一組(4KB sector erase)、128 頁一組(32KB block erase)、256 頁一組(64KB block erase)或者整片擦除(chip erase)。擦除操作只能按扇區(qū)擦除或按塊擦除,W25Q80DV 分別有 256 個可擦除扇區(qū)(sector,每個扇區(qū)4KB)和 16 個可擦除塊(block,每個塊64KB)。
實(shí)際上,4 KB 的小扇區(qū)為需要存儲數(shù)據(jù)和參數(shù)的應(yīng)用程序提供了更大的靈活性。
Anyway,先記住下面的參數(shù):
- Page:256 Bytes
- Sector:16 Pages(4KB)
- Block:16 Sector(64KB)
供電:2.7V 到 3.6V,power-down 的電流低至 1μA。
W25Q80DV 支持標(biāo)準(zhǔn)的 SPI(Serial Peripheral Interface),也支持高性能的 Dual/Quad 輸出,以及 Dual/Quad I/O SPI,即 Serial Clock,Chip Select,Serial Data I/O0(DI),I/O1(DO),I/O2(/WP)和 I/O3(/HOLD)。
W25Q80DV 支持的 SPI 時鐘頻率高達(dá) 104MHz,以及當(dāng)使用快速讀 Dual/Quad I/O 指令時,Dual I/O 模式的等效時鐘頻率 208MHz(104MHz * 2)和 Quad I/O 模式的 416MHz(104MHz * 2)。這樣的傳輸速率超過標(biāo)準(zhǔn)的異步 8 位和 16 位的并行 Flash 存儲器。
Hold 管腳和 Write Protect 管腳提供了更進(jìn)一步的控制靈活性。
此外,W25Q80DV 設(shè)備支持 64 位唯一的 JEDEC 標(biāo)準(zhǔn)廠商和設(shè)備標(biāo)識序列號。
特性
- W25Q80DV:8M-bit/1M-byte(1,048,576)
- 每個可編程頁的大小為 256 字節(jié)
- 標(biāo)準(zhǔn) SPI:CLK,/CS,DI,DO,/WP,/Hold
- Dual SPI:CLK,/CS,IO0,IO1,/WP,/Hold
- Quad SPI:CLK,/CS,IO0,IO1,IO2,IO3
- 統(tǒng)一的 4KB 扇區(qū)(Sector),32KB 和 64KB 的塊(Block)
芯片封裝和管腳定義
SOIC、WSON、PDIP
管腳描述
Chip Select(/CS,片選)
Serial Data Input, Output and IOs(DI, DO and IO0, IO1, IO2, IO3)
Write Protect(/WP,寫保護(hù))
寫保護(hù)(Write Protect)管腳用于防治狀態(tài)寄存器被寫,該功能需要結(jié)合狀態(tài)寄存器的塊保護(hù)(Block Protect)位(CMP,SEC,TB,BP2,BP1 和 BP0)以及狀態(tài)寄存器的保護(hù)位(SRP0)一起使用。小至 4KB 的扇區(qū),大至整個存儲親陣列都能被硬件保護(hù)。/WP 管腳低電平有效,如果狀態(tài)寄存器2 的 QE 位被置為 Quad I/O,/WP 管腳的功能不再是寫保護(hù),而是 IO2。
HOLD(/HOLD)
/HOLD 管腳允許設(shè)備被選中后能夠暫停,當(dāng) /HOLD 管腳被拉低且 /CS 為低電平時,DO 管腳將變成高阻抗,而 DI 和 CLK 管腳將會被忽略。當(dāng) /HOLD 被拉高,設(shè)備操作恢復(fù)。在多個設(shè)備共享同一個 SPI 信號時,/HOLD 功能就很有用了。/HOLD 管腳低電平有效,當(dāng)狀態(tài)寄存器2 的 QE 位被置為 Quad I/O 時,/HOLD 管腳功能失效,而變成 IO3。
SPI 串行時鐘輸入管腳為串行輸入和輸出操作提供時序。
結(jié)構(gòu)圖
寄存器
控制寄存器 & 狀態(tài)寄存器
讀 狀態(tài)寄存器1 和 狀態(tài)寄存器2 指令用于提供有效 Flash 存儲器陣列的狀態(tài),比如設(shè)備的寫使能、寫保護(hù)、Quad SPI 設(shè)置、安全寄存器鎖狀態(tài)和 Erase/Program 掛起狀態(tài)等。
寫 狀態(tài)寄存器 指令用于配置設(shè)備寫保護(hù)特性、Quad SPI 設(shè)置、安全寄存器 OTP 鎖等等。寫 狀態(tài)寄存器 的訪問權(quán)限由 non-volatile 狀態(tài)寄存器的保護(hù)位(SRP0,SRP1)控制,寫使能指令,以及 Standard/Dual SPI 操作期間的 /WP 管腳狀態(tài)。
狀態(tài)寄存器
BUSY
狀態(tài)寄存器(S0)中的 BUSY 位是只讀的,當(dāng)設(shè)備正在執(zhí)行 Page Program、Quad Page Program、Sector Erase、Block Erase、Chip Erase、寫狀態(tài)寄存器或者 Erase/Program Security 寄存器指令時,BUSY 位就會置1。在 BUSY=1 期間,設(shè)備除了讀狀態(tài)寄存器和 Erase/Program Suspend 指令之外,其他指令都會被忽略。當(dāng)這些 program、erase、write 狀態(tài)或安全寄存器指令執(zhí)行完畢,BUSY 位就會被清為 0,表示設(shè)備已經(jīng)準(zhǔn)備好執(zhí)行其他指令了。
Write Enable Latch (WEL)
狀態(tài)寄存器(S1)中的 WEL 位是只讀的,在執(zhí)行完寫使能(Write Enable)指令后會置1。當(dāng)設(shè)備被設(shè)置為寫失能(Write Disable)時則被清0。
Block Protect Bits (BP2, BP1, BP0)
Block 保護(hù)位(BP2, BP1, BP0)是狀態(tài)寄存器(S4, S3, S2)中的非易失讀寫位
Top/Bottom Block Protect (TB)
Sector/Block Protect (SEC)
Complement Protect (CMP)
Status Register Protect (SRP1, SRP0)
Erase/Program Suspend Status (SUS)
Security Register Lock Bits (LB3, LB2, LB1)
Quad Enable (QE)
Status Register Memory Protection (CMP = 0)
Status Register Memory Protection (CMP = 1)
指令
W25Q80DV 的指令集包含 34 個基本指令(完全通過 SPI 總線控制)。指令由片選信號的下降沿開始,數(shù)據(jù)的第一個字節(jié)是指令碼,DI 輸入管腳在時鐘上升沿時采集數(shù)據(jù),MSB 在前。
指令長度從單個字節(jié)到多個字節(jié)變化,指令碼后面可能帶有 address bytes、data bytes、dummy bytes(不關(guān)心),在一些情況下,會組合起來。
所有的讀指令能在任意時鐘位之后完成,但是所有的寫、編程、擦除指令必須在一個字節(jié)界限之后才能完成,否則指令將會被忽略。
廠商和設(shè)備標(biāo)識
指令表(Standard SPI Instructions)
(只列出常用指令,碼制為十六進(jìn)制)
SPI 操作
W25Q80DV 支持標(biāo)準(zhǔn) SPI 指令。W25Q80DV 允許通過 SPI 兼容總線進(jìn)行操作,包括四個信號:串行時鐘(CLK)、片選(/CS)、串行數(shù)據(jù)輸入(DI)和串行數(shù)據(jù)輸出(DO)。標(biāo)準(zhǔn) SPI 指令使用 DI 輸入管腳將指令、地址和數(shù)據(jù)連續(xù)地寫到設(shè)備(在 CLK 上升沿),DO 輸出管腳用于從設(shè)備端讀數(shù)據(jù)或狀態(tài)(在 CLK 下降沿)。
支持 SPI 總線操作模式0 (0, 0) 和模式3 (1, 1)。
---------------------
以上,Winbond(華邦)系列產(chǎn)品特點(diǎn)總結(jié),如您有疑問想洽談合作,不妨來咨詢華邦flash芯片代理-深圳穎特新科技;穎特新作為Winbond代理商,將竭盡全力為您服務(wù)。0755-82591179.
編輯:Simon 最后修改時間:2019-05-13