拔掉充电器单片机工作不正常?

    ?80C51单片机的上电复位POR(Pmver On Reset)实质上就是上电延时复位,也就是在上电延时期间把单片机锁定在复位状态上。为什么在每次单片机接通电源时,都需要加入一定的延迟时间呢?分析如下。

       在单片机及其应用电路每次上电的过程中,由于电源同路中通常存在一些容量大小不等的滤波电容,使得单片机芯片在其电源引脚VCC和VSS之间所感受到的电源电压值VDD,是从低到高逐渐上升的。该过程所持续的时间一般为1~100ms(记作 tsddrise)。上电延时taddrise的定义是电源电压从lO%VDD上升到90%VDD所需的时间,如图1所示。

       在单片机电源电压上升到适合内部振荡电路运行的范围并且稳定下来之后,时钟振荡器开始了启动过程(具体包括偏置、起振、锁定和稳定几个过程)。该过程所持续的时间一般为1~50 ms(记作tOSC)。起振延时tOSC的定义是时钟振荡器输出信号的高电平达到Vih1所需的时间。从图1所示的实际测量图中也可以看得很清楚。这里的 Vih1是单片机电气特性中的一个普通参数,代表XTALl和RST引脚上的输入逻辑高电平。例如,对于常见的单片机型号AT89C5l和 AT89S5l,厂家给出的Vih1值为0.7VDD~VDD 0.5V。

       从理论上讲,单片机每次上电复位所需的很短延时应该不小于treset。这里,treset等于上电延时taddrise与起振延时tOSC之和,如图1所示。从实际上讲,延迟一个treset往往还不够,不能够保障单片机有--一个良好的工作开端。

       在单片机每次初始加电时,首先投入工作的功能部件是复位电路。复位电路把单片机锁定在复位状态上并且维持一个延时(记作TRST),以便给予电源电压从上升到稳定的一个等待时间;在电源电压稳定之后,再插入一个延时,给予时钟振荡器从起振到稳定的一个等待时间;在单片机开始进入运行状态之前,还要至少推迟 2个机器周期的延时,如图2所示。

       上述一系列的延时,都是利用在单片机RST引脚上外接一个RC支路的充电时间而形成的。典型复位电路如图3(a)所示,其中的阻容值是原始手册中提供的。在经历了一系列延时之后,单片机才开始按照时钟源的工作频率,进入到正常的程序运行状态。从图 2所示的实测曲线中可以同时看到4条曲线:VDD、Vrst、XTAL2和ALE。在电源电压以及振荡器输出信号稳定之后,又等待了一段较长的延时才释放 RST信号,使得CPU脱离复位锁定状态;而RST信号一旦被释放,立刻在ALE引脚上就可检测到持续的脉冲信号。

       由于标准80C51的复位逻辑相对简单,复位源只有RST一个(相对新型单片机来说,复位源比较单一),因此各种原因所导致的复位活动以及复位状态的进入,都要依靠在外接引脚RST上施加一定时间宽度的高电平信号来实现。

       标准80C5l不仅复位源比较单一,而且还没有设计内部上电复位的延时功能,因此必须借助于外接阻容支路来增加延时环节,如图3(a)所示。其实,外接电阻R还是可以省略的,理由是一些CMOS单片机芯片内部存在一个现成的下拉电阻Rrst。例如,AT89系列的Rrst阻值约为50~200kΩ; P89V51Rx2系列的Rrst阻值约为40~225 kΩ,如图4所示。因此,在图3(a)基础上,上电复位延时电路还可以精简为图3(b)所示的简化电路(其中电容C的容量也相应减小了)。

 在每次单片机断电之后,须使延时电容C上的电荷立刻放掉,以便为随后可能在很短的时间内再次加电作好准备。否则,在断电后C还没有充分放电的情况下,如果很快又加电,那么RC支路就失去了它应有的延迟功能。因此,在图3(a)的基础上添加一个放电二极管D,上电复位延时电路就变成了如图3(c)所示的改进电路。也就是说,只有RC支路的充电过程对电路是有用的,放电过程不仅无用,而且会带来潜在的危害。于是附加一个放电二极管D来大力缩短放电持续时间,以便消除隐患。二极管D只有在单片机断电的瞬间(即VCC趋近于0V,可以看作VCC对地短路)正向导通,平时一直处于反偏截止状态。

       假如上电复位延迟时间不够或者根本没有延时过程,则单片机可能面临以下2种危险,从而导致CPU开始执行程序时没有一个良好的初始化,甚至陷入错乱状态。

       ①在时钟振荡器输出的时钟脉冲还没有稳定,甚至还没有起振之前,就因释放RST信号的锁定状态而放纵CPU开始执行程序。这将会导致程序计数器PC中首次抓取的地址码很可能是0000H之外的随机值,进而引导CPU陷入混乱状态。参考图5所示的实测信号曲线。

       ②在电源电压还没有上升到合适范围之前(自然也是时钟尚未稳定之前),就释放RST信号的锁定状态,将会使单片机永远感受不到复位信号、经历不到复位过程、包含PC在内的各个SFR内容没有被初始化而保留了随机值,从而导致CPU从一个随机地址开始执行程序,进而也陷入混乱状态。参考图6所示的实测信号曲线。

       为了提高单片机应用系统的稳定性,以及保障单片机应用系统的可靠复位,许多世界zhu名的半导体公司,陆续推出了种类繁多、功能各异、封装微小的专用。本文仅以带有电源电压跌落复位和上电延迟复位功能的3脚芯片MAX810x为例,简单说明。

MPU(或μP)或数字系统监视3~5V的电源电压。在电源上电、断电和跌落期间产生脉宽不低于140ms的复位脉冲。与采用分立元件或通用芯片构成的欠压检测电路相比,将电压检测和复位延时等功能集成到一片3引脚封装的小芯片内,大大降低了系统电路的复杂性,减少了元器件的数量,显著提高了系统可靠性和jing确度。应用电路如图7所示。

       对于MAX810,在电源上电、断电或跌落期间,只要VCC还高于1.1V,就能保证RESET引脚输出高电压。在VCC上升期问RESET维持高电平,直到电源电压升至复位门限以上。在超过此门限后,内部定时器大约再维持240 ms后释放RESET,使其返回低电平。无论何时只要电源电压降低到复位门限以下(即电源跌落),RESET引脚就会立刻变高。

主控板采用MINI32F103,用2块八路晶体管控制板通过电磁阀控制12个气缸
接近开关用了18个
LJ12A3-4-Z/BX 接近开关 直流6V12V24V36V通用 三线NPN常开,这种是信号线常输出12V高电平,触发时低电平。有3个还无法使用呢,因为最多支持16个中断,且PB3还不能用。
目前状况是工作基本正常,但是有干扰时,中断乱触发,特别是拿个电钻在机器附近上电到处晃时,电磁阀时不时地啪啪啪吸合。
STM32的供电是采用手机充电器,步进电机使用220v转24VDC,接近开关是220v转12VDC,三个电源完全独立。
机器机体已接地。
有前辈对我说,做工业控制千万不要用单片机,会干扰的,必需要用PLC,我不信。
也有前辈说,用单片机做工控的是败家仔,烧钱。我不信。
因为我每个部分都做了光耦隔离,干扰个毛线啊。
请老师指教一下,我想坚持用单片机。再学PLC应该不难,但我不想写那些梯形图,觉得没有C语言优美。

我要回帖

更多关于 电源ic芯片击穿是什么原因 的文章

 

随机推荐