題目的描述:微控制器產品在工作的時候,上電後是正常工作的,但是工作了幾個小時後,偶爾會出現微控制器重啟的現象。從描述可以判斷出,電路在大多數的時間裡工作是正常的,但是偶爾會出現微控制器重啟故障,而電源是穩定的。所以可以判斷出硬體電路是正常的。那麼問題可能是程式本身的問題或者是有干擾源。
可能有干擾源存在,而該干擾源可能不是有規律的干擾。微控制器一般都具有復位引腳,要麼高電平復位,要麼低電平復位。比如STM32系列是低電平復位,51微控制器是高電平復位。可以將微控制器復位引腳飛線,使用示波器捕捉其引腳電平。再發生重啟現象時,檢視復位引腳上是否出現了復位電平。如果存在復位電平,則檢查一下週圍其他裝置的現象分析一下是否存在干擾的可能性。
有些微控制器具有看門狗的。如STM32微控制器具有獨立看門狗IWDG以及視窗看門狗WWDG。首先檢視餵狗指令是否正常。尤其是在通訊程式碼中,為了防止接收超時或者傳送超時,在程式碼中都會加入看門狗或者是定時指令。這時候要分析不是不是存在邏輯錯誤使程式碼陷入了死迴圈觸發了看門狗或者定時指令。
像這種偶發性的問題,在查詢BUG時,故障復現比較困難,所以解決問題時也比較麻煩,一定要保持清醒的頭腦,避免鑽入牛角尖。
題目的描述:微控制器產品在工作的時候,上電後是正常工作的,但是工作了幾個小時後,偶爾會出現微控制器重啟的現象。從描述可以判斷出,電路在大多數的時間裡工作是正常的,但是偶爾會出現微控制器重啟故障,而電源是穩定的。所以可以判斷出硬體電路是正常的。那麼問題可能是程式本身的問題或者是有干擾源。
1 可能存在干擾可能有干擾源存在,而該干擾源可能不是有規律的干擾。微控制器一般都具有復位引腳,要麼高電平復位,要麼低電平復位。比如STM32系列是低電平復位,51微控制器是高電平復位。可以將微控制器復位引腳飛線,使用示波器捕捉其引腳電平。再發生重啟現象時,檢視復位引腳上是否出現了復位電平。如果存在復位電平,則檢查一下週圍其他裝置的現象分析一下是否存在干擾的可能性。
2 可能是程式中有看門狗有些微控制器具有看門狗的。如STM32微控制器具有獨立看門狗IWDG以及視窗看門狗WWDG。首先檢視餵狗指令是否正常。尤其是在通訊程式碼中,為了防止接收超時或者傳送超時,在程式碼中都會加入看門狗或者是定時指令。這時候要分析不是不是存在邏輯錯誤使程式碼陷入了死迴圈觸發了看門狗或者定時指令。
像這種偶發性的問題,在查詢BUG時,故障復現比較困難,所以解決問題時也比較麻煩,一定要保持清醒的頭腦,避免鑽入牛角尖。