前幾天在寫arm時經常宕機,莫名其妙,在這蒐集了一些比較好的解答和方案,給大家參考。
可能原因:
一 振盪器停止振盪
又可以分為電源電壓不穩,或者強干擾引起的振盪器停振。
二 pc指標跑飛
電源電壓不穩或強干擾引起pc跑飛,如果看門狗不好,也會引起宕機。
三 設計上對長引出線的io沒有保護,靜電打在io口上引起微控制器死鎖,破壞了硬體邏輯功能,導致宕機。
四. 復位收到干擾,引起反覆復位,在反覆復位當中有可能會導致宕機。
五.電源電壓 的地 不穩 ,造成電源電壓 瞬間負電壓 導致微控制器故障 程式不發執行
綜上所述:
設計電路時,應該注意:
1.電源穩定
2.io保護
3.振盪器pcb佈線要注意
4.復位電路設計和pcb佈線
5.電源,訊號線干擾路徑的保護,加濾波tvs等
6.高速訊號輸出遠離訊號輸入端,如spi匯流排,i2c匯流排佈線要遠離adc,復位,時鐘等佈線處,以及其他模擬前端。
我的理解:
1、「跑飛」是因為程式隱患或外部干擾引起的誤動作,致使pc被寫入「出界」資料,跑到了ram區,或者跑到了flash的空白區。如果pc指向了ram區,哪情況就不好說了!因為程式解碼器可能得到任意解碼結果。如果pc指向了flash空白區,則可以事先將所有flash空白區填入某個你想要的資料,迫使程式解碼器在這裡翻譯出你想要的指令,從而進行相應的處理。在iar workbench中好象有在空白區填充資料的設定。
2、「宕機」是指pc進入了「死迴圈」,或者是mclk等於近似為零的值。此時,要想救活mcu,非外狗不可。
*程式執行過程中,如果mcu電源出現問題(電源供電問題,或其它外部電路引起的電源擾動),比較容易出現「跑飛」現象
程式跑飛應該是pc出錯;軟體和硬體都可能出這樣的問題.
宕機應該是cpu根本沒有執行,多是硬體方面的問題造成的,比如por復位不成功,430比較容易出現掉電不完全後重新上電.
看門狗在這個方面介紹:
觸控微控制器的IO會使微控制器宕機的問題
最近在除錯stm32f103微控制器的過程中,發現乙個奇怪的現象。只要用手,或者金屬物品觸碰到微控制器的pa10管腳,就會使正常執行的微控制器立刻宕機。起初懷疑是靜電造成的,但是通過多次試驗,排除這種可能性。同時發現,只有碰觸pa10這個管腳才會發生這種現象,其他的管腳不會。這不由地會讓我聯想到這可...
微控制器和ARM的區別
1 軟體方面 這應該是最大的區別了。引入了作業系統。為什麼引入作業系統?有什麼好處嘛?1 方便。主要體現在後期的開發,即在作業系統上直接開發應用程式。不像微控制器一樣一切都要重新寫。前期的作業系統移植工作,還是要專業人士來做。2 安全。這是linux的乙個特點。linux的核心與使用者空間的記憶體管...
微控制器(微控制器)的中斷系統及應用
2.中斷暫存器 3.中斷處理流程 4.最重要的事 中斷是指 處理器cpu正在處理某件事情的時候,外部發生了某一事件 如定時器計時已到 請求cpu迅速去處理,cpu暫停當前的工作,轉去處理所發生的事件,處理完以後,再回到原來被中斷的地方,繼續原來的工作。實現這種功能的部件稱為中斷系統。它由4個與中斷有...