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