经常看到很多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的作用是什么呢?这个就留给小伙伴们思考了,知道原因的小伙伴可以评论区聊聊
好了,今天就先写到这吧!