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