單片機的罷工
又可分為電源電壓不穩(wěn),或者是強干擾引起的振蕩器停振。?
本文引用地址:http://www.bjwjmy.cn/article/201611/322225.htm二PC指針跑飛?
電源電壓不穩(wěn)或強干擾引起PC跑飛,如果看門狗不好,也會死機。?
三設(shè)計上對長引出線的IO口沒有保護,靜電打在IO口上引起單片機死鎖,破壞了硬件邏輯功能,導(dǎo)致死機。???
四復(fù)位收到干擾,引起反復(fù)復(fù)位,在反復(fù)復(fù)位當(dāng)中有可能會導(dǎo)致死機。?
綜上所述:?
設(shè)計電路時,應(yīng)該注意:?
1.電源穩(wěn)定?
2.IO保護?
3.振蕩器pcb布線注意?
4.復(fù)位電路設(shè)計和pcb布線?
5.電源,信號線的干擾路徑的保護,加濾波tvs等?
6.高速信號輸出遠離信號輸入端,如SPI總線,I2C總線布線要遠離ADC,復(fù)位,時鐘等布線處,以及其它模擬前端?
我的理解:?
1.“跑飛”是因為程序隱患或外部干擾引起的誤動作,致使PC被寫入“出界”數(shù)據(jù),跑到了RAM區(qū),或者跑到了FLASH的空白區(qū)。如果PC指向了RAM區(qū),那神馬情況就不好說了!因為持續(xù)譯碼器可能得到任意譯碼結(jié)果。如果PC指向了FLASH區(qū)的空白區(qū),則可以事先將所有FLASH空白區(qū)填入某個你想要的數(shù)據(jù),迫使持續(xù)譯碼器在這里翻譯出你想要的指令,從而進行相應(yīng)的處理?。?
2.“死機”是指PC進入了“死循環(huán)”,或者是MCLK等于近似為零的值。此時,要想救活MCU,非外狗不可。?
程序運行過程中,如果MCU電源出現(xiàn)問題(電源供電問題,或其它外部電路引起額電源擾動),比較容易出現(xiàn)“跑飛”現(xiàn)象。?
程序跑飛應(yīng)該是PC(程序計數(shù)器0.0)出錯;軟件和硬件的問題都可能導(dǎo)致這樣的問題的出現(xiàn)。?
死機應(yīng)該是CPU根本沒有運行,多事硬件方面的問題造成的,比如POR復(fù)位不成功,430比較容易出現(xiàn)掉電不完全后重新上電。?
評論