SPI FLASH學習筆記(一)讀操作


FLASH芯片使用:GD5F1GQ4UEYIG

概況
SPI(串行外圍接口)NAND閃存可提供超低成本的同時高密度非易失性存儲器基於行業標准NAND閃存內核的嵌入式系統存儲解決方案。這是一個有吸引力的具有高級功能的SPI-NOR和標准並行NAND閃存的替代產品:
  •總引腳數為8,包括VCC和GND
  •密度為1G位
  •優於SPI-NOR的卓越寫入性能和每位成本
  •比並行NAND低得多的成本
這種低引腳數NAND閃存遵循行業標准的串行外圍設備接口,始終保持從一種密度到另一種密度的相同引出線。該命令集類似於常見的SPI-NOR命令集,修改為處理NAND特定功能並添加了新功能。 GigaDevice SPI NAND是易於集成的NAND閃存內存,具有指定的設計功能以簡化主機管理:
  •用戶可選的內部ECC。 ECC代碼是在頁面編程操作期間內部生成的。當頁面是讀取到高速緩存寄存器后,將檢測ECC​​代碼並在必要時更正錯誤。 64字節的備用區是即使啟用內部           ECC也可用。設備輸出校正后的數據並返回ECC錯誤狀態。
  •內部數據通過內部ECC移動或復制回去。該設備可以輕松刷新並管理垃圾收集任務,而無需移入和移出數據。
  •使用內部ECC打開讀取電源。設備上電后將自動讀取第一塊的第一頁以進行緩存然后主機可以直接從緩存中讀取數據以方便啟動。此外,內部ECC正確承諾了數據。在基於頁面的操作中對其進行編程和讀取,而在基於塊的操作中對其進行擦除。數據往返於將NAND閃存陣列逐頁連接到數據寄存器和緩存寄存器。高速緩存寄存器最接近I / O控制電路,並充當I / O數據的數據緩沖區;數據寄存器最靠近存儲器陣列,並作為數據NAND閃存陣列操作的緩沖區。高速緩存寄存器用作緩沖存儲器以啟用頁面和隨機數據讀/寫和回寫操作。這些設備還使用SPI狀態寄存器來報告狀態設備操作。

FLASH接品定義:

 

FLASH框圖

 

內存陣列結構

 

 

 

 注意: 1.啟用內部ECC后,用戶只可以對整個128字節備用區的前64個字節寫數擾, 整個備用區的最后64個字節無法編程,用戶可以讀取整個128字節的備用區。

             2.禁用內部ECC時,用戶可以讀取和編程整個128字節的備用區。

尋址

 

注意:
1. CA:列地址。 12位地址的地址范圍為0到4095字節。 但是,只有字節0至2175有效。 每個頁面的字節2176至4095是“超出范圍”的,在設備中不存在,
並且無法解決。
2. RA:行地址。 RA <5:0>選擇一個塊內的頁面,RA <15:6>選擇一個塊。

命令列表

 

Notes:
1. The dummy byte can be inputted or not.
2. The x8 clock = dummy<7:0>.
3. The x8 clock = dummy<7:0>, D7-D0.
4. The x8 clock = dummy<3-0>, A11-A8 or dummy<3-0>, A11-A0.
5. The x8 clock = dummy<3-0>, A11-A0, dummy<7:0>, D7-D0.
6. The x8 clock = dummy<3:0>, A<11:8>.
7. The x8 clock = dummy<3:0>, A<11:0>, D7-D0, D7-D0.
8. MID is Manufacture ID (C8h for GigaDevice), DID is Device ID
When A7-A0 is 00h, read MID and DID.
9. Reset command:
• During busy, Reset will reset PAGE READ/PROGRAM/ERASE operation.
• During idle, Reset will reset status register bits P_FAIL/E_FAIL/WEL/OIP/ECCS/ECCSE.
10. Those commands are only available in Internal Data Move operation.

06H寫允許命令實例:

寫使能(WREN)命令用於設置寫使能鎖存(WEL)位。 寫使能鎖存(WEL)位
必須在進行以下更改內存陣列內容的操作之前進行設置:
  •頁編程
  •OTP編程/ OTP保護
  •塊擦除
復位命令后,可以清除WEL位。

 

04H寫禁止命令實例:

寫禁用命令用於復位寫使能鎖存(WEL)位。 WEL位也可以通過以下方式復位到正常狀況:

  •頁編程
  •OTP編程/ OTP保護
  •塊擦除

 

 

 

 

 

 讀取功能狀態(0FH)和設置功能(1FH)實例

 

