




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、在掉电时怎样保护数据到EEPROM中我想在掉电时保存数据(3个字节)到EEPROM中,用BOD掉电检测,不知怎样使用。望高手指点:1。在BOOT区设置好BODEN,BODLEVEL,后软件还要怎样设置?2。掉电中断是否是产生复位?我的写EEPROM程序应该放在什么地方?他和其他复位怎样区别?3。设置了 BOOT区后,硬件上是否要加电源到一个管脚比较后才产生中断? 掉电检测BOD的误解AVR自带的BOD(Brown-out Detection)电路,作用是在电压过低(低于设定值)时产生复位信号,防止CPU 意外动作.对EEPROM的保护作用是当电压过低时保持RESET信号为低,防止CPU意外动作
2、,错误修改了 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。软件编写思路请
3、参考我的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
4、就停止工作(掉电检测功能是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提供的电储可以继续
5、工作一段时间。C5容量应足够大,在系统电源掉电 过程中,IMP809-L的R端输出低电平(下降到4.63v)时,要能够保证维持AVR的工作电压Vcc从4.7v降 到2.7V的时间超过300ms,使AVR有时间做紧急处理和备份数据。AVR写EEPROM大约需要50-100mA的电 流,所以电容C5的值应该在1000u4700u,需要保存的数据越多,C5的容量应该越大。INT0是AVR优先级最高的中断,采用外部电平变化的下降沿触发方式。一旦IMP809-L的R脚电平由 正常的高电平变为低电平时,将触发INT0中断,进入INT0掉电中断服务程序。在INT0掉电保护中断服务程序中,应按以下的步骤和过程
6、处理:A)紧急处理,关闭所有外部器件的工作,或将外部状态设置到安全模式,如关闭马达、开关等,保证系统 不出事故。B)将AVR所有I/O设置为输入方式,最大程度的减少AVR芯片对电源的消耗。C)将重要数据写入到EEPROM中。D)循环检测INT0引脚是否恢复高电平。如为高电平则转到下一步E执行;如果INT0电平一直为低,程序 将在此循环,直到完全停止运行(因为储能电容C5的电压低于2.7v后,AVR的BOD起作用,产生内部复 位,AVR停止运行程序)。E)软件延时一段时间。F)再次检测INT0引脚电平。为低电平时转回D再次循环检测;为高电平时继续向下执行(这种情况表示系 统电源受到干扰或短时掉电
7、,现已经恢复正常)。G)恢复外部器件工作(此时尽管进入了掉电保护程序,但AVR在C5的维持下,一直正常工作,所有的数据 并没有破坏,可以继续进行工作);H)中断返回。在实际应用中,系统断电保护的设计是一个比较难的问题,实现的方法和手段也有不同。这个设计主要是 作为一个使用外部中断的例子,让读者可以从中体会到如何合理和正确的使用外部中断。”大容量的电解电容C5作为储能电容”图上2200uF是C4,马老师这里标错还是打错了?可以用法拉电容吗?成本会太高吗?能不能在电压输入端9V那里分压用AD检测呢?省掉IMP809-L?可能会造成AD没完成就没电的情 况.我只是随便想想,还没有很成熟的考虑,但是如
8、果用法拉电容的话,好像又是做得到的.我果然 很混乱.呵呵,请马老师指教.回1楼:1。可以使用法拉电容,价格是高一点,但体积小;同时容量大,可以保护更多的数据,也提高了掉电保护 的可靠性。2。用AD检测不如使用IMP809可靠,因为IMP809是硬件的。使用AD检测,增加了 AVR的系统程序的 复杂性,而且AD检测的响应也慢,不提倡。因为掉电保护是要求绝对可靠的。回2楼:理论上可以,但实际当中实现比较困难:1。输入的9V电压一般不是稳定,电压波动大。而经过7805会稳定的多。2。检测7.5v的电压监测芯片比较少。IMP809贵了点.我用台湾合泰的HT7044A.北京中发售价0.85.据说广州还要
9、低。在测试漏电保护器的动作持性时,必须准确测知漏电保护器的动作时刻。本系统设计的断电检测电路见图2。 6N138为光电二极管与达林顿光电晶体管封装的光电耦合器,一次侧工作电流IF为1.6mA,Ifmax为20mA,V fmax为1.7V。考虑到整流桥的正向导通压降Vdmax为2.4V,6N138 一次侧电流iF由下式确定:图2断也检测电路从V1的零时刻开始使iF增加到1.6mA所需的时间t可由式(1)求得:t=0.4ms。因为iF为脉动直流信号,所以的关断时间大于0.8ms,即可判断电网断电、漏电保护器已动作。我们设计的判断时间为1ms,在电网电压波动较大时仍保证判断正确。由式(1)还可求得i
10、Fmax=11.4mA,小于6N138的Ifmax。断电检测模块该模块由模块主程序、外部中断INT1和定时器T1中断服务子程序组成。T1在INT1端变为高电平(6N138截止)时启动,定时到1ms发生中断,说明电路已断电,漏电保护器已动作。 在T1中断服务子程序中置位断电标志、关闭INT1和T1中断。根据1.2所述,在电网正常通电情况下,6N138截止使INT1端保护高电平的时间小于1ms。INT1端电平由高 变低发生中断,在其中断服务子程序中设置使T1重新定时1ms,从而使T1不会在电网正常通电情况下发生 中断。模块主程序初始化INT1、T1,复位断电标志。我曾经用和马老师差不多的电路进行掉
11、电数据保护,C4用680吁的,电源监测用两个19kQ电阻分压,至少可 保存10个字节的数据.to 18楼:标准51不能采用这样的设计,因为这个设计利用和需要AVR中BOD的功能的配合.大部分的51没 有这样的功能.to 20楼:文中提到“AVR写EEPROM大约需要50-100mA的电流”,不是单纯指对EEPROM操作,是指通常 情况下,因为此时AVR可能还做其它的事情,如点亮一个LED,驱动某个部件等.进中断后所有端口高阻输入,adc禁止等这些措施是可行的,但要根据实际情况,因为掉电的处理过程,实际 上电还没有真正的掉光,或者控制板的电源掉了,但驱动电源没掉.因此AVR必须还要保证外部部件要
12、正常 处在安全的状态,不能乱。如果把所有端口高阻输入就等于放弃了对外部的控制,这样在工业控制中是非常 危险的.另外,进中断后所有端口高阻输入,adc禁止需要执行指令,需要时间.时间和电流是矛盾,要找到最佳的平 衡点.把计算的电流放大一点,意味者储能电容要大,但留出必要的或更多的余量,可以保证系统的可靠.如果 使用这样的掉电保护措施,说明系统可靠是第一位的,成本上稍微多点可以忽略掉了.马潮老师您说的很对,掉电前“对外部电路进行最后控制”和“计算的电流放大一点”都很正确。只是还有点异议,“所有端口高阻输入,adc禁止”和最终掉电后的状态是一样的(当然,这里没有考虑掉电 警报等问题),而这些指令的执
13、行时间是微秒级,eeprom写等待是毫秒级,所以我觉得应该是没问题的 楼上说的对,指令的执行时间是微秒级的,可以做许多的工作.请你仔细看我LZ位的掉电中断处理过程的描述.因为对于电源掉电的处理,需要考虑存在电源确实掉电和电源不稳定产生波动的2种可能性.因此在我的掉电处理过程中包含有对外部控制的处理部分,在进入掉电中断后,马上处理的是确保安全的动 作,如将控制马达的I/O 口输出0,以及消耗系统电源比较多(如LED显示)的部件关闭.可是没有将全部的I/O 做处理.这样的话,如果进入掉电中断是由于电源不稳定产生波动产生的,那么电源经过短时间波动后恢复了正常,实 际没有掉电.在这种情况下AVR实际还
14、在正常工作,当它检测到电源正常后,恢复外部器件工作,就可以从掉 电中断中返回继续原来正常的程序执行了.如果进入中断就把所有端口设置高阻输入,adc禁止等,那么正常恢复前就需要重新做初始化配置,而且还要 恢复到进中断前的状态,这样就比较麻烦,另外代码也长,占用了资源.所以,我认为不必要将全部的I/O做处理,只处理重要的I/O 口.不是仅仅从时间上考虑问题,要综合考虑.固我 不是以AVE本身最小的电流1020mA做标准,而是用了大约需要50-100mA的电流.这样,尽管储能电容大 了些,不仅提高了可靠性,也方便做后面的处理.这个用AVR自带的电压比较器啊!我做过实验的,在5V的电源VCC中串接一个二极管,然后再在二极管的 输出侧接一个大容量的电容。把电压比较器的AIN0端接到二极管的A端,比较器的AIN1端接到二极管的K端。然后打开全局中断和电压比较中断。在电压比较的中断程序中写入写EEPROM的程序,就可以了。我在M128上做过测试很好用,当然那个电容的容量要足够大。IIIIIIIIIIIIIIHJvCcIVC(tPBQ 8g MPB1 PB2 :诺P:B(AINQ,FB底瞭PB5.(M0SPB7色璃ADC0-)::PA0 Udcipai (AESCPAi (AD&3) P意 AEC4)PA4 (AdcspaI ADC6):PA6
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 租借相机归还协议书
- 学员合伙开店协议书
- 经济补偿协议书范例
- 区域商品代理协议书
- 开放车位转让协议书
- 企业违法调解协议书
- 转租电动货车协议书
- 无偿提供使用协议书
- 审计清账协议书范本
- 食品仪器检验协议书
- 医疗废物管理条例课件
- 七年级数学期末考试答题卡
- 升压斩波电路
- 产品特殊价格申请表
- 2023年河南郑州大学第二附属医院经开院区招聘药学工作人员笔试备考题库及答案解析
- 一年级语文雨点儿-教学课件【希沃白板初阶培训结营大作业】
- 卫生部手术分级目录(2023年1月份修订)
- GA/T 1323-2016基于荧光聚合物传感技术的痕量炸药探测仪通用技术要求
- 钢栈桥施工监理细则
- 优秀员工荣誉证书模板
- 金蝶PLM详细介绍
评论
0/150
提交评论