历史上的今天
返回首页

历史上的今天

今天是:2025年02月20日(星期四)

正在发生

2020年02月20日 | AVR单片机的掉电保护

2020-02-20 来源:eefocus

简介:在掉电时怎样保护数据到EEPROM中


我想在掉电时保存数据(3个字节)到EEPROM中,用BOD掉电检测,不知怎样使用。望高手指点:
1、在BOOT区设置好BODEN,BODLEVEL,后软件还要怎样设置?
2、掉电中断是否是产生复位?我的写EEPROM程序应该放在什么地方?他和其他复位怎样区别?
3、设置了BOOT区后,硬件上是否要加电源到一个管脚比较后才产生中断??


掉电检测BOD的误解


AVR自带的BOD(Brown-outDetection)电路,作用是在电压过低(低于设定值)时产生复位信号,防止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。


在图中,外部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就停止工作。电源监控芯片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有时间做紧急处理和备份数据。AVR写EEPROM大约需要50-100mA的电流,所以电容C5的值应该在1000u~4700u,需要保存的数据越多,C5的容量应该越大。


INT0是AVR优先级最高的中断,采用外部电平变化的下降沿触发方式。一旦IMP809-L的R脚电平由正常的高电平变为低电平时,将触发INT0中断,进入INT0掉电中断服务程序。


在INT0掉电保护中断服务程序中,应按以下的步骤和过程处理:


A)紧急处理,关闭所有外部器件的工作,或将外部状态设置到安全模式,如关闭马达、开关等,保证系统不出事故。


B)将AVR所有I/O设置为输入方式,最大程度的减少AVR芯片对电源的消耗。


C)将重要数据写入到EEPROM中。


D)循环检测INT0引脚是否恢复高电平。如为高电平则转到下一步E执行;如果INT0电平一直为低,程序将在此循环,直到完全停止运行(因为储能电容C5的电压低于2.7v后,AVR的BOD起作用,产生内部复位,AVR停止运行程序)。


E)软件延时一段时间。


F)再次检测INT0引脚电平。为低电平时转回D再次循环检测;为高电平时继续向下执行(这种情况表示系统电源受到干扰或短时掉电,现已经恢复正常)。


G)恢复外部器件工作(此时尽管进入了掉电保护程序,但AVR在C5的维持下,一直正常工作,所有的数据并没有破坏,可以继续进行工作);


H)中断返回。


在实际应用中,系统断电保护的设计是一个比较难的问题,实现的方法和手段也有不同。这个设计主要是作为一个使用外部中断的例子,让读者可以从中体会到如何合理和正确的使用外部中断。

推荐阅读

史海拾趣

FUJITSU(富士通)公司的发展小趣事

富士通(Fujitsu)在电子行业的五个发展故事

故事一:从电话交换机到ICT巨头的起步

富士通的故事始于1935年,当时它作为一家电信设备制造商在日本成立,首款产品是电话交换机,这标志着富士通成为日本首家生产此类设备的公司。这一里程碑不仅奠定了富士通在通信领域的基础,也为其后续在信息技术(IT)和通信技术(CT)领域的多元化发展铺平了道路。随着技术的不断进步,富士通逐渐扩展其业务范围,从单一的通信设备制造商转变为全球领先的ICT企业。

故事二:FACOM 100——日本首台计算机的诞生

1954年,富士通成功研发出日本第一台中继式自动计算机FACOM 100,这一成就不仅标志着富士通在计算机领域的突破,也为其后续在计算机硬件和软件领域的深入发展奠定了坚实基础。FACOM 100的问世,不仅提升了富士通在业界的知名度,也推动了日本乃至全球计算机技术的快速发展。

故事三:全球化战略的推进

自20世纪70年代以来,富士通积极实施全球化战略,通过在全球各地设立研发中心、生产基地和销售网络,不断拓展其国际业务。在中国,富士通自1979年起便开始了其业务布局,从最初的设备销售到后来的技术研发、生产制造和解决方案提供,富士通在中国的发展历程见证了其全球化战略的深入实施。如今,富士通的产品和服务已遍布全球80多个国家和地区,服务超过百万家客户。

故事四:云计算与数字化转型的引领

进入21世纪,随着云计算和数字化转型的兴起,富士通迅速调整战略方向,加大在云计算领域的投入。通过提供全方位的云计算服务和解决方案,富士通帮助客户实现业务的数字化转型和升级。同时,富士通还积极与微软等国际巨头合作,共同开拓全球云计算市场,进一步巩固了其在ICT行业的领先地位。

故事五:技术创新与可持续发展

富士通始终将技术创新作为企业发展的核心驱动力。近年来,富士通在人工智能、物联网、大数据等新兴技术领域取得了显著成就,推出了一系列具有自主知识产权的创新产品和解决方案。同时,富士通还积极履行企业社会责任,通过提供绿色、环保的ICT产品和服务,推动社会的可持续发展。这些努力不仅提升了富士通在全球市场的竞争力,也为其赢得了广泛的赞誉和尊重。

GSME Electronics公司的发展小趣事

随着公司业务的不断拓展和市场竞争的日益激烈,GSME Electronics开始实施国际化战略。公司积极参与国际市场竞争,加强与国外客户的合作与交流,不断提升产品的国际竞争力。同时,公司还注重品牌建设,通过提升产品质量和服务水平,树立了良好的品牌形象。如今,“桂微牌”产品已经在国内外市场上赢得了广泛的认可度和美誉度,为公司未来的发展奠定了坚实的基础。

