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