經常看到很多51單片機和STM32的開發板上都會設計有“復位電路”
如下圖常見的:
圖1
圖2
以上圖1和圖2是51和32系統中最常用的復位電路,思考問題如下:
(1)就這幾個器件,怎么實現復位的?按鍵的作用是啥?
(2)圖中的電阻電容大小怎么來的?
在大學時,核桃第一次見到復位電路的時候:
先記住一點:圖1是51單片機上用的復位電路(高電平復位),圖2是STM32上用的復位電路(低電平復位)。
那都是復位電路,為什么不一樣?
我們先看51單片機和STM32的手冊,如下圖3和圖4所示:
圖3
圖4
從圖3和圖4很明顯可以看出,STC89C51單片機是高電平復位的,STM32是低電平復位的,至于時間我們后面再算,我們暫時先不看,我們先處理第一個問題。
一:這幾個器件怎么實現復位的
(1)STC89C51
(2)STM32
二:電阻電容的大小怎么選?
由圖1和圖2可以看出其實復位電路就是RC充放電電路
根據RC的時間常數:
τ=RC (τ發音tao第四聲)
RC電路的充電放電公式如下:
其中Vt表示t時刻電容上的電壓
V0為電容初始狀態的電壓值
V1為電容充滿電的電壓值或者放完的電壓值
E 為電源電壓;
當t= 1RC時,電容電壓=0.63V1;
當t= 2RC時,電容電壓=0.86V1;
當t= 3RC時,電容電壓=0.90V1;
當t= 4RC時,電容電壓=0.98V1;
當t= 5RC時,電容電壓=0.99V1;
經過3~5個RC后,充電過程基本結束。
在充電時,電源電壓E通過電阻R向C進行充電(電容的初始值V0=0,V1=E)則可得到充電公式:
在放電時,初始值電壓為E通過R進行放電,此時V0=E,V1=0。則可得到放電公式:
51單片機復位條件:RST高電平持續24個時鐘加10us,約為12us(按照單片機的晶振頻率12MHZ來計算的話一個時鐘為1/12us,24個時鐘就是2us),看51單片機的手冊也可知,如下圖3:
51單片機復位電壓:大于3V,那也就是說上電瞬間RST的電壓大于3V,且繼續時間大于12us就行,那這個12us就是RC電路需要的充放電時間
我們根據圖1可知RST電壓等于電阻R1的電壓VR,而VR我們需要3V以上才能保證單片機正常復位,所以我們只需要求C1的電壓被充電到超過2V的這段時間即可,說白了就是VR(RST的電壓)從5V降到3V以下而且滿足時間12us即可。
圖1
我們用圖1中的C1=10uF,R1=10K,來計算一下:
RC=10uF*10K=0.1s 我們套用公式:T=RCln(V1/V1-Vt)
V1=5V,Vt=2V。RC=0.1s 可以得到:
T=0.1ln(5/5-2)=51ms 遠遠超過12us 滿足單片機復位條件。
所以電阻R=10K,電容C=10uF,是完全滿足51單片機復位條件的,也可以從手冊中看出這個取值是沒有問題的,如下圖所示:
好了,學會計算51單片機的復位電路電阻電容的取值,相信小伙伴們對于STM32的復位電路的取值也是能計算出來的,在此就不在重復計算過程了,小伙們可以嘗試計算一下。
最后,再看另一個復位電路,如下:
上圖中加上D1的作用是什么呢?這個就留給小伙伴們思考了,知道原因的小伙伴可以評論區聊聊
好了,今天就先寫到這吧!