Cogent_Computer_Systems公司的发展小趣事

在电子行业中,技术创新是企业发展的核心驱动力。Cogent_Computer_Systems公司深知这一点,因此始终坚持将大量资金投入研发领域。公司建立了一支高素质的研发团队,并配备了先进的研发设备。通过持续不断的研发投入,公司成功推出了一系列具有创新性的产品,满足了市场不断变化的需求。这种以研发驱动的发展模式使得公司在激烈的市场竞争中始终保持领先地位。

Crane Connectors公司的发展小趣事

Crane Connectors公司自创立之初,便致力于电子连接器技术的研发与创新。面对激烈的市场竞争,公司不断投入研发资源,推出了一系列具有自主知识产权的新型连接器产品。这些产品凭借出色的性能、稳定性和可靠性,迅速获得了市场的认可,为公司赢得了大量订单。随着技术的不断升级和产品的持续优化,Crane Connectors逐渐在电子连接器领域树立了良好的品牌形象,实现了市场的快速扩张。

ATC [American Technical Ceramics]公司的发展小趣事

企业的发展离不开人才的培养和团队的建设。假设ATC高度重视人才培养和团队建设,投入大量资源进行员工培训和团队建设活动。公司不仅注重员工的技能提升和职业发展,还积极营造一种积极向上的企业文化氛围。通过这些努力,ATC培养了一支高素质、富有创新精神的团队,为公司的发展提供了有力的人才保障。

请注意,以上故事均是基于假设和一般性的行业趋势构建的,并不代表ATC公司的实际发展历程。如果您需要了解关于ATC公司的具体信息和发展故事,建议查阅相关的官方资料、行业报告或新闻报道。

BAND-IT公司的发展小趣事

20世纪60年代,人类开始迈入太空探索的新纪元。在这个充满挑战和未知的领域中,紧固件的可靠性和安全性至关重要。1961年,艾伦·谢波德成为第一个乘坐麦克唐纳道格拉斯太空舱在太空旅行的美国人,而太空舱里的数千根软管和扎带卡箍正是由BAND-IT公司提供。这些产品以其出色的耐用性和可靠性,经受住了太空极端环境的考验,为太空探索的安全和成功作出了贡献。

问答坊 | AI 解惑

EP2C8Q208C8N(EP2C5Q208C8N)开发板原理图

EP2C8Q208C8N(EP2C5Q208C8N)开发板原理图 是一个核心板,可以扩展,我正在用,觉得很方便…

查看全部问答>

中囯程序员的下场,人生有多少个十年?

程序员,从20岁开始工作,不知道30岁还在不在这个行业。20岁人人都有一个志向,向管理层发展,但有多少个人真的做得到了?年薪还不是3~10万。 3万的程序一大堆,10年可以得到多少钱?一年3万,10年30万(当中扣除生活杂七杂八的)还有剩下多少呢? ...…

查看全部问答>

vxworks的使用

tornado 里面的 debug菜单下 run task和 attach工具 具体是怎么使用? 他们的对话框里该输入什么 什么作用? 谢谢…

查看全部问答>

EVC下宽字符的宏连接问题

PC:下如此定义可以实行 #define  FILE_NAME(name)  \"D:/file_name/\"#name #define  FILE_1           FILE_NAME(\"file1.bin\") ARM下如此定义不能实行 #define&nb ...…

查看全部问答>

求救:1602使用问题有背光无法显示数据

最近在使用1602,写了几个程序都是只有背光显示,无法显示数据 第一个:RS-P2.0 RW-P2.1 E-P2.7(E通过与74ls00与RD WR相连)如第一个图 LCD_COMW    EQU        8000H    ;写命令字 LCD_DATAW& ...…

查看全部问答>

嵌入式系统中无线网卡驱动问题求教

在一个已经调试成功的嵌入式系统中,如果DSP和操作系统没有更换,仅仅只是更换了无线网卡的话,那么网卡的驱动程序中安装中断的操作是不是可以与原来一样啊?我们更换的新网卡与旧网卡是同一系列的产品。…

查看全部问答>

2440 启动代码 call_linux 参数分析

call_linux(0, 193, buf); 默认的是193! 在网上查了下说是这个参数跟内核有关! 我还以为是和分区有关         {0,                         &n ...…

查看全部问答>

求各位大哥帮忙写下下面的代码,小弟在线等

主程序                  CPU初始化                 A/D初始化(AN0为模拟输入,启动中断)                PWM初始化(载波频率为20KHZ(25us),3路配对PWM s输出,PWM中断元件)       ...…

查看全部问答>

TI的芯片样品好申请么?

TI的芯片没怎么用过,请问申请方便么?…

查看全部问答>

Chronos 个人局域网和传感器节点开发系统

TI最近推出的一套基于chronos手表的无线系统,我想这是在一定程度上去将MSP430应用于满足穿戴式设备 详细技术文档在此获得:http://www.ti.com.cn/tool/cn/tidm-chronos-pan?DCMP=tidesigns-cn&HQS=tidesigns-mcu-msp-chronos-bhp-cn 技术特点 ...…

查看全部问答>