一.前言
大家對于最小系統(tǒng)都再熟悉不過了,最小系統(tǒng)中不可少的一部分就是復(fù)位電路,為什么需要復(fù)位電路呢?這是因為MCU因為各種原因比如軟件BUG,可能會出現(xiàn)“跑飛的情況”,所謂跑飛指的是MCU處于失控狀態(tài),復(fù)位電路的存在就是為了讓MCU跑飛時重新從一個已知的狀態(tài)重新啟動,舉個例子就像比如你本來在沿著一條固定的路線去一個地方,走到一半時你大腦開小差走錯了路,你又不知道該怎么往下走,這時候復(fù)位一下,就相當(dāng)于把你重新放回出發(fā)的起點,重新走一遍。復(fù)位會使得內(nèi)部的寄存器以及IO口都重新回到一個確定的初始狀態(tài)。如果使能了看門狗,那么看門狗也會重啟。
二.原理講解以及器件選型計算
一般來說,當(dāng)電路中噪聲較小時,選用RC阻容復(fù)位電路即可,電阻Rres和電容Cres的值決定了復(fù)位時間,那我們對復(fù)位時間有什么要求呢?我們的主要考量點是在復(fù)位時間內(nèi),VDD能達(dá)到MCU所需的最低正常工作電壓,MCU能進(jìn)入穩(wěn)定狀態(tài),同時當(dāng)電源下電時,電容中的電量能盡快釋放掉。
對于C51單片機(jī),MCU達(dá)到穩(wěn)定狀態(tài)的條件一般有兩個,一個是晶振穩(wěn)定起振,另一個是VDD電壓滿足MCU規(guī)格書要求的額定值,當(dāng)這兩個條件都達(dá)到后,復(fù)位狀態(tài)再保持兩個機(jī)器周期的時間確保MCU內(nèi)核穩(wěn)定工作,一個周期相當(dāng)于12個時鐘周期。當(dāng)復(fù)位信號結(jié)束后,程序就會開始運行。
確定了需要的復(fù)位時間,我們就能根據(jù)復(fù)位時間來確認(rèn)復(fù)位電路電阻和電容值。根據(jù)電容充電的公式我們可以得到充電時間和充電電壓的關(guān)系:
t=RxCxLn[(VCC-V0)/(VCC-Vt)]
舉個例子:比如某芯片的復(fù)位電壓是2V,復(fù)位電阻是10K,復(fù)位電容是100nF,那么上電復(fù)位持續(xù)的時間計算如下:
t=(10x103)x(0.1x10-6)xLn[(3.3-0)/(3.3-2.0)]=0.931ms;
然后可以根據(jù)需要的復(fù)位時間調(diào)整電容,電容值即可。
三.總結(jié)
復(fù)位電路很重要,復(fù)位電路決定了復(fù)位時間,復(fù)位時間又決定了你的MCU能不能順利重啟,所以不要簡單的抄別人的復(fù)位電路,要弄懂其中的緣由才是最重要的。
-
mcu
+關(guān)注
關(guān)注
146文章
17123瀏覽量
350983 -
復(fù)位電路
+關(guān)注
關(guān)注
13文章
322瀏覽量
44586 -
器件選型
+關(guān)注
關(guān)注
3文章
16瀏覽量
11050
發(fā)布評論請先 登錄
相關(guān)推薦
評論