- 片上系統(tǒng)設(shè)計(jì)思想與源代碼分析
- 陳曦 黃毅
- 624字
- 2018-12-27 17:52:52
4.3 NandFlash器件的操作
K9F2G08U0M NandFlash的基本操作包括讀、復(fù)制回讀、讀ID、復(fù)位、頁寫、緩存寫、復(fù)制回寫、塊擦除、隨機(jī)數(shù)據(jù)輸入、隨機(jī)數(shù)據(jù)輸出、狀態(tài)讀。完成對(duì)NandFlash的基本控制包括讀ID、頁讀、頁寫、狀態(tài)讀。
4.3.1 頁讀操作
NandFlash的頁讀操作時(shí)序如圖4-4所示。每次讀操作首先輸入讀取的起始地址,讀取的第一個(gè)數(shù)為起始地址所對(duì)應(yīng)的字節(jié),然后地址自動(dòng)加1,接下來可連續(xù)讀取地址加1后的數(shù)據(jù)。這樣的連續(xù)讀取不能跨頁,即列地址不能超過2048+63。列地址超過2048+63的區(qū)域?yàn)榭瞻讌^(qū)域。

圖4-4 NandFlash讀操作
4.3.2 讀ID操作
K9F2G08U0M讀ID操作時(shí)序如圖4-5所示,K9F2G08U0M所對(duì)應(yīng)的ID為0xECDA8015。

圖4-5 NandFlash讀ID操作
4.3.3 頁寫操作
NandFlash的頁寫操作時(shí)序如圖4-6所示。每次寫操作首先輸入寫取的起始地址,之后的第一個(gè)數(shù)據(jù)為起始地址所對(duì)應(yīng)的字節(jié),然后地址自動(dòng)加1,接下來的一個(gè)字節(jié)數(shù)據(jù)被寫到起始地址加1所對(duì)應(yīng)的空間中。這樣的連續(xù)寫操作不能跨頁,即列地址不能超過2048+63。列地址超過2048+63的區(qū)域?yàn)榭瞻讌^(qū)域。

圖4-6 NandFlash寫操作
NandFlash的頁寫操作并不總是成功的,因?yàn)榭赡鼙粚懭氲捻摯鎯?chǔ)單元是壞的,因此,在寫操作之后需要讀取寫操作的最終狀態(tài),若I/O[0]=0,則寫操作成功,否則寫操作失敗,說明該頁的存儲(chǔ)單元已經(jīng)被破壞,已經(jīng)不能使用。
4.3.4 塊擦除操作
塊擦除操作時(shí)序如圖4-7所示。塊擦除操作每次擦除一個(gè)塊,即64個(gè)頁。在對(duì)一個(gè)頁進(jìn)行寫操作之前,必須先將該頁所對(duì)應(yīng)的塊擦除。

圖4-7 NandFlash塊擦除時(shí)序
一個(gè)塊可能是壞塊,塊擦除不一定成功,因此,在塊擦除結(jié)束后,必須讀取操作狀態(tài)。若I/O[0]=0,則寫操作成功,否則寫操作失敗,說明該頁的存儲(chǔ)單元已經(jīng)被破壞,已經(jīng)不能使用。
- 數(shù)據(jù)庫系統(tǒng)原理及MySQL應(yīng)用教程(第2版)
- HornetQ Messaging Developer’s Guide
- What's New in TensorFlow 2.0
- Mastering JavaScript Object-Oriented Programming
- 零基礎(chǔ)玩轉(zhuǎn)區(qū)塊鏈
- Hands-On C++ Game Animation Programming
- Full-Stack React Projects
- Mastering Google App Engine
- 飛槳PaddlePaddle深度學(xué)習(xí)實(shí)戰(zhàn)
- 從0到1:Python數(shù)據(jù)分析
- RESTful Java Web Services(Second Edition)
- HoloLens與混合現(xiàn)實(shí)開發(fā)
- Django Design Patterns and Best Practices
- Mastering Android Studio 3
- Go語言入門經(jīng)典