P89LPC932的幾種ISP編程方法
這種方式要求駐留在P89LPC932程序存儲器內部的用戶(hù)應用程序代碼必須包括初始化異步串行口的代碼。換句話(huà)說(shuō),用戶(hù)必須使能異步串行口,同時(shí),特殊功能寄存器AUXR1中的允許中止控制符信號位(EBRR)必須被置1,以允許在檢測到中止控制符信號時(shí)觸發(fā)處理器復位。此外,啟動(dòng)向量配置字節須保證為1EH(使用P89LPC932內預置的ISP代碼),狀態(tài)字為00H(以使用戶(hù)應用代碼得以執行),且1E00H~1FFFH的Flash程序存儲器不要使用或擦除。這樣配置完成后,只要異步串行口的接收腳檢測到中止控制符信號后,處理器就會(huì )復位,復位后LPC932將從由啟動(dòng)向量指定的地址處取指令執行。
有兩個(gè)問(wèn)題在使用這種觸發(fā)方式的時(shí)候應該了解。一是某些USB轉RS232的轉換器無(wú)法發(fā)出中止控制符信號,所以無(wú)法使用檢測中止控制符信號的方式觸發(fā)處理器復位并進(jìn)入ISP模式;二是中止控制符信號在正常的串口通信不會(huì )出現,所以用戶(hù)可以放心使用這種觸發(fā)方式。
1.2.3硬件激活進(jìn)入ISP模式
使用這種模式的好處在于,不論處理器內部原來(lái)存儲著(zhù)什么用戶(hù)代碼,也不論狀態(tài)位的值是什么,ISP模式總是可以進(jìn)入的(不過(guò)有一點(diǎn)還是必須得到保證,就是處理器里原來(lái)的啟動(dòng)代碼未被擦除或覆蓋,而默認的啟動(dòng)向量1EH也沒(méi)有修改過(guò))。由于P89LPC932引腳數比較少,而且內置了程序存儲器,又沒(méi)有傳統的用于外擴總線(xiàn)的P0、P2口和PSEN引腳,所以依靠硬件方式觸發(fā)芯片進(jìn)入ISP模式的方法與傳統MCS-51芯片有所不同。
上電后,如果處理器在復位腳上檢測到如圖2所示的脈沖波形,則處理器將從啟動(dòng)向量指定的地址處取指令運行,也就是進(jìn)入ISP模式,而不是從0000H處取指令執行。其實(shí),這種進(jìn)入方式的結果和有一個(gè)非零的狀態(tài)字節有著(zhù)相同效果。不過(guò)要注意的是,產(chǎn)生的脈沖數目只允許有3個(gè),多于或少于3個(gè)脈沖都不能觸發(fā)處理器進(jìn)入ISP模式。
圖2P89LPC932硬件激活I(lǐng)SP模式波形圖
可以利用一枚外部的微處理器來(lái)產(chǎn)生這3個(gè)脈沖,同時(shí)它還控制一枚電源芯片來(lái)產(chǎn)生P89LPC932需要的電源電壓。這種方法的原理很容易弄明白,筆者在此不再贅述。另外,還有一種更簡(jiǎn)單的方法,就是由用戶(hù)PC機上的異步串行口加上部分硬件電路來(lái)直接產(chǎn)生所需的時(shí)序,具體介紹可以參看參考文獻1。
1.2.4直接調用法觸發(fā)處理器執行ISP代碼
P89LPC932的ISP模式的預置啟動(dòng)向量為1EH,所以其ISP駐留代碼首地址為1E00H,要進(jìn)入ISP,直接調用1E00H處的代碼就可以了。在C代碼中,程序通過(guò)函數指針的方式就可以調用ISP駐留代碼(即進(jìn)入ISP模式)。
1.3在P89LPC932上使用Flashmagic
Flashmagic是一個(gè)免費的軟件工具,可以為Philips的許多處理器作ISP編程,包括P89LPC932。Flashmagic啟動(dòng)時(shí)將試圖連接用戶(hù)選擇的器件,不過(guò)通常在這里都會(huì )報錯,因為并沒(méi)有任何處理器處于ISP模式,又或者還有什么其他的設置需要更改。請選擇Flashmagic控制的PC機上的正確串行口,同時(shí)選擇目標器件為P89LPC932,如圖3所示。然后使這片P89LPC932進(jìn)入ISP模式(如果
圖3FlashMagic的啟動(dòng)畫(huà)面
評論