UPD78F9211/9212/9210 自寫方式編程
UPD78F9211/9212/9210 通過(guò)自寫方式對(duì)FLASH 進(jìn)行編程
780K0S/KY1+ 支持自編程功能,可以通過(guò)用戶程序來(lái)寫入FLASH 存儲(chǔ)器,因此780K0S/KY1+ 具有在線升級(jí)程序的功能。
注意事項(xiàng) 在執(zhí)行自寫入以前,自寫入處理程序必須先被包含在用戶程序中。
備注1. 對(duì)于自編程的使用,請(qǐng)參看16.8.4 前面的例子。
2. 若想用78K0S/KY1+ 的內(nèi)部FLASH當(dāng)作外部EEPROM來(lái)存儲(chǔ)數(shù)據(jù)時(shí),請(qǐng)參考《78K0S/Kx1+ EEPROMEmulation Application Note》(U17379E)。
1.1 自編程概述
如要執(zhí)行自編程, 需要將工作模式由用戶程序模式(普通模式)切換到自編程模式。在自編程模式下,先設(shè)置特定寄存器,通過(guò)執(zhí)行HALT 指令執(zhí)行擦寫處理程序。當(dāng)程序結(jié)束時(shí),將自動(dòng)退出HALT 狀態(tài)。
關(guān)于通過(guò)對(duì)特定寄存器的操作使模式切換到自編程模式的詳情請(qǐng)參考16.8.4 普通模式與自編程模式切換示例。
備注 自編程序?qū)懭霐?shù)據(jù)可參照MOV 指令。
圖16-10 是自編程框圖,圖16-11 是自編程狀態(tài)轉(zhuǎn)換圖,表16-11 列舉了自編程控制命令。
1
備注 命令內(nèi)部驗(yàn)證1 可以通過(guò)指定相同block 內(nèi)的任意一個(gè)地址來(lái)執(zhí)行,但是如果要向同一個(gè)block 內(nèi)的多個(gè)地址寫入數(shù)據(jù),則推薦使用命令— 內(nèi)部驗(yàn)證2。
1.2 自編程注意事項(xiàng)
當(dāng)自編程命令執(zhí)行時(shí),其它命令都不能執(zhí)行。因此,要先清除和重啟看門狗時(shí)鐘計(jì)數(shù)器,以便在自編程時(shí)計(jì)數(shù)器不會(huì)溢出。關(guān)于執(zhí)行自編程需要的時(shí)間請(qǐng)參考表16-11 。
在自編程期間發(fā)生的中斷,在自編程模式結(jié)束后才能被響應(yīng)。為了避免這種情況,應(yīng)在從普通模式切換到自編程模式之前以一定順序終止中斷服務(wù)(將MK0 設(shè)定為FFH,并執(zhí)行DI 指令)。
當(dāng)執(zhí)行自編程命令時(shí),不須使用RAM。
當(dāng)FLASH 存儲(chǔ)器正在數(shù)據(jù)寫入/擦除過(guò)程中,如果電源電壓下降或有復(fù)位信號(hào)輸入,則此次寫入/擦除操作不一定成功。
在block 擦除中空白數(shù)據(jù)的值設(shè)為FFH。
預(yù)先設(shè)置CPU 時(shí)鐘,使在自編程中使CPU 時(shí)鐘大于等于1 MHz。
執(zhí)行指定序列的命令設(shè)定自編程模式后,立即執(zhí)行NOP 和HALT 指令,以執(zhí)行自編程。10 s(最大值)+ 2 CPU時(shí)鐘(fCPU)后HALT 指令被自動(dòng)釋放。
評(píng)論