[AVR单片机] AVR 掉电 保存数据到EEPROM?

[复制链接]
8867|15
 楼主| 宇航3000 发表于 2010-3-29 15:54 | 显示全部楼层 |阅读模式
请教一下, 如何让AVR 自动检测电压, 在掉电的前一刻将数据保存到内部的EEPROM 中? 这个跟熔丝位的BODEN 有没有关系?
liao_fangxing 发表于 2010-3-29 17:17 | 显示全部楼层
有电池供电没?? 不然不太可行
nikko_sl 发表于 2010-3-29 18:16 | 显示全部楼层
在某些特定的场合还是可以实现的。
1、迅速检测到外接电源移除
2、利用板上电容放电到芯片停止工作的这段时间来保存数据到EEPROM。
关键: 板子耗电不多,检测够迅速(中断检测),需要保存的数据不多。
yidou 发表于 2010-3-29 19:35 | 显示全部楼层
感觉是可以做到的,这和关计算机的情况类似
ST_Z 发表于 2010-3-29 23:51 | 显示全部楼层
没试过,感觉应该可以,只是电路上要做些考虑,在单片机电源输入处用一个二极管(1N4148)和前端电源隔开,然后加一个大一点的电容,大约100uF左右就可以了,再用一个IO口,最好是中断脚检测二极管之前的信号,检测下降沿,当电源掉了后,二极管能掐住电容上的电仅只给单片机使用,这样差不多就可以了。
 楼主| 宇航3000 发表于 2010-3-30 08:59 | 显示全部楼层
5 楼说的是个好办法 , 我附个电路图 , 但是为什么还要设置开启BOD功能?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| 宇航3000 发表于 2010-3-30 09:00 | 显示全部楼层
这个用AVR自带的电压比较器啊!我做过实验的,在5V的电源VCC中串接一个二极管,然后再在二极管的输出侧接一个大容量的电容。
把电压比较器的AIN0端接到二极管的A端,比较器的AIN1端接到二极管的K端。然后打开全局中断和电压比较中断。在电压比较的中断程序中写入写EEPROM的程序,就可以了。
wolf_zhuzy 发表于 2010-3-30 15:06 | 显示全部楼层
不开启BOD功能,在掉电之后操作Eprom的数据很容易错乱
 楼主| 宇航3000 发表于 2010-3-31 09:12 | 显示全部楼层
我弄明白了, 打开BOD功能就是在2.7V以下单片机就停止工作了, 所以电容要足够大,保证电压从4.7V降到2.7V
这个时间里能把数据保存到EEPROM中,一般时间要持续300ms,AVR写EEPROM大约需要50-100mA电流.
更多交流我的QQ: 1428563001
nywjlwjh 发表于 2010-3-31 22:26 | 显示全部楼层
完全可以,电压应在7805前端通过电阻分压取样,同时7805输入端电容要加大已储存更多的能量。
huguang0218 发表于 2010-4-8 17:57 | 显示全部楼层
用IMP809L电压检测芯片,检测电压,在用法拉电容供电!我这几天也刚刚在做一个这样的应用,完全哦实验,效果很好!
  要开启掉电复位功能!
ershisi 发表于 2010-4-8 21:23 | 显示全部楼层
进来学习,那个图片的颜色怎么那么不均匀啊?
sz-xiangfan 发表于 2010-4-8 22:08 | 显示全部楼层
要实现这个功能应该是没有问题的
SHSLZHZ 发表于 2010-4-9 10:07 | 显示全部楼层
1# 宇航3000
注意以下几点:
1,必须有合理的判断电源掉电的电路.
2,要确保写E2的电源,由于掉电的关系,因此字节数不能太多.
3,最好做几个备份进行比较.
4,保存后程序中避免重复写的情况.
ncy2005 发表于 2014-3-5 11:07 | 显示全部楼层
很好,学习了~~~~~~~~~BOD开启后,反复插拔,EEPROM基本不出现乱码了。
yxdhahaha 发表于 2015-7-30 23:02 | 显示全部楼层
楼主,你好,我最近在写和这个程序相近的程序,能不能把你的程序发给我看一看呢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

30

主题

165

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部