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