FLASH的頁擦除
FLASH由一系列的頁組成,每頁512字節(jié)。FLASHCON寄存器設置為0x20,F(xiàn)LASHDAT寄存器設置為0xA5,F(xiàn)LASHADR寄存器可以設置為要擦除的頁內的任何一個地址。
如果FLASHADR被設置為鎖定字節(jié)地址中的任何一個(0x7DFE或0x7DFF),則該擦除操作將擦除整個FLASH存儲器,位于0x7E00和0x7FFF之間的保留區(qū)除外。
與讀和寫操作不同,在擦除操作完成后FLASHADR并不自動加1。
FLASH的字節(jié)寫
FLASH的字節(jié)讀
間接讀
讀操作啟動一次從由DRAdress選擇的寄存器中讀取數(shù)據(jù)的過程。該過程可以通過向間接寄存器移入兩位來啟動。在讀操作被啟動后,可以通過查詢Busy位來確定操作何時完成和何時可以讀取數(shù)據(jù)。
間接寫
寫操作啟動一次向由DRAddress選擇的寄存器內寫數(shù)據(jù)的過程。可以寫長度不大于18位的任意長度的寄存器。如果待寫寄存器的長度小于18位,寫數(shù)據(jù)(WriteData)應左對齊(MSB占據(jù)位17)。在啟動一個寫操作之后,應查詢“Busy”位來確定該操作何時完成。
FLASH寄存器
FLASHSCL
FLASHSCL是一個8位寄存器,用它設置FLASH操作時序所需要的預分頻值。當使用內部的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文章
5434瀏覽量
124573 -
JTAG
+關注
關注
6文章
404瀏覽量
73340 -
鎖存器
+關注
關注
8文章
926瀏覽量
42409 -
Flash存儲器
+關注
關注
3文章
105瀏覽量
26435 -
系統(tǒng)時鐘
+關注
關注
1文章
31瀏覽量
9628
發(fā)布評論請先 登錄
C8051單片機,Silicon labs 產(chǎn)品
C8051與SRAM的高速接口

C8051單片機在交流變頻調速系統(tǒng)中的應用(收集)
基于C8051單片機的電子凸輪實現(xiàn)

評論