Hello,大家好!單片機復位電路作為最小系統中核心三要素(電源、時鐘、復位)之一,在整個硬件電路設計中至關重要;其決定了系統能否正常、穩定的工作;今天我們就一篇文章來說明白了。
單片機復位電路的類型
高電平復位
高電平復位是指單片機在正常工作狀態下復位引腳是保持低電平的,只有在上電瞬間,或者復位按鍵按下的瞬間,電平會被短暫拉高,單片機識別到高電平后,清空內部寄存器進行狀態歸零的過程。典型的是51單片機;高電平復位電路如下圖所示:
下面使用multsim 搭建仿真電路如下:
仿真電壓波形如下:
低電平復位
同樣地,低電平復位是指單片機在正常工作狀態下復位引腳是保持高電平的,只有在上電瞬間,或者復位按鍵按下的瞬間,電平會被短暫拉低,單片機識別到低電平后,清空內部寄存器進行狀態歸零的過程,典型的是stm32單片機;低電平復位電路如下圖所示:
multsim 仿真電路如下:
仿真電路電壓波形如下圖所示:
RST引腳的復位時間
以stm32單片機為例,根據查詢手冊, 其復位時間最低為20us,引腳低電平觸發閾值(VIL最大值)為0.8V,假設電源電壓為3.3V,帶入數據到電容充放電公式進行計算。
眾所周知,RC相乘所得的時間常數,就是電容兩端電壓從0V充電到0.7倍的VCC電壓值;比如R= 10K,C=10UF,通過計算可以得到,單片機在上電啟動時,電容兩端的電壓從0V經過0.1S充電增加到2.3V。0.1S 遠大于20us,所以在開機0.1S內,單片機系統自動復位(RST引腳接收到的高電平信號時間為0.1S左右)。
穩定性設計
基于以上的復位電路工作原理,理想情況下,單片機正常工作沒有毛病。但是面對現實中各種復雜工況,單純按照以上電路進行設計,很難保證系統工作的可靠性與穩定性;
1、不穩定因素
系統電源
當電源發生供電不穩的時候,嚴重時會影響到復位電路的穩定性,造成異常復位;
外部干擾
外部干擾會以傳導或者輻射的方式侵入到單片機的復位電路,影響到復位電路的穩定性,造成系統異常復位;
2、原理圖設計措施
如上圖所示,以低電平復位電路為例,在原理圖設計中需要考慮的幾個點
1)、復位電路中的電容并聯ESD二極管;
當靜電干擾從電源或地干擾復位引腳時,通過添加ESD二極管進行防護,ESD二極管要滿足耐壓要求并且應盡可能選擇雙向的,這樣可以很好的泄放不同極性的干擾;
2)、復位電路中與地之間串聯磁珠
當有干擾從地線進入復位引腳時,通過磁珠對該高頻信號進行衰減;
3)、RST引腳與復位電路之間串聯磁珠
與2)相同,使用磁珠消耗外部干擾;
3、PCB設計措施
1)、走線盡可能短,復位電路的阻容器件靠近單片機RST引腳;RST復位回路,作為敏感信號路徑,走線越短,那么可能受到的干擾就越少,所以應該盡量縮短走線;如下圖所示:
2)、遠離PCB板邊,金屬件、高速信號線等強干擾復雜環境。如果條件允許,或者考慮到周圍電磁環境干擾相對較多,可以對其進行包地處理;
3)、如果有ESD防護器件,信號路徑應該先過防護器件再連接到單片機RST引腳;干擾的泄放路徑應該優先于正常的信號路徑,泄放的路徑走線寬度也應該大于正常的信號路徑;
此外,單片機復位也可以通過軟件指令進行復位,還有欠壓復位,看門狗復位等。使用軟件指令復位是在單片機代碼中調用一條復位指令進行復位的,在一些特定的功能或者調試中比較常用。在大多數的單片機中還集成了欠壓復位,當電壓不穩或短暫降低后,就會觸發欠壓復位;看門狗復位是由于程序bug或者外部環境的干擾,造成系統程序跑飛,在一定的周期內,沒有執行喂狗程序,此時就會觸發產生復位動作;以上這些,大家可以學習查閱其他資料,這里不再詳細說明;
單片機外部復位電路的可靠性設計,包括但不限于以上提到的設計思路。理想狀態下,電路越簡潔越好,只要符合物理原理就可以正常工作。但是現實情況并不盡如人意,所以在電路設計中,要流出足夠寬的“護城河”。如果在測試中發現有些設計是冗余的,后期可以不焊;但是如果沒有相應的考慮,一旦出現問題,那將是始料未及的;就像我們的國家一樣,我們熱愛和平,但是并不能沒有應對戰爭的能力。
以上內容是本人學習思考與工作實踐的總結梳理,分享出來供大家學習思考,也歡迎留言討論。如有不妥,歡迎留言指出,一起學習,共同進步!