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