大家对于最小系统都再熟悉不过了,最小系统中不可少的一部分就是复位电路,为什么需要复位电路呢?这是因为MCU因为各种原因比如软件BUG,可能会出现“跑飞的情况”,所谓跑飞指的是MCU处于失控状态,复位电路的存在就是为了让MCU跑飞时重新从一个已知的状态重新启动,举个例子就像比如你本来在沿着一条固定的路线去一个地方,走到一半时你大脑开小差走错了路,你又不知道该怎么往下走,这时候复位一下,就相当于把你重新放回出发的起点,重新走一遍。复位会使得内部的寄存器以及IO口都重新回到一个确定的初始状态。如果使能了看门狗,那么看门狗也会重启。
一般来说,当电路中噪声较小时,选用RC阻容复位电路即可,电阻Rres和电容Cres的值决定了复位时间,那我们对复位时间有什么要求呢?我们的主要考量点是在复位时间内,VDD能达到MCU所需的最低正常工作电压,MCU能进入稳定状态,同时当电源下电时,电容中的电量能尽快释放掉。
对于C51单片机,MCU达到稳定状态的条件一般有两个,一个是晶振稳定起振,另一个是VDD电压满足MCU规格书要求的额定值,当这两个条件都达到后,复位状态再保持两个机器周期的时间确保MCU内核稳定工作,一个周期相当于12个时钟周期。当复位信号结束后,程序就会开始运行。
确定了需要的复位时间,我们就能根据复位时间来确认复位电路电阻和电容值。根据电容充电的公式我们可以得到充电时间和充电电压的关系:
t=RxCxLn[(VCC-V0)/(VCC-Vt)]
举个例子:比如某芯片的复位电压是2V,复位电阻是10K,复位电容是100nF,那么上电复位持续的时间计算如下:
t=(10x103)x(0.1x10-6)xLn[(3.3-0)/(3.3-2.0)]=0.931ms;
然后可以根据需要的复位时间调整电容,电容值即可。
复位电路很重要,复位电路决定了复位时间,复位时间又决定了你的MCU能不能顺利重启,所以不要简单的抄别人的复位电路,要弄懂其中的缘由才是最重要的。
全部0条评论
快来发表一下你的评论吧 !