AVR筆記8:mega16再次鎖死
【轉載】馬潮老師
AVR芯片鎖死的解救是有條件的:
1.首先芯片本身沒(méi)有壞(多余了)
2.如果RESET引腳被禁止作為I/O用了(如M48,M8等),那么通過(guò)通常的串行編程方式是不能解救的(這類(lèi)芯片通常沒(méi)有JTAG口).
3.如果SPI和JTAG都被禁止了,那么通過(guò)通常的串行編程方式是不能解救的.
4.2、3情況只能通過(guò)高壓串行或高壓并行方式解救,當然,通常就要把芯片從板上取下了。
我所講的“解救”,主要是由于時(shí)鐘熔絲配置錯誤造成的鎖死,但SPI或JTAG是允許的。這種情況通常發(fā)生在系統設計使用內部RC振蕩源的情況下,這時(shí)X1、X2為空腳,或作為I/O使用。但下載程序時(shí)出現問(wèn)題,或熔絲配置錯誤,選擇了非內部RC振蕩源。由于此時(shí)AVR無(wú)系統時(shí)鐘源,表現為鎖死。
錯誤的出現可能為:
1。配置錯誤,這是人為的。
2。下載程序過(guò)程中,突然斷電;下載接頭接觸不良;下載器本身不穩定。
3。錯誤的使用下載功能,如CVAVR中下載功能中的ALL(當熔絲位沒(méi)有正確選擇)。有些下載軟件的功能不是非常完善,如使用CVAVR中下載功能的ALL項,不先讀一次熔絲位就使用肯定出問(wèn)題(通常會(huì )將SPI也禁止了)因為初始化的熔絲配置都不打勾。另外還有使用SPI下載,但還能讓用戶(hù)配置SPIEN等,也是不完善的。
如果僅僅是系統熔絲配置錯誤,那么可以通過(guò)嘗試在芯片的晶體引腳上臨時(shí)人為的疊加上不同類(lèi)型的振蕩時(shí)鐘信號進(jìn)行解救。如將一個(gè)5v/1M的脈沖波加在X1上(地當然要連通了),或用2個(gè)電容和一個(gè)晶體臨時(shí)搭個(gè)外部電路加在X1、X2上。如果板上AVR的X1、X2沒(méi)有使用還是比較方便的,如果X1、X2已經(jīng)作為I/O使用連接了其它外部器件的話(huà),就可能也行不通。因為外部連接的器件可能會(huì )影響疊加上的時(shí)鐘信號的。
另外,疊加上的時(shí)鐘信號頻率不要太高,1M左右比較合適,因為通常疊加時(shí)引線(xiàn)比較長(cháng),頻率高的話(huà),振蕩信號不穩定了。還必須注意將ISP下載的頻率降低,因為AVR規定,ISP下載頻率必須是系統時(shí)鐘的1/2以下。因此,疊加1M的話(huà),ISP的頻率不能大于500K。
評論