單片機(jī)死機(jī)問題
一 振蕩器停止振蕩
又可以分為電源電壓不穩(wěn),或者強(qiáng)干擾引起的振蕩器停振。
二 PC指針跑飛
電源電壓不穩(wěn)或強(qiáng)干擾引起PC跑飛,如果看門狗不好,也會引起死機(jī)。
三 設(shè)計上對長引出線的IO沒有保護(hù),靜電打在IO口上引起單片機(jī)死鎖,破壞了硬件邏輯功能,導(dǎo)致死機(jī)。
四. 復(fù)位收到干擾,引起反復(fù)復(fù)位,在反復(fù)復(fù)位當(dāng)中有可能會導(dǎo)致死機(jī)。
綜上所述:
設(shè)計電路時,應(yīng)該注意:
1.電源穩(wěn)定
2.IO保護(hù)
3.振蕩器PCB布線要注意
4.復(fù)位電路設(shè)計和PCB布線
5.電源,信號線干擾路徑的保護(hù),加濾波TVS等
6.高速信號輸出遠(yuǎn)離信號輸入端,如SPI總線,I2C總線布線要遠(yuǎn)離ADC,復(fù)位,時鐘等布線處,以及其他模擬前端。
一家之言,歡迎糾正
電源電壓 的地 不穩(wěn)定
造成電源電壓 瞬間負(fù)電壓 導(dǎo)致單片機(jī)故障 程序不發(fā)運(yùn)行
我的理解:
1、"跑飛"是因為程序隱患或外部干擾引起的誤動作,致使PC被寫入"出界"數(shù)據(jù),跑到了RAM區(qū),或者跑到了FLASH的空白區(qū)。如果PC指向了RAM區(qū),哪情況就不好說了!因為程序譯碼器可能得到任意譯碼結(jié)果。如果PC指向了FLASH空白區(qū),則可以事先將所有FLASH空白區(qū)填入某個你想要的數(shù)據(jù),迫使程序譯碼器在這里翻譯出你想要的指令,從而進(jìn)行相應(yīng)的處理。在IAR Workbench中好象有在空白區(qū)填充數(shù)據(jù)的設(shè)置。
評論