一種實(shí)用的PIC編程器的設(shè)計(jì)
摘要 介紹一種簡(jiǎn)便實(shí)用的PIC編程器實(shí)現(xiàn)方案。設(shè)計(jì)思想是:以單片機(jī)作為主控機(jī),欲寫入的PIC程序代碼存放在主控機(jī)中,由主控機(jī)提供PIC芯片編程所需信號(hào),并監(jiān)測(cè)整個(gè)編程流程。在時(shí)鐘脈沖信號(hào)作用下,把代碼寫入PIC的Flash中以達(dá)到對(duì)芯片編程的目的。該方案可以在脫離PC的環(huán)境下運(yùn)行,適用于對(duì)批量的PIC芯片進(jìn)行編程。
關(guān)鍵詞 PIClOF202 串行編程 89C51
隨著工業(yè)生產(chǎn)的擴(kuò)大,存在著對(duì)同一型號(hào)芯片進(jìn)行相同代碼編程的需要。目前采用的編程方式是通過(guò)專用的編程器來(lái)執(zhí)行,其編程過(guò)程離不開(kāi)PC機(jī)。在對(duì)一定批量的芯片編程時(shí),操作比較煩瑣,保密性能差,且難以在工業(yè)現(xiàn)場(chǎng)進(jìn)行。
本編程器設(shè)計(jì)簡(jiǎn)單,操作方便,保密性好,易攜帶,需要的外部設(shè)備少。編程器以PIClOF202為例進(jìn)行設(shè)計(jì)。PIClOF2xx系列是 Microchip公司生產(chǎn)的低功耗,高性能Flash單片機(jī)。其封裝小,易于使用,成本低。性能穩(wěn)定,在通用電子設(shè)計(jì)中被廣泛使用。本設(shè)計(jì)的基本思想適用于其他類型的單片機(jī)。
1 PICl0F2xx的存儲(chǔ)結(jié)構(gòu)及編程方法
1.1 存儲(chǔ)空間映射
以PICl0F202為例,其內(nèi)部程序存儲(chǔ)空間映射如下:
0000H~0lFFH是用戶可以使用的代碼存儲(chǔ)空間,0200H~03FFH是系統(tǒng)的配置空間。其中01FFH單元是復(fù)位向量,系統(tǒng)復(fù)位后程序指針PC 將指向此地址單元。0200H~0203H是用戶ID信息存儲(chǔ)區(qū)間。0204H地址單元存放的是備份的OSCCAL值,被預(yù)留用來(lái)測(cè)試內(nèi)部晶振,因此該值在任何情況下都不應(yīng)該被更改。一旦被擦除,必須恢復(fù)該值,否則芯片不能正常工作。03FF地址單元存放系統(tǒng)的配置字,其他地址單元系統(tǒng)保留。
1.2 芯片編程方法
采用串行在線編程的方式,串行時(shí)鐘信號(hào)由主控單元的I/O口發(fā)出,從PIC的時(shí)鐘引腳ISCLK輸入。在串行時(shí)鐘信號(hào)作用下,串行數(shù)據(jù)從數(shù)據(jù)引腳ISDAT輸入/輸出,完成對(duì)芯片的Flash的代碼寫入。
只有在進(jìn)入編程模式后,PIClOF202才能允許對(duì)其存儲(chǔ)空間的操作,如圖l所示。當(dāng)保持ISDAT(串行數(shù)據(jù)輸入端)和ISCLK(串行時(shí)鐘輸入端) 為低電平時(shí),VCC(芯片電源)上升到高電平。經(jīng)tl延時(shí),MCLR(編程模式選擇端)上升到高電平,再經(jīng)t2延時(shí),開(kāi)始時(shí)鐘脈沖和數(shù)據(jù)的輸入/輸出。此時(shí)PIClOF202進(jìn)入編程模式。
2 系統(tǒng)硬件結(jié)構(gòu)
系統(tǒng)邏輯框圖如圖2所示,由主控機(jī)、控制模塊、監(jiān)控顯示模塊和目標(biāo)芯片組成。主控機(jī)選用89C51單片機(jī),用單片機(jī)的2個(gè)I/O口分別提供ISDAT和 ISCLK信號(hào);目標(biāo)芯片即PIC。PIC的MCLR端為編程模式選擇端。為了讓PIC10F202能夠進(jìn)入編程狀態(tài),需要由控制模塊實(shí)現(xiàn)對(duì)MCLR端的電平控制。監(jiān)控顯示模塊用于指示目前系統(tǒng)的工作狀態(tài)和監(jiān)控系統(tǒng)運(yùn)行。
評(píng)論