打印
[AVR单片机]

AVR 掉电 保存数据到EEPROM?

[复制链接]
7636|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
沙发
liao_fangxing| | 2010-3-29 17:17 | 只看该作者
有电池供电没?? 不然不太可行

使用特权

评论回复
板凳
nikko_sl| | 2010-3-29 18:16 | 只看该作者
在某些特定的场合还是可以实现的。
1、迅速检测到外接电源移除
2、利用板上电容放电到芯片停止工作的这段时间来保存数据到EEPROM。
关键: 板子耗电不多,检测够迅速(中断检测),需要保存的数据不多。

使用特权

评论回复
地板
yidou| | 2010-3-29 19:35 | 只看该作者
感觉是可以做到的,这和关计算机的情况类似

使用特权

评论回复
5
ST_Z| | 2010-3-29 23:51 | 只看该作者
没试过,感觉应该可以,只是电路上要做些考虑,在单片机电源输入处用一个二极管(1N4148)和前端电源隔开,然后加一个大一点的电容,大约100uF左右就可以了,再用一个IO口,最好是中断脚检测二极管之前的信号,检测下降沿,当电源掉了后,二极管能掐住电容上的电仅只给单片机使用,这样差不多就可以了。

使用特权

评论回复
6
宇航3000|  楼主 | 2010-3-30 08:59 | 只看该作者
5 楼说的是个好办法 , 我附个电路图 , 但是为什么还要设置开启BOD功能?

1.JPG (87.02 KB )

1.JPG

使用特权

评论回复
7
宇航3000|  楼主 | 2010-3-30 09:00 | 只看该作者
这个用AVR自带的电压比较器啊!我做过实验的,在5V的电源VCC中串接一个二极管,然后再在二极管的输出侧接一个大容量的电容。
把电压比较器的AIN0端接到二极管的A端,比较器的AIN1端接到二极管的K端。然后打开全局中断和电压比较中断。在电压比较的中断程序中写入写EEPROM的程序,就可以了。

使用特权

评论回复
8
wolf_zhuzy| | 2010-3-30 15:06 | 只看该作者
不开启BOD功能,在掉电之后操作Eprom的数据很容易错乱

使用特权

评论回复
9
宇航3000|  楼主 | 2010-3-31 09:12 | 只看该作者
我弄明白了, 打开BOD功能就是在2.7V以下单片机就停止工作了, 所以电容要足够大,保证电压从4.7V降到2.7V
这个时间里能把数据保存到EEPROM中,一般时间要持续300ms,AVR写EEPROM大约需要50-100mA电流.
更多交流我的QQ: 1428563001

使用特权

评论回复
10
nywjlwjh| | 2010-3-31 22:26 | 只看该作者
完全可以,电压应在7805前端通过电阻分压取样,同时7805输入端电容要加大已储存更多的能量。

使用特权

评论回复
11
huguang0218| | 2010-4-8 17:57 | 只看该作者
用IMP809L电压检测芯片,检测电压,在用法拉电容供电!我这几天也刚刚在做一个这样的应用,完全哦实验,效果很好!
  要开启掉电复位功能!

使用特权

评论回复
12
ershisi| | 2010-4-8 21:23 | 只看该作者
进来学习,那个图片的颜色怎么那么不均匀啊?

使用特权

评论回复
13
sz-xiangfan| | 2010-4-8 22:08 | 只看该作者
要实现这个功能应该是没有问题的

使用特权

评论回复
14
SHSLZHZ| | 2010-4-9 10:07 | 只看该作者
1# 宇航3000
注意以下几点:
1,必须有合理的判断电源掉电的电路.
2,要确保写E2的电源,由于掉电的关系,因此字节数不能太多.
3,最好做几个备份进行比较.
4,保存后程序中避免重复写的情况.

使用特权

评论回复
15
ncy2005| | 2014-3-5 11:07 | 只看该作者
很好,学习了~~~~~~~~~BOD开启后,反复插拔,EEPROM基本不出现乱码了。

使用特权

评论回复
16
yxdhahaha| | 2015-7-30 23:02 | 只看该作者
楼主,你好,我最近在写和这个程序相近的程序,能不能把你的程序发给我看一看呢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

30

主题

165

帖子

2

粉丝