单片机掉电保护)总结
单片机系统中的掉电检测与数据存储问题
5)理论Байду номын сангаас算
(1)按恒流充放电的简化计算:Q = CV = IT.Q是电量,C是电容量,V是电压,I是电流,T是时间
那么T=CV/I,在本例中可以估算时间为 T= 0.0033f*(5.0V-3.8V) / 0.012A = 0.33s,即330ms.
330/8.5 = 38.8mS,即最多可以保存38字节数据到EEPROM中,38字节对于本应用已经足够。
1)总体思路
由于电能表的计量是要求持续性的,而主供电系统不可能是持续的,注意这里需要一个掉电检测与数据存储的问题。首先检测出供电系统已经断电,然后启用备用电源存储数据,而且数据必须存储在掉电不易失的存储器(如EEPROM,FLASH等)中。
本应用中,需要检测出掉电后备用电源能提供足够的电能供单片机进行数据存储。总体思路,本应用中单片机采用的是STC89C58RD+,单片机内部已经集成了16K的EEPROM,所以不需要另外外接存储器。ADE7755已经自带了电源监控功能,前面的ADE7755的介绍中已经有所描述,所以亦无须担心。这里只需要解决好单片机的掉电问题即可。在系统的稳压前端设置监测点,当监测点的电压下降到另一个基准比较电压时产生单片机外部中断。当单片机接收到外部中断后启动数据存储程序,将数据存储到片内EEPROM内。当主供电系统恢复供电后,单片机首先读取EEPROM数据,然后再恢复计数。
3)备用电源
虽然备用电源可以采用可充电电池,大电容等方案,但由于这里所需要的电量并不是很大,持续时间也不需要很长,只需要能完成数据存储即可。所以这里选择了大电容作为备用电源这一方案。选择了在稳压后端与单片机电源端直接并联了两个达3300uF的大容量电解电容。同时,为安全起见,在单片机的电源输入端还串入了一个低正向压降压降的二极管来阻止大电容向除单片机意外的其他电路放电。
单片机实践-掉电模式
2 代码举例
THANK YOU
如{WKTCH[6:0],WKTCL[7:0]}=0,计数时间:488.28uS x 1 = 488.28uS 如{WKTCH[6:0],WKTCL[7:0]}=9,计数时间:488.28uS x 10 = 4.8828mS 如{WKTCH[6:0],WKTCL[7:0]}=99,计数时间:488.28uS x 100 = 48.828mS 如{WKTCH[6:0],WKTCL[7:0]}=999,计数时间:488.28uS x 1000 = 488.28mS 如{WKTCH[6:0],WKTCL[7:0]}=32767,计数时间:488.28uS x32768 = 16S
2 代码举例
内部掉电唤醒定时器有自己的内部时钟,计数一次的时间就是由该时钟决定的。时 钟频率为32768Hz,有一定的误差。
内部掉电唤醒专用定时器计数1次的时间 = 106uS/32768 x 16 x 1 ≈ 488.28uS 专用定时器最长计数时间约为488.28uS x 32768 = 16S
WKTCH_CNT,WKTCL_CNT用于计数器,而WKTCH,WKTCL实际上作比较器使用 。用户对WKTCH,WKTCL写入内容时,不会写入WKTCH_CNT,WKTCL_CNT。
✱唤醒执行过程如下:当WKTEN=1且单片机进入掉电模式时,唤醒定时器开始工 作,内部[WKTCH_CNT,WKTCL_CNT]就从7FFFH开始计数,直到计数到与{ WKTCH[6:0],WKTCL[7:0]}寄存器所设定的计数值相等后就让系统时钟开始振荡,单 片机恢复正常工作。
LVD F
POF
GF1
GF0 PD IDL
当PD=1时,进入掉电模式,时钟停振,CPU、定时器等功能模块停止掉电模式
单片机中的掉电存储管理
单片机中的掉电存储管理各位单片机程序猿们,在单片机程序设计的时候,经常碰到一些数据的掉电存储问题。
往往这些数据量又不是很大,但是操作起来特别麻烦。
每次变更数据都得调用存储函数进行读写操作。
今天总结一下近几天的思路,对普通单片机的的NV变量的管理给出一个较为方便的操作方法。
一般,我们的数据都由8,16,32位组成,因此,在此例中,我给出16长度数据的接口函数,旨在表明这种方法的思路。
具体读者可以根据自己的使用环境,自己改进。
首先,说明下笔者的编程习惯,笔者在编写单片机C程序的过程中,往往喜欢把程序中涉及的东西封装成类似于面向对象思想中的类。
把数据结构假想成类的属性,把对相应数据结构操作的函数,假想成类的方法。
这种方法在实际编程过程中,往往给自己带来很大的便利。
不仅思路清晰,而且便于模块化管理自己的程序。
现在,我们创建两个文件,分别为NV.h和NV.C,h文件作为NV管理的模块。
NV.h中我们来定义NV变量的数据结构(即笔者所认为的类的属性)和声明对NV操作的函数。
#ifndef_NV_#define _NV_//NV操作的状态定义#define NV_Succeed1#defineNV_Failed//定义16位长度的NV变量数据结构structNV_Struct16{u16 Val;//NV16变量的值u16 NVAddr;//NV16变量在存储器中的首地址};//声明外部调用函数extern void NV16_Get(struct NV_Struct16 *temp);u8 NV16_Set(struct NV_Struct16 *temp,u16 val);#endif在NV_Struct16中,我们封装了一个叫做NV16的变量,其成员中有变量的值和在存储器中的首地址。
在这里,只是给它定义了一个数据的结构,并没有定义实体变量,在C++或C#等面向对象程序设计方法中,这叫类的定义,并没有创建类的实体。
单片机掉电保护总结
单片机应用系统断电时的数据保护方法在测量、控制等领域的应用中,常要求单片机内部和外部RAM中的数据在电源掉电时不丢失,重新加电时,RAM中的数据能够保存完好,这就要求对单片机系统加接掉电保护电路。
掉电保护通常可采用以下三种方法:一是加接不间断电源,让整个系统在掉电时继续工作,二是采用备份电源,掉电后保护系统中全部或部分数据存储单元的内容;三是采用EEPROM来保存数据。
由于第一种方法体积大、成本高,对单片机系统来说,不宜采用。
第二种方法是根据实际需要,掉电时保存一些必要的数据,使系统在电源恢复后,能够继续执行程序,因而经济实用,故大量采用[1]。
EEPROM既具有ROM掉电不丢失数据的特点,又有RAM随机读写的特点。
但由于其读写速度与读写次数的限制,使得EEPROM 不能完全代替RAM。
下面将介绍最常用的一些掉电保护的处理方法,希望能对相关设计人员在实际工作中有所帮助。
?1简单的RAM数据掉电保护电路在具有掉电保护功能的单片机系统中,一般采用CMOS单片机和CMOSRAM。
CMOS型RAM存储器静态电源小,在正常工作状态下一般由电源向片外RAM供电,而在断电状态下由小型蓄电池向片外RAM供电,以保存有用数据,采用这种方法保存数据,时间一般在3-5个月[2]。
然而,系统在上电及断电过程中,总线状态的不确定性往往导致RAM内某些数据的变化,即数据受到冲失。
因此对于断电保护数据用的RAM存储器,除了配置供电切换电路外,还要采取数据防冲失措施,当电源突然断电时,电压下降有个过程,CPU在此过程中会失控,可能会误发出写信而冲失RAM中的数据,仅有电池是不能有效完成数据保护的,还需要对片选信号加以控制,保证整个切换过程中CS引脚的信号一直保持接近VCC。
通常,采用在RAM的CS和VCC引脚之间接一个电阻来实现COMSRAM的电源切换,然而,如果在掉电时,译码器的输出出现低电平,就可能出现问题,图1给出一种简单的电路设计,它能够避免上述问题的产生。
掉电保护)
本设计采用的DS1302是具有涓细电流充电能力的电路,主要特点是采用串行数据传输,可为掉电保护电源提供可编程的充电功能,并且可以关闭充电功能。
以单片机为核心的智能仪表及过程控制系统中常常需要长时间保存实时参数。
通常可采用E2PROM、FLASH MEMORY以及以随机存贮器为基础内置电池的非易失芯片来实现。
E2PROM、 FLASHMEMORY属于可在线修改的ROM器件,它解决了应用系统中实时参数掉电保存的难题,但这类芯片写入速度慢(ms级),擦写次数有限(万次级),有些器件擦写次数虽达百万次,对某些应用系统而言,其写入次数仍然是有限的。
因此这类芯片只能用在需要保护的数据量小且写入不频繁的系统中。
对那些需要大容量高速反复存取实时参数的系统,只能用随机存贮器RAM加掉电保护电路实现。
掉电保护系统一般由低功耗的CMOS-RAM、供电电路及控制电路组成。
供电电路保证系统正常时由电源给RAM供电,掉电时自动转到备用电池给RAM供电;控制电路保证在电源供电时RAM正常读写,电池供电时RAM处于保护状态,特别要防止系统上电/掉电过程中的瞬间干扰对RAM芯片的写入而改变RAM中的数据。
基于RAM的掉电保护电路既具有RAM的高速写入、写入次数无限制的特点,又能象ROM那样长时间保存数据,因此得到了广泛的应用。
实现上述原理的掉电保护方法很多,某些厂商甚至以RAM为基础内置电池开发出自掉电保护芯片,用这类独立的掉电保护芯片或电路构成的单片机系统,实际应用中有时会出现工作不稳定现象。
经分析发现:若系统电源的变化使RAM先处于保护状态,而系统尚未复位,单片机仍正常工作,这时就出现写不进,读不出的现象,引发系统故障。
对于这种单片机复位电平与掉电保护电平不一致而影响系统可靠性的问题,本文提出用微处理器监控电路使单片机复位与掉电保护联动的解决方案。
RAM在单片机复位时处于保护状态,工作时正常存取,从而有效地解决前述问题。
MAX791是MAXIM公司生产的高性能微处理器电源监视电路,它与AMDA公司的AMD791性能相同可以互换。
单片机掉电检测电路与单片机掉电数据保存
单片机掉电检测电路与单片机掉电数据保存
摘要: 单片机在正常工作时,因某种原因造成突然掉电,将会丢失数据存储器(RAM)里的数据。
在某些应用场合如测量、控制等领域,单片机正常工作中采集和运算出一些重要数据,待下次上电后需要恢复这些重要数据。
因此,在一些没有后备供电系统的单片机应用系统中,有必要在系统完全断电之前,把这些采集到的或计算出的重要数据存在在EEPROM 中。
为此,...
单片机在正常工作时,因某种原因造成突然掉电,将会丢失数据存储器(RAM)里的数据。
在某些应用场合如测量、控制等领域,单片机正常工作中采集和运算出一些重要数据,待下次上电后需要恢复这些重要数据。
因此,在一些没有后备供电系统的单片机应用系统中,有必要在系统完全断电之前,把这些采集到的或计算出的重要数据存在在EEPROM 中。
为此,通常做法是在这些系统中加入单片机掉电检测电路与单片机掉电数据保存。
用法拉电容可从容实现单片机掉电检测与数据掉电保存。
电路见下图。
这里首先用6V 供电(如7806),为什幺用6V 不用5V 是显而易见的.电路中的二极管们一般都起两个作用,一是起钳位作用,钳去0.6V,保证使大多数51 系列的单片机都能在4.5V--5.5V 之间的标称工作电压下工作.而4.5-5.5 间这1V 电压在0.47F 电容的电荷流失时间就是我们将来在单片机掉电检测报警后我们可以规划的预警回旋时间。
二是利用单向导电性保证向储能电容0.47F/5.5V 单向冲电。
两只47 欧电阻作用:第一,对单片机供电限流。
一般地单片机电源直接接。
单片机掉电模式与空闲模式
单片机掉电模式与空闲模式1.空闲模式当单片机进入空闲模式时,除CPU处于休眠状态外,其余硬件全部处于活动状态,芯片中程序未涉及到的数据存储器和特殊功能寄存器中的数据在空闲模式期间都将保持原值。
但假若定时器正在运行,那么计数器寄存器中的值还将会增加。
单片机在空闲模式下可由任一个中断或硬件复位唤醒,需要注意的是,使用中断唤醒单片机时,程序从原来停止处继续运行,当使用硬件复位唤醒单片机时,程序将从头开始执行。
让单片机进入空闲模式的目的通常是为了降低系统的功耗,举个很简单的例子,大家都用过数字万用表,在正常使用的时候表内部的单片机处于正常工作模式,当不用时,又忘记了关掉万用表的电源,大多数表在等待数分钟后,若没有人为操作,它便会自动将液晶显示关闭,以降低系统功耗,通常类似这种功能的实现就是使用了单片机的空闲模式或是掉电模式。
以STC89系列单片机为例,当单片机正常工作时的功耗通常为4mA~7mA,进入空闲模式时其功耗降至2mA,当进入掉电模式时功耗可降至0.1μA以下。
2.休眠模式当单片机进入掉电模式时,外部晶振停振、CPU、定时器、串行口全部停止工作,只有外部中断继续工作。
使单片机进入休眠模式的指令将成为休眠前单片机执行的最后一条指令,进入休眠模式后,芯片中程序未涉及到的数据存储器和特殊功能寄存器中的数据都将保持原值。
可由外部中断低电平触发或由下降沿触发中断或者硬件复位模式换醒单片机,需要注意的是,使用中断唤醒单片机时,程序从原来停止处继续运行,当使用硬件复位唤醒单片机时,程序将从头开始执行。
下面的例子演示单片机进入空闲和休眠模式,并且演示出从空闲和休眠模式中唤醒的过程。
【例】:在TX-1C实验板上完成如下描述,开启两个外部中断,设置低电平触发中断,用定时器计数并且显示在数码管的前两位,当计到5时,使单片机进入空闲(休眠)模式,同时关闭定时器,当单片机响应外部中断后,从空闲(休眠)模式返回,同时开启定时器。
单片机掉电保护总结完整版
单片机掉电保护总结Document serial number【NL89WT-NY98YT-NC8CB-NNUUT-NUT108】单片机应用系统断电时的数据保护方法在测量、控制等领域的应用中,常要求单片机内部和外部RAM中的数据在电源掉电时不丢失,重新加电时,RAM中的数据能够保存完好,这就要求对单片机系统加接掉电保护电路。
掉电保护通常可采用以下三种方法:一是加接不间断电源,让整个系统在掉电时继续工作,二是采用备份电源,掉电后保护系统中全部或部分数据存储单元的内容;三是采用EEPROM来保存数据。
由于第一种方法体积大、成本高,对单片机系统来说,不宜采用。
第二种方法是根据实际需要,掉电时保存一些必要的数据,使系统在电源恢复后,能够继续执行程序,因而经济实用,故大量采用[1]。
EEPROM既具有ROM掉电不丢失数据的特点,又有RAM随机读写的特点。
但由于其读写速度与读写次数的限制,使得EEPROM 不能完全代替RAM。
下面将介绍最常用的一些掉电保护的处理方法,希望能对相关设计人员在实际工作中有所帮助。
1简单的RAM数据掉电保护电路在具有掉电保护功能的单片机系统中,一般采用CMOS单片机和CMOSRAM。
CMOS 型RAM存储器静态电源小,在正常工作状态下一般由电源向片外RAM供电,而在断电状态下由小型蓄电池向片外RAM供电,以保存有用数据,采用这种方法保存数据,时间一般在3-5个月[2]。
然而,系统在上电及断电过程中,总线状态的不确定性往往导致RAM内某些数据的变化,即数据受到冲失。
因此对于断电保护数据用的RAM存储器,除了配置供电切换电路外,还要采取数据防冲失措施,当电源突然断电时,电压下降有个过程,CPU在此过程中会失控,可能会误发出写信而冲失RAM中的数据,仅有电池是不能有效完成数据保护的,还需要对片选信号加以控制,保证整个切换过程中CS引脚的信号一直保持接近VCC。
通常,采用在RAM的CS和VCC引脚之间接一个电阻来实现COMSRAM的电源切换,然而,如果在掉电时,译码器的输出出现低电平,就可能出现问题,图1给出一种简单的电路设计,它能够避免上述问题的产生。
51单片机空闲和掉电模式应用
51单片机空闲和掉电模式应用我们知道单片机内部有一个电源管理寄存器PCON,这个寄存器的最低两位,IDL和PD这两位分别用来设定是否使单片机进入空闲模式和掉电模式。
1. 空闲模式当单片机进入空闲模式时,除CPU处于休眠状态外,其余硬件全部处于活动状态,芯片中程序未涉及到的数据存储器和特殊功能寄存器中的数据在空闲模式期间都将保持原值。
但假若定时器正在运行,那么计数器寄存器中的值还将会增加。
单片机在空闲模式下可由任一个中断或硬件复位唤醒,需要注意的是,使用中断唤醒单片机时,程序从原来停止处继续运行,当使用硬件复位唤醒单片机时,程序将从头开始执行。
让单片机进入空闲模式的目的通常是为了降低系统的功耗,举个很简单的例子,大家都用过数字万用表,在正常使用的时候表内部的单片机处于正常工作模式,当不用时,又忘记了关掉万用表的电源,大多数表在等待数分钟后,若没有人为操作,它便会自动将液晶显示关闭,以降低系统功耗,通常类似这种功能的实现就是使用了单片机的空闲模式或是掉电模式。
以STC89系列单片机为例,当单片机正常工作时的功耗通常为4mA~7mA,进入空闲模式时其功耗降至2mA,当进入掉电模式时功耗可降至0.1μA以下。
2. 休眠模式当单片机进入掉电模式时,外部晶振停振、CPU、定时器、串行口全部停止工作,只有外部中断继续工作。
使单片机进入休眠模式的指令将成为休眠前单片机执行的最后一条指令,进入休眠模式后,芯片中程序未涉及到的数据存储器和特殊功能寄存器中的数据都将保持原值。
可由外部中断低电平触发或由下降沿触发中断或者硬件复位模式换醒单片机,需要注意的是,使用中断唤醒单片机时,程序从原来停止处继续运行,当使用硬件复位唤醒单片机时,程序将从头开始执行。
【例】:开启两个外部中断,设置低电平触发中断,用定时器计数并且显示在数码管的前两位,当计到5时,使单片机进入空闲(休眠)模式,同时关闭定时器,当单片机响应外部中断后,从空闲(休眠)模式返回,同时开启定时器。
单片机的空闲模式与掉电模式
单片机的空闲模式与掉电模式首先,我们来介绍一下单片机的空闲模式。
空闲模式是指单片机在没有接收到外部处理请求时停止运行主程序,转入一种低功耗模式。
在空闲模式中,单片机可以关闭一些不必要的模块、外设和时钟源,以达到最低功耗状态。
同时,虽然主程序停止运行,但空闲模式下,单片机仍能继续监测并执行中断服务程序,以确保在有需要时能立即响应外部处理请求。
空闲模式可以有效降低功耗,延长电池寿命,减少能源消耗。
接下来,我们来介绍一下单片机的掉电模式。
掉电模式是指单片机完全关闭或部分关闭,并停止运行主程序和中断服务程序。
在掉电模式下,单片机的工作状态处于最低功耗状态,只保持最基本的功能,以极低的功耗维持芯片的存储数据等必要功能。
单片机的掉电模式分为多个级别,不同级别的掉电模式将关闭不同的模块和外设,实现不同程度的功耗降低。
通过选择合适的掉电模式,可以在保证基本功能的同时,实现最小功耗的芯片工作状态。
在单片机的掉电模式中,可以通过外部中断、看门狗定时器或RTC(实时时钟)来唤醒单片机,以便在有需求时重新启动芯片,恢复正常工作。
这样既保证了低功耗,又能满足外部处理请求的及时响应。
掉电模式与空闲模式相比,功耗更低,但需要更长的启动时间。
因此,在实际应用中,需要根据实际需求和性能要求选择合适的模式。
总结起来,单片机的空闲模式与掉电模式都是为了实现节能和低功耗设计的。
空闲模式通过停止主程序的运行,关闭不必要的模块和外设,降低功耗,延长电池寿命。
掉电模式进一步降低功耗,通过部分或完全关闭芯片,只保持基本存储数据和最低功耗功能,实现极低功耗状态。
这两种模式都可以通过外部触发唤醒信号来重新启动芯片,以满足外部处理请求的需求。
在实际应用中,根据需求和性能要求选择合适的模式,以实现最佳的节能效果。
单片机大电容掉电保护
电路持续时间t = 0.38*VCC*C/I
其中VCC是电源电压,C是电容,I是电路工作电流,控制电路一般在1mA - 10mA
//-----------------~·~ --------------------//
那么时间UI) = 9.375mJ/(5V*5mA) = 0.375 s .也就是说最少可以持续0.375 s,前提是电路工作电流是5mA , 对于EEPROM 一般读写只有几十个ms,够啦~~
用等效电阻可以这么估算的拉:
R = VCC/I = 5V/5mA = 1k
时间常数 tao = RC = 1K*1000uF = 1s
0.68VCC点处时间tao = 0.38 s
因此电路在5V,5mA条件下的工作时间为0.38s
//-----------------~·~ --------------------//
总结以下给大家一个方便的计算公式--估算
比如你接了一个C=1000uF电容,VCC=5V,则存储的能量为E = 1/2*C*VCC^2 = 1.25×10^(-2) J
假设电路工作电流为5mA,在电压降到VCC/2时停止工作(不要告诉我你的芯片可以工作在2V以下哦,那你自己算啦```哈哈),那么C提供的能量为E0=E(VCC)-E(VCC/2)=9.375*10^(-3)J = 9.375mJ
stm32单片机掉电检测电路原理
stm32单片机掉电检测电路原理在嵌入式系统中,单片机的掉电检测是非常重要的一项功能。
当系统掉电或者电源异常时,我们需要能够及时地检测到并采取相应的措施。
本文将介绍一种基于STM32单片机的掉电检测电路原理。
我们需要了解STM32单片机的掉电检测功能。
STM32单片机内部集成了一个低功耗监测电路,可以实现低功耗监测和掉电检测。
该电路可以检测到电池电压是否低于一定的阈值,从而判断系统是否正常工作。
当电池电压低于阈值时,单片机会发出一个复位信号,通过这个信号我们可以进行相应的处理。
在实际应用中,我们常常需要对掉电进行监测并进行相应的处理。
为了实现这个功能,我们需要设计一个掉电检测电路。
这个电路的核心是一个电压比较器,在STM32单片机的引脚上连接一个电阻分压电路,将电池电压分压到电压比较器的输入端。
当电池电压高于阈值时,电压比较器的输出为低电平;当电池电压低于阈值时,电压比较器的输出为高电平。
我们可以将电压比较器的输出信号连接到单片机的一个GPIO引脚上,通过检测这个引脚的状态,我们就可以判断系统是否掉电。
接下来,我们来具体设计这个掉电检测电路。
首先,我们选择一个合适的电阻分压比例,使得电压比较器的阈值与我们想要的掉电阈值相匹配。
然后,我们选择一个合适的电压比较器芯片,将其电源引脚连接到系统的电源线上,以确保能够正确检测系统的电压变化。
接下来,我们将电压比较器的非反馈输入端连接到电阻分压电路的输出端,将反馈输入端连接到一个参考电压源,以确定比较器的阈值。
最后,我们将比较器的输出端连接到单片机的一个GPIO引脚上,通过读取这个引脚的状态,就可以判断系统是否掉电。
需要注意的是,为了保证电压比较器的工作可靠性,我们需要对其供电进行稳定的设计。
可以通过添加电容、滤波电路等方式来稳定供电。
在使用这个掉电检测电路时,我们可以在单片机的初始化代码中添加相应的配置。
首先,我们需要使能低功耗监测电路,并设置阈值。
然后,我们可以使用一个中断或者定时器来检测GPIO引脚状态的变化,从而实现对掉电的监测。
单片机系统中的掉电保护
单片机系统中的掉电保护通常。
在数字钟、某些定时器和日历钟等类型的单片机系统中.当主电源|0”>电源DC5V 失去时,称之为掉电。
掉电后,单片机停止工作,时钟也会停止,这种结果在许多场合是不希望的,为了保证单片机在主电压失去时仍然能够保持运行,通常就利用干电池|0”>电池对单片机系统继续进行供电的办法加以解决。
应该感谢单片机芯片的工程技术设计师,是他们首先提供了单片机系统能够顺利实施掉电保护的内部条件。
这就是:单片机允许在电压低至2V 甚至更低的电压供电时,仍能保证其最基本运行( 对外部输入输出功能将会失效或停止) 。
外配电池在主电源失去时,对单片机的继续运行提供能源,此时的电池能源是非常宝贵的,往往都是以uA 级进行计算。
而且还有一个不能避免的结果,就是随着保护时间的延长,电池的电量也会用完的。
所以,保护电路有一个最长保护时间的参数。
使用中不能超过,否则,保护就会失效。
当电池经过保护时间的使用之后,就需要补充电能,以便下一次保护时能够以充足的电能投入保护工作。
所以,又有一个如何给电池充电的问题。
也就是电池在主电源正常供电时,需要由主电源对其进行充电:当主电源失去时,又由电池放电以保持单片机系统的运行。
下面介绍一款标准的掉电保护电路。
(Vcc=6V) 。
当主电源正常时,单片机由’Vcc 5V 电源供电,此时.Vcc 5V 电源通过D1 和R1 ,对保护用电池进行充电,以保证电池电量的充足。
适当选择R1 的大小,可以保证充电电流和充电时间都比较合理。
例如:需要对3 .6V /60mAh 的电池充电,充电时间选择在8 小时左右,就选择充电电流为8 mA .R1 :(6V-0 .6V) /8(0 .6V 是串连二极。
单片机掉电检测与数据掉电保存方法
单片机掉电检测与数据掉电保存方法单片机在正常工作时,因某种原因造成突然掉电,将会丢失数据存储器(R AM)里的数据。
在某些应用场合如测量、控制等领域,单片机正常工作中采集和运算出一些重要数据,待下次上电后需要恢复这些重要数据。
因此,在一些没有后备供电系统的单片机应用系统中,有必要在系统完全断电之前,把这些采集到的或计算出的重要数据保存在FL AS H或EE PR O M中。
为此,通常做法是在这些系统中加入单片机掉电检测电路与单片机掉电数据保存。
用法拉电容可简单实现单片机掉电检测与数据掉电保存。
电路见下图。
这里用6V供电(如7806),为什么用6V不用5V是显而易见的。
电路中的二极管们一般都起两个作用:一、是起钳位作用,钳去0.6V,保证使大多数实用5V供电的单片机(比如51单片机)都能在 4.5V--5.5V之间的标称工作电压下工作。
而 4.5-5.5间这1V电压在0.47F电容的电荷流失时间就是我们将来在单片机掉电检测报警后我们可以规划的预警回旋时间。
二、是利用单向导电性保证向储能电容0.47F/5.5V单向冲电。
两只47欧电阻作用:第一、对单片机供电限流。
一般地单片机电源直接接7805上,这是个不保险的做法,为什么?因为7805可提供高达2A的供电电流,异常时足够把单片机芯片内部烧毁。
有这个47欧姆电阻保护,即使把芯片或者极性插反也不会烧单片机和三端稳压器,但这个电阻也不能太大,上限不要超过220欧,否则对单片机内部编程时,会编程失败(其实是电源不足)。
第二、和47U F和0.01UF电容一起用于加强电源滤波。
第三、对0.47F/5.5V储能电容,串入的这只47欧电阻消除"巨量法拉电容"的上电浪涌.实现冲电电流削峰。
现在我们算一算要充满0.47F电容到 5.5V,即使用 5.5A恒流对0.47F电容冲电,也需要0.47秒才能冲到 5.5V,因此我们可以知道:1、如果没有47欧姆电阻限流,上电瞬间三端稳压器必然因强大过电流而进入自保.2、长达0.47秒(如果真有 5.5A恒流充电的话)缓慢上电,如此缓慢的上电速率,将使得以微分(R C电路)为复位电路的51单片机因为上电太慢无法实现上电复位.(其实要充满0.47U F电容常常需要几分种).3、正因为上电时间太慢,将无法和今天大多数主流的以在线写入(IS P)类单片机与写片上位计算机软件上预留的等待应答时间严重不匹配(一般都不大于500M S),从而造成应答失步,故总是提示"通信失败".知道这个道理你就不难理解这个电路最上面的二极管和电阻串联起来就是必须要有上电加速电路.这里还用了一只(内部空心不带蓝色的)肖特基二极管(1N5819)从法拉电容向单片机V CC 放电,还同时阻断法拉电容对上电加速电路的旁路作用,用肖特基二极管是基于其在小电流下导通电压只有0.2V左右考虑的,目的是尽量减少法拉电容在单片机掉电时的电压损失.多留掉点维持时间。
单片机系统中的掉电检测和数据保护
收稿日期:2002-10 作者简介:陈卫兵(1966—),男,工程师,原从事研发工作,现在南通职业大学任教。
单片机系统中的掉电检测和数据保护陈卫兵,束 慧(南通职业大学电子工程系,江苏南通226007) 摘要:讨论单片机系统中的一种实用掉电检测和数据保护电路。
关键词:单片机;电源监测;掉电保护;看门狗Detection and Data Protection for Pow er 2fail in SCM SystemsCHE N Wei 2bing ,SH U Hui(Nantong V ocational C ollege ,Jiangsu 226007,China )Abstract :This paper discusses a practical circuit in detail ,which about detection and data protection for power 2fail in SC M systems.K ey w ords :single chip microcom puter ;supply 2v oltage m onitor ;data protection for power 2fail ;watchdog 在单片机系统的实际应用中,经常会遇到这样两种情况:第一种是系统电压瞬时欠压导致单片机程序“跑飞”,使系统不能正常工作;第二种是系统意外掉电导致重要数据丢失而不能恢复。
为了尽量避免这两种情况的发生,需要加上掉电检测和保护电路,以提高系统的抗干扰性和安全性。
掉电检测和保护电路能够检测到电源电压的下降。
当电源电压还没有降到危及系统正常工作的电压以前就及时发出警告信号,单片机系统在收到此信号后,立即转入中断服务程序进行数据的保护和备用电源的切换工作,待干扰脉冲过去或系统重新上电后恢复被保护的数据。
过去常用分立元件、后备电池和RAM 构成这种电路。
随着集成电路技术的发展,出现了不少专用电源监测芯片,这里所要介绍的就是用MAXI M 公司的MAX813L 和DA LLAS 半导体公司的DS12887构成的一种实用的掉电检测和保护电路。
STC单片机掉电断电失电瞬间EEPROM数据保存处理办法
STC单片机掉电断电失电瞬间EEPROM数据保存处理办法写作:欧阳autooy871公司:荣致电子科技有限公司(专业电子、程序开发承接商)Q Q:417179642淘宝:由于客户在请人设计开发一设备,但是设备用户处总停电,造成设备及其周边耗材损耗严重,因此请我司在现有STC为主要芯片的基础上做掉电瞬间EEPROM里的20个参数保存,上电后通过读取EEPROM中的参数回到掉电的状态,基于此,荣致电子科技做了大量的工作,并选用了很多种方案:1、通过1法拉大电容做掉电临时备份电池。
2、通过备份电池或者DS1302里的31个字节ram+电池方案。
3、通过MAX813L检测掉电,然后通过普通STC10某个引脚读取MAX813L的第五脚高低电平状态。
4、购买铁电芯片来不停的存储用户数据。
基于以上4种方案,荣致电子科技做了大量的试验与验证工作,最后敲定方案3经济、安全、可靠,并且存储20个参数无任何问题,具体实施细节如下:一、割掉单片机单独供电VCC线路.二、外部进电源VCC接IN5819二极管后单独给单片机供电.三、VCC5V通过4.7K与2K电阻分压给MAX813L第四脚,高于1.25V即可。
四、MAX813L第五脚连接至STC10单片机某个引脚,如:P2.0。
五、通过软件来检测P2.0引脚的电平状态,如果为低,立刻关闭所有的外部输出,然后进行EEPROM的写操作,通过延时约100ms后即可很好的保存在掉电时的动态参数。
通过各类验证,在断电几十次的情况下,所有的参数及执行程序未发生丢失及错误的情况,说明可用。
具体图纸如下:我的PCB图纸:还可以借用MAX813L的复位等功能来实现。
20121212。
单片机应用系统断电时的数据保护方法
单片机应用系统断电时的数据保护方法在测量、控制等领域的应用中,常要求单片机内部和外部RAM中的数据在电源掉电时不丢失,重新加电时,RAM中的数据能够保存完好,这就要求对单片机系统加接掉电保护电路。
掉电保护通常可采用以下三种方法:一是加接不间断电源,让整个系统在掉电时继续工作,二是采用备份电源,掉电后保护系统中全部或部分数据存储单元的内容;三是采用EEPROM来保存数据。
由于第一种方法体积大、成本高,对单片机系统来说,不宜采用。
第二种方法是根据实际需要,掉电时保存一些必要的数据,使系统在电源恢复后,能够继续执行程序,因而经济实用,故大量采用[1]。
EEPROM既具有ROM掉电不丢失数据的特点,又有RAM随机读写的特点。
但由于其读写速度与读写次数的限制,使得EEPROM不能完全代替RAM。
下面将介绍最常用的一些掉电保护的处理方法,希望能对相关设计人员在实际工作中有所帮助。
1 简单的RAM数据掉电保护电路在具有掉电保护功能的单片机系统中,一般采用CMOS单片机和CMOS RAM。
CMOS型RAM存储器静态电源小,在正常工作状态下一般由电源向片外RAM供电,而在断电状态下由小型蓄电池向片外RAM供电,以保存有用数据,采用这种方法保存数据,时间一般在3-5个月[2]。
然而,系统在上电及断电过程中,总线状态的不确定性往往导致RAM内某些数据的变化,即数据受到冲失。
因此对于断电保护数据用的RAM存储器,除了配置供电切换电路外,还要采取数据防冲失措施,当电源突然断电时,电压下降有个过程,CPU在此过程中会失控,可能会误发出写信而冲失RAM中的数据,仅有电池是不能有效完成数据保护的,还需要对片选信号加以控制,保证整个切换过程中CS引脚的信号一直保持接近VCC。
通常,采用在RAM的CS和VCC引脚之间接一个电阻来实现COMS RAM的电源切换,然而,如果在掉电时,译码器的输出出现低电平,就可能出现问题,图1给出一种简单的电路设计,它能够避免上述问题的产生。
51单片机空闲和掉电模式详解
51单片机空闲和掉电模式应用我们知道单片机内部有一个电源管理寄存器PCON,这个寄存器的最低两位,IDL和PD这两位分别用来设定是否使单片机进入空闲模式和掉电模式。
1. 空闲模式当单片机进入空闲模式时,除CPU处于休眠状态外,其余硬件全部处于活动状态,芯片中程序未涉及到的数据存储器和特殊功能寄存器中的数据在空闲模式期间都将保持原值。
但假若定时器正在运行,那么计数器寄存器中的值还将会增加。
单片机在空闲模式下可由任一个中断或硬件复位唤醒,需要注意的是,使用中断唤醒单片机时,程序从原来停止处继续运行,当使用硬件复位唤醒单片机时,程序将从头开始执行。
让单片机进入空闲模式的目的通常是为了降低系统的功耗,举个很简单的例子,大家都用过数字万用表,在正常使用的时候表内部的单片机处于正常工作模式,当不用时,又忘记了关掉万用表的电源,大多数表在等待数分钟后,若没有人为操作,它便会自动将液晶显示关闭,以降低系统功耗,通常类似这种功能的实现就是使用了单片机的空闲模式或是掉电模式。
以STC89系列单片机为例,当单片机正常工作时的功耗通常为4mA~7mA,进入空闲模式时其功耗降至2mA,当进入掉电模式时功耗可降至0.1μA以下。
2. 休眠-掉电模式当单片机进入掉电模式时,外部晶振停振、CPU、定时器、串行口全部停止工作,只有外部中断继续工作。
使单片机进入休眠模式的指令将成为休眠前单片机执行的最后一条指令,进入休眠模式后,芯片中程序未涉及到的数据存储器和特殊功能寄存器中的数据都将保持原值。
可由外部中断低电平触发或由下降沿触发中断或者硬件复位模式换醒单片机,需要注意的是,使用中断唤醒单片机时,程序从原来停止处继续运行,当使用硬件复位唤醒单片机时,程序将从头开始执行。
【例】:开启两个外部中断,设置低电平触发中断,用定时器计数并且显示在数码管的前两位,当计到5时,使单片机进入空闲(休眠)模式,同时关闭定时器,当单片机响应外部中断后,从空闲(休眠)模式返回,同时开启定时器。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机应用系统断电时的数据保护方法在测量、控制等领域的应用中,常要求单片机内部和外部RAM中的数据在电源掉电时不丢失,重新加电时,RAM中的数据能够保存完好,这就要求对单片机系统加接掉电保护电路。
掉电保护通常可采用以下三种方法:一是加接不间断电源,让整个系统在掉电时继续工作,二是采用备份电源,掉电后保护系统中全部或部分数据存储单元的内容;三是采用EEPROM来保存数据。
由于第一种方法体积大、成本高,对单片机系统来说,不宜采用。
第二种方法是根据实际需要,掉电时保存一些必要的数据,使系统在电源恢复后,能够继续执行程序,因而经济实用,故大量采用[1]。
EEPROM既具有ROM掉电不丢失数据的特点,又有RAM随机读写的特点。
但由于其读写速度与读写次数的限制,使得EEPROM不能完全代替RAM。
下面将介绍最常用的一些掉电保护的处理方法,希望能对相关设计人员在实际工作中有所帮助。
1 简单的RAM数据掉电保护电路在具有掉电保护功能的单片机系统中,一般采用CMOS单片机和CMOS RAM。
CMOS型RAM存储器静态电源小,在正常工作状态下一般由电源向片外RAM供电,而在断电状态下由小型蓄电池向片外RAM供电,以保存有用数据,采用这种方法保存数据,时间一般在3-5个月[2]。
然而,系统在上电及断电过程中,总线状态的不确定性往往导致RAM内某些数据的变化,即数据受到冲失。
因此对于断电保护数据用的RAM存储器,除了配置供电切换电路外,还要采取数据防冲失措施,当电源突然断电时,电压下降有个过程,CPU在此过程中会失控,可能会误发出写信而冲失RAM中的数据,仅有电池是不能有效完成数据保护的,还需要对片选信号加以控制,保证整个切换过程中CS引脚的信号一直保持接近VCC。
通常,采用在RAM的CS和VCC引脚之间接一个电阻来实现COMS RAM的电源切换,然而,如果在掉电时,译码器的输出出现低电平,就可能出现问题,图1给出一种简单的电路设计,它能够避免上述问题的产生。
图1中,4060开关电路起到对CS控制的作用。
当电压小于等于4.5V时就使开关断开,CS线上拉至"1",这样,RAM中的数据就不会冲失;当电压大于4.5V时,4060开关接通,使RAM能正常进行读写。
2 可靠的RAM掉电保护电路上述的电路虽然简单,但有时可能起不到RAM掉电保护的作用,原因是在电源掉电和重新加电的过程中,电源电压跃变的干扰可能使RAM瞬间处于读写状态,使原来RAM中的数据遭到破坏,因此,在掉电刚刚开始以及重新加电直到电源电压保持稳定下来之前,RAM应处于数据保持状态,6264 RAM、510 1 RAM等RAM芯片上都有一个CE2引脚,在一般情况下需将此引脚拉高,当把该引脚拉至小于或等于0.2V时,RAM就进入数据保持状态。
实用的静态RAM掉电保护电路如图2所示,图2中U1、U2为电压比较器,稳压管D3提供一个基准电压Vr(Vr=3.5V)。
当Vcc为5V时,在R 4上得到的分压大于Vr,U2输出高电平,又因为U4输出也为高电平,故CE2输出为高电位,单片机此时可对RAM进行存取,当电源掉电时,Vcc开始下降,当满足如下条件时:R4×Vcc/[(R4+R3)/(R5+R6)]≥VrU2输出低电平,通过U5和U6使CE2输出小于等于0.2V,RA M进入数据保持状态(按图2中元件参数代入上式,当Vcc降到4.7V时,U2输出为低电位)。
若Vcc继续下降使U3翻转,再通过D4、U4和U6进一步保证CE2为低电平。
此外,当Vcc下降到小于E时,D2截止,D1导通,这时E作为RA M的备份电源,当单片机重新加电时,Vcc由0跃变到5V时,U2的输出端会出现瞬间的干扰脉冲,由于U3和U4间电路的积分延迟(约0.7RC),CE2并不立即升到高电平,因而阻止了U2的干扰脉冲,当延时结束时,电源电压已稳定在5V,此后CE2升高,单片机便可对RAM进行存取。
图2中U3和U6为一块四施秘特与非门(CD4093),该电路直接由E供电,这样才能保证掉电后使CE2≤0.2V,并在重新加电时CE2不受电源电压跃变的干扰,比较器U1和U2为电源供电,V cc为后备电源U1的电压监视电路,当后备电池快用完时(小于3.5V),发光管会发出亮光,表明要换上新电池,备份电源可用3节5号干电池,也可以采用锂电池或镍电池。
3 利用TL7705对现场数据进行保护单片机构成的应用系统在突然断电时,往往使片内RAM数据遭到破坏,下面介绍一种利用TL7705构成的电源监控电路,使单片机系统在掉电时自动保护现场数据。
3.1 TL7705的工作原理TL7705是电源监控用集成电路,采用8脚双列直插式封装,其内部结构图3所示。
图3中,基准电压发生器具有较高的稳定性,可由1脚输出2.5V基准电压,为了吸收电源的同脉冲干扰,通常在1脚上接一个0.1μF的滤波电容来提高其抗干扰能力,被监控的电源电压由SENSE端7脚引入,经过R1和R2分压后送入比较器CMP1,与基准电压进行比较,当其值小于基准电压时,T1导通,定时电容CT通过T1放电,使CMP2比较器翻转,T2和T3导通,输出脚RESET为高电平,SESET反为低电平,当送入CMP1比较器的电压高于基准电压时,T1截止100μA恒流源给CT充电,当CT上的电压高于2.5V时,CMP2比较器翻转,T2和T3截止,RESET和RESET反输出关断。
3.2 TL7705与80C51单片机的接法在某些单片机应用系统中需要在系统掉电时记忆当前现场状态,以使电源恢复后能继续从断电处运行,图4是以80C51单片机为例采用其空闲方式或掉电方式,在备用电池支持下实现掉电后的数据保护。
图4中,R1、C1和74LSO4构成单片机的上电自动复位和手动按钮复位电路,备用电池P1及D1、D2实现掉电时备用电池的切换。
电源正常时D1不导通,+5V直接给单片机供电,并为电池P1充电,为了减小电池耗电,备用电池只给单片机供电,保护片内RAM中的数据,电源掉电后,其他外围电路的工作电压仅靠电源电容维持很短的时间,电位器RW用来调节检测电压,范围为4.5-4.75V,当掉电时,外围电路的电压下降到门限设定电压时,可将片外RAM 中需要保护的数据写入片内RAM中,并使单片机进入掉电工作方式以完成数据保护,为了保证单片机有足够的处理时间,取检测电压为4.75V,当电源电压降至4.75V时,TL7705由RESET反向单片机发出中断请求信号(INTO反)。
单片机运行到一个可断断点后,相应中断,在中断服务程序中保护现场数据,使单片机进入掉电工作状态。
4 采用软件冗余措施保证数据的准确性最常用的一种方法是采用软件冗余措施,即将欲保护的数据写入RAM中的不同区域,如0000H-00FFH、0100H-01FFH和0200H-02FFH这三个区域存储同样一组数据,当使用这些数据前,先对各组进行检查,对于正确的数据方可应用,同时将错误的数据进行修正,在上电与断电过程中,总线不确写性是随机的,不可将所有数据完全冲失。
采用硬件对数据进行断电保护,同时在软件上采用冗余的措施是最常用的数据保护方法,在断电突然发生时可保证数据的准确无误。
网路文章:/html/avr/11103.html我想在掉电时保存数据(3个字节)到EEPROM中,用BOD掉电检测,不知怎样使用。
望高手指点:1。
在BOOT区设置好BODEN,BODLEVEL,后软件还要怎样设置?2。
掉电中断是否是产生复位?我的写EEPROM程序应该放在什么地方?他和其他复位怎样区别?3。
设置了BOOT区后,硬件上是否要加电源到一个管脚比较后才产生中断??===================================================================== ==============掉电检测BOD的误解AVR自带的BOD(Brown-out Detection)电路,作用是在电压过低(低于设定值)时产生复位信号,防止CPU意外动作. 对EEPROM的保护作用是当电压过低时保持RESET信号为低,防止CPU意外动作,错误修改了EEPROM的内容而我们所理解的掉电检测功能是指具有预测功能的可以进行软件处理的功能。
例如,用户想在电源掉电时把SRAM数据转存到EEPROM,可行的方法是外接一个在4.5V翻转的电压比较器(VCC=5.0V,BOD=2.7V),输出接到外部中断引脚(或其他中断)一但电压低于4.5V,马上触发中断,在中断服务程序中把数据写到EEPROM中保护起来注意: 写一个字节的EEPROM时间长达8mS,所以不能写入太多数据,电源滤波电容也要选大一些===================================================================== ===============将AVR的BOD设为2.7V,从4.5v到2.7这段时间写EEPROM。
AVR的供电采用14楼方案,掉电检测使用IMP809。
软件编写思路请参考我的《M128》书是第5章,或10月出版的书的第7章。
参考电路如下:在图中,外部9V电源通过7805稳压到5V,作为系统电源使用。
而AVR的工作电源则是单独提供的,由5v系统电源通过低压差肖特基二极管1N5817后得到。
IN5817的正向压降为0.3v,因此,AVR的工作电压为 4.7v。
电源监控芯片IMP809-L的监控电压为4.63V,当系统电源的电压低于4.63V时,在R脚上产生由高电平到低电平的变化,使AVR进入INT0中断。
该电路的工作原理为:首先通过配置AVR的熔丝位,设置BOD掉电检测电压门限为2.7V,并允许BOD检测。
因此,当AVR的Vcc电压掉到2.7v以下时,AVR就停止工作(掉电检测功能是AVR片内的功能之一,见第二章的2.6.2 AVR的复位源和复位方式)。
电源监控芯片IMP809-L检测电压门限为4.63v,用于检测系统电源的电压。
当系统电源大于4.63v时,IMP809-L的R端输出高电平,整个系统正常工作。
当系统电源的电压跌到4.63v以下时,IMP809-L的R脚输出低电平,作为AVR外部中断INT0的申请。
INT0设计为掉电处理中断,其主要任务是备份系统运行的重要数据到EEPROM中。
在提供AVR工作的电源系统中,大容量的电解电容C5作为储能电容,一旦系统电源电压下降,二极管1N5817截止,此时AVR可以靠C5提供的电储可以继续工作一段时间。
C5容量应足够大,在系统电源掉电过程中,IMP809-L的R端输出低电平(下降到4.63v)时,要能够保证维持AVR的工作电压Vcc从4.7v 降到2.7V的时间超过300ms,使AVR有时间做紧急处理和备份数据。