GET FEATURES(0FH)和SET FEATURES(1FH)命令用於監視設備狀態並更改設備行為。 這些命令使用1字節的功能地址來確定要讀取或修改的功能。
可以通過設置特定功能位來啟用或禁用諸如OTP和塊鎖定之類的功能(如下所示)表)。 除了WEL以外,大多數讀取狀態寄存器,而WEL是WRITE ENABLE(06H)命令的可寫位。設置功能后,該功能將保持活動狀態,直到關閉電源並重新打開設備或寫入該功能為止。 除非另有按下表中指定的那樣,一旦設置了設備,即使發出RESET(FFH)命令,它也會保持設置狀態。

 

 

 

 

注意:如果啟用了BRWD且WP#為LOW,則無法更改塊鎖定寄存器。如果啟用了QE,則可以執行Quad IO操作。設置該功能時,所有保留位必須保持為低電平。
上電后,00h是輸出驅動器寄存器的默認數據字節值。

Get Features Sequence Diagram

 

 

 

 

 注意:輸出將實時更新,直到將CS#驅動為高電平為止。set features命令在數據字節之后也支持虛擬字節模式。 特征字節B0H中的特征

除OTP_PRT位外,其余均為易失性。

Set Features Sequence Diagram

 

讀操作實例:

頁面讀操作

 

PAGE READ(13H)命令將數據從NAND閃存陣列傳輸到高速緩存寄存器。命令
順序如下:
  •13H(頁面讀取到緩存)
  •0FH(使用“獲取功能”命令讀取狀態)
  •03H或0BH(從高速緩存讀取)/ 3BH(從高速緩存x2讀取)/ 6BH(從高速緩存x4讀取)/ BBH(從高速緩存雙IO讀取)/ EBH(從高速緩存四路IO讀取)
PAGE READ命令需要一個24位地址。注冊塊/頁面地址后,設備啟動從主陣列傳輸到緩存寄存器,並且在tRD時間內忙碌。在這段時間內,獲取功能(0FH)
可以發出命令以監視狀態。跟隨頁面讀取操作,即RANDOM DATA READ

為了發出高速緩存中的數據,必須發出(03H / 0BH / 3BH / 6BH / BBH / EBH)命令。輸出數據開始在命令中指定的初始地址處,一旦到達2176字節節的結束邊界,輸出會自動跳到起始邊界,直到CS#被拉高以終止此操作。參考波形以查看整個讀取操作。

Page Read to Cache (13H)

 

Read From Cache (03H or 0BH)

 

 

 

Read From Cache x2 (3BH)

 

 

 

 Read From Cache x4 (6BH)

 

Read From Cache Dual IO (BBH) 

“從雙I / O讀取緩存”命令(BBH)與“從窗體讀取緩存x2”命令(3BH)相似,但具有能夠輸入4個虛擬位,后跟一個12位列地址作為起始字節地址和一個虛擬字節
通過SIO0和SIO1,每個位在SCLK的上升沿被鎖存,然后將高速緩存內容移出2位每個時鍾周期從SIO0和SIO1開始。 第一個地址字節可以在任何位置。 地址自動增加
在每個數據字節移出邊界包裹位之后,將其移至下一個更高的地址。

Read From Cache Dual IO Sequence Diagram

 

Read From Cache Quad IO (EBH) 

從高速緩存Quad IO讀取命令類似於從高速緩存x4讀取命令,但具有輸入功能4個虛擬位,后跟一個12位的列地址(起始字節地址)和一個虛擬字節,后跟SIO0,SIO1,SIO3,SIO4,每個位在SCLK的上升沿被鎖存,然后每個時鍾將高速緩存內容移出4位從SIO0,SIO1,SIO2,SIO3開始循環。 尋址的第一個字節可以在任何位置。 地址是自動的在每個數據字節移出邊界環繞位之后,遞增到下一個更高的地址。 四重啟用必須將功能(B0 [0])的位(QE)設置為啟用從高速緩存Quad IO命令讀取。

 

 

 Read ID

READ ID命令用於標識NAND閃存設備。
•使用地址00H〜01H,READ ID命令輸出制造商ID和設備ID。 

Read ID Sequence Diagram (address 00h)

 

 Read ID Sequence Diagram (address 01h)

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM