Flash M25P64驅動開發(fā)與應用
(3)讀取數(shù)據(jù)(READ) 首先需將片選信號拉為低電平,接著讀取數(shù)據(jù)指令和3個字節(jié)的地址(A23~A0)。然后通過數(shù)據(jù)輸出引腳(O)輸出該地址存儲內容。地址的首字節(jié)可以是任意值。在輸出每個字節(jié)數(shù)據(jù)后,地址自動加1,跳至下一地址。因此,整個存儲空間的數(shù)據(jù)讀取可通過一個簡單的數(shù)據(jù)讀取指令(READ)完成。當達到最高地址時,地址計數(shù)器自動清零。片選信號置為高電平可終止數(shù)據(jù)讀取指令(READ)。數(shù)據(jù)輸出的任何時候,片選信號都置為高電平。該器件處于擦除或數(shù)據(jù)寫入周期時,數(shù)據(jù)讀取指令無效并且對當前周期無任何影響。其頁面數(shù)據(jù)寫入指令時序如圖3所示。本文引用地址:http://www.ex-cimer.com/article/188648.htm
(4)頁面數(shù)據(jù)寫入(PP)執(zhí)行PP指令之前,必須先執(zhí)行寫使能指令。寫使能指令解碼后,器件設置為寫使能鎖存器。片選信號必須拉低,接著是PP指令代碼、3字節(jié)的地址和數(shù)據(jù)輸入(至少一個字節(jié))。如果地址的低8位(A7~AO)不全是O而寫入的數(shù)據(jù)字節(jié)超出當前頁的地址,超出部分則從下一頁首地址開始寫入。在整個數(shù)據(jù)寫入時序中,片選信號必須拉低。如果寫入的數(shù)據(jù)字節(jié)數(shù)大于256,則先前所鎖存的數(shù)據(jù)被丟棄。將正確寫入最后256態(tài)寄存器核對WIP位的值。若為1,則表明處于自定時數(shù)據(jù)寫入周期;若為0,則此周期完成。如果某一頁受到塊保護(BP2,BPl,BP0位),則不能執(zhí)行對此頁的數(shù)據(jù)寫入操作。按照上述指令操作,能夠獲得驅動程序的流程圖。圖4為數(shù)據(jù)寫入(PP)操作的程序流程。
4 典型應用
LPC2138是基于支持實時仿真和嵌入式跟蹤的32/16位ARM7TDMIS CPU的微控制器,帶有512 KB高速Flash和32KB的SRAM。128位寬度的存儲器接口和獨特的加速結構使32位代碼能夠在最大時鐘速率下運行,非常適合嵌入式產品。LPC2138帶有SPI接口。該器件與M25P64連接所構成的存儲系統(tǒng)簡單易行,使用方便。圖5是其硬件連接圖。M25P64的片選信號(S)與LPC2138的PO.20相連,寫保護端(W)與P0.2l相連。PO.20和PO.2l作為普通I/O端口。M25P64的串行數(shù)據(jù)輸出(Q)、串行數(shù)據(jù)輸入(D)和串行時鐘輸入(C)與SPI接口的輸入輸出分別對應相連。由M25P64指令時序圖可知:片選信號(S)在指令執(zhí)行之前為低電平,等到指令執(zhí)行完則才置為高電平。因此,與其連接的PO.20必須是普通的I/O端口功能,而不是引腳第2功能SSEL1。一般情況下,與寫保護端(W)相連的PO.2l置低電平即可。該電路圖連接簡單。試驗表明由LPC2138與M25P64連接所構成的存儲系統(tǒng)能夠有效穩(wěn)定運行。
5 結語
本文介紹了一款新型的串行Flash存儲器M25P64的主要特點,工作原理,驅動程序的開發(fā),并且設計了一個典型的M25P64應用系統(tǒng)。該系統(tǒng)結構簡單、運行穩(wěn)定,能實現(xiàn)大容量數(shù)據(jù)存儲。
評論