|
;操作檢測 .endm
③讀數據命令。上電或內部編程、擦除操作結束后就進入讀數據狀態,寫入要讀取的地址即可讀出該地址的數據。
④復位命令。它使存儲器復位,進入讀數據狀態,向任何一個地址寫入數據0xF0就能使Flash存儲器復位。在進行編程、擦除之前,都應先復位,在編程或擦除等正常操作中出現錯誤時也要復位。復位程序如下: _RESETFlash .macro _WRITECOMMAND #8001H,#0F0H ;向8001H寫入0F0H使Flash復位 RPT #12 NOP .endm
1.3 Flash的操作檢測
Flash內部的編程或擦除算法可自動完成編程或擦除操作,但我們必須了解其內部的操作檢測機制,以便知道操作是否完成或正確。常用檢測的狀態位有:跳變位(DQ6)、超時標志位(DQ5)、數據查詢位(DQ7)和Ready/Busy引腳(RY/)。檢測的方法有三種。第一種是判斷引腳RY/的狀態,在編程、擦除或擦除掛起操作過程中,RY/引腳一直為“0”,操作完成后變為“1”。第二種是檢測跳變位DQ6,在編程或擦除時對任何地址進行連續的讀均引起DQ6連續跳變,直至操作結束才停止跳變。最后一種是使用數據線的DQ7、DQ5:DQ7位在編程或擦除過程中輸出的數是寫入該位數據的反碼,當操作完成時輸出才變為寫入該位的數據;DQ5的狀態為“1”時表示操作超時,此時應再讀一次DQ7的狀態,若DQ7輸出仍不是寫入的數據,則操作失敗,復位Flash,其流程如圖1所示。
檢測程序如下: _JUDGE .macro par,pdr;檢測宏程序。par是編程地址寄存 ;器,pdr是存放編程數據的寄存器
|