FLASH的頁擦除
FLASH由一系列的頁組成,每頁512字節。FLASHCON寄存器設置為0x20,FLASHDAT寄存器設置為0xA5,FLASHADR寄存器可以設置為要擦除的頁內的任何一個地址。
如果FLASHADR被設置為鎖定字節地址中的任何一個(0x7DFE或0x7DFF),則該擦除操作將擦除整個FLASH存儲器,位于0x7E00和0x7FFF之間的保留區除外。
與讀和寫操作不同,在擦除操作完成后FLASHADR并不自動加1。
FLASH的字節寫
FLASH的字節讀
間接讀
讀操作啟動一次從由DRAdress選擇的寄存器中讀取數據的過程。該過程可以通過向間接寄存器移入兩位來啟動。在讀操作被啟動后,可以通過查詢Busy位來確定操作何時完成和何時可以讀取數據。
間接寫
寫操作啟動一次向由DRAddress選擇的寄存器內寫數據的過程。可以寫長度不大于18位的任意長度的寄存器。如果待寫寄存器的長度小于18位,寫數據(WriteData)應左對齊(MSB占據位17)。在啟動一個寫操作之后,應查詢“Busy”位來確定該操作何時完成。
FLASH寄存器
FLASHSCL
FLASHSCL是一個8位寄存器,用它設置FLASH操作時序所需要的預分頻值。當使用內部的2MHz系統時鐘時,該寄存器應配置如下:
FLASHCON
FLASHCON是一個8位寄存器,它控制FLASH邏輯如何響應對FLASHDAT寄存器的讀和寫操作。FLASHCON寄存器包含一個讀方式設置和一個寫方式設置。
FLASHDAT
FLASHDAT是一個10位的寄存器,它包含8位數據,一個FLFail位和一個FLBusy位,如圖所示:
寫FLASHDAT只需要8位,因為最后一個被鎖存的位處于MSB位置。
讀FLASHDAT只需要11個DR_SHIFT周期(8個用于FLData,一個用于FLFail,一個用于FLBusy)。
查詢FLBusy至少需要2個DR_SHIFT周期,一個用于FLBusy,一個用于Busy。
FLASHADR
FLASHADR是一個16位寄存器,它包含待讀或待寫的FLASH字節的地址。
注意點
在對FLASH進行燒錄之前,需要對器件復位并禁止看門狗。否則,看門狗定時器可能在FLASH操作期間啟動系統復位,導致預想不到的后果!
-
寄存器
+關注
關注
31文章
5343瀏覽量
120377 -
JTAG
+關注
關注
6文章
400瀏覽量
71690 -
鎖存器
+關注
關注
8文章
906瀏覽量
41509 -
Flash存儲器
+關注
關注
3文章
104瀏覽量
25765 -
系統時鐘
+關注
關注
1文章
30瀏覽量
9312
發布評論請先 登錄
相關推薦
評論