69879 发表于 2012-11-29 09:00:32

AVR断电后写EEPROM的方法?

想用M8控制LED,瞬间断电换挡,长时间断电记忆当前挡的那种。
是使用什么方法呢?
我想到的方法是用电容维持断电后3秒左右的运行时间。
怎么能用0805体积的电容在断电后维持芯片运行3秒左右时间?期间还要在断电2秒后写EEPRoM。
用普通IO测量断电立即关闭LED是不是就来不及写EEPROM了?

youto 发表于 2012-11-29 09:44:44

这个可以吗{:sweat:}

69879 发表于 2012-11-29 09:52:39

反正见过实物,没拆可开过,不知道是不是AVR。断电2秒后会记忆当前数据,但断电0.5秒内不会。

69879 发表于 2012-11-29 09:56:13

0805有10UF的电容的,理论能维持CPU运行3秒吧

yklstudent 发表于 2012-11-29 10:32:51

楼主好想法,

69879 发表于 2012-11-29 10:44:10

我焊接了个实验,结果是只接芯片工作可以,用的47UF点解,(手头没有0805贴片), 接上LED就不行。 可能LED关闭晚了,把电耗光了吧

69879 发表于 2012-11-29 10:48:40

本帖最后由 69879 于 2012-11-29 10:53 编辑

LED+端接电源,负极端接的7135,7135的控制端接的PWM输出脚。怎么能检测到断电然后立即关闭LED,保留电容的电给芯片用

franque 发表于 2012-11-29 10:48:56

你就直接在程序里每隔1s把当前状态写进去就可以了

69879 发表于 2012-11-29 11:03:57

那样断电0.5秒内通电,读出的内容还是原内容。
想实现的是,电路电源切断0.5秒时间,把EEPROM的内容+1写入,然后2秒后还没有通电,再减1写入。

69879 发表于 2012-11-29 11:05:29

本帖最后由 69879 于 2012-11-29 11:07 编辑

写这两次没有电源支持,靠电容维持写入。现在这个动作用47UF点解可以实现,就是接上LED就不能了,分析可能是因为LED把电容的电消耗了吧,因为芯片是高电平点亮LED的。是不是改成低电平点亮就好了?

yklstudent 发表于 2012-11-29 11:46:46

楼主继续做实验,等你的结果!

69879 发表于 2012-11-29 12:13:31

{:lol:}一起啊,进度快些

69879 发表于 2012-11-29 12:14:11

本帖最后由 69879 于 2012-11-29 12:24 编辑

你也好奇?

69879 发表于 2012-12-1 08:11:23

仍然没有结果,看来要换个方法了实现了。

zhanan 发表于 2012-12-1 09:16:43

你在5V稳压前面检测电源,用中断。进入中断后,把耗电的端口关掉。

xslff 发表于 2012-12-1 09:37:46

当有些人还在考虑怎样穿上裤子时,很多人都已经考虑消费高档羽绒服了!
这"贫富"差距太大了吧!

69879 发表于 2012-12-3 13:35:26

“有些人”“很多人”??

69879 发表于 2012-12-4 08:29:35

本帖最后由 69879 于 2012-12-4 08:31 编辑

"zhanan 你在5V稳压前面检测电源,用中断。进入中断后,把耗电的端口关掉。"

谢谢,这个办法有效果,还是有不灵的时候,可能10U电容小了吧

wuxihuaxing 发表于 2012-12-4 16:46:54

5V前检测,断电后关输出,再写EEPROM,我有个产品中用过,1000UF电容。

69879 发表于 2012-12-5 08:04:21

要1000这么大电容啊,看来点解小了

zhanyanqiang 发表于 2012-12-5 08:08:49

掉电检测

zhanan 发表于 2012-12-20 23:30:32

69879 发表于 2012-12-4 08:29 static/image/common/back.gif
"zhanan 你在5V稳压前面检测电源,用中断。进入中断后,把耗电的端口关掉。"

谢谢,这个办法有效果,还是 ...

检测到中断后,得把耗电的端口,外设(继电器等等)都关掉,这样对电容要求不高。不关,电容量就要加大。
检测也很简单,用两个分压电阻就行了,用引脚电平变化中断或者下跳中断。

AllEle 发表于 2012-12-21 13:00:00

如果你0.5S那个能成的话,不用那么麻烦了了,0.5S断完电2S之内再给电,最后关不都是一样的数据吗,所以你0.5S那个存的是你想保存的不正常的值,当2S又给电了,再改成正常值,真要2S没给电,无非就存了这个,下次开机,你可以再把数读出来做个补偿.

sun_changdong 发表于 2012-12-21 17:46:36

建议用IMP809_L芯片!

n0831 发表于 2012-12-21 18:04:56

电源前检测到掉电。关耗电设备。开定时器,进低功耗模式。
页: [1]
查看完整版本: AVR断电后写EEPROM的方法?