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