熬松螺丝 发表于 2012-12-12 16:08:07

请大神们给我这个设计提个解决的办法,真心感谢

这个单片机设计是这样的,看图,
掉电会把整个系统,包括单片机供电都关闭的
我用EEPEOM实现了跳转,却没办法让单片机在掉电3秒后复位
另外由于体积有限,不能用机械元件(如继电器之类的),可以用普通元件,IC

number007cool 发表于 2012-12-12 16:31:58

没看懂楼主的意图

r166 发表于 2012-12-12 16:39:36

同样没看懂

taoworking 发表于 2012-12-12 16:50:49

掉电你还能判断小于3秒上电还是大于3秒上电,忒强。

熬松螺丝 发表于 2012-12-12 16:56:58

taoworking 发表于 2012-12-12 16:50 static/image/common/back.gif
掉电你还能判断小于3秒上电还是大于3秒上电,忒强。

没错,就是这里卡住了,没有办法在掉电后判断3秒

jia_xuan 发表于 2012-12-12 17:28:02

加个

后备电源吧。

熬松螺丝 发表于 2012-12-12 17:35:08

jia_xuan 发表于 2012-12-12 17:28 static/image/common/back.gif
后备电源吧。

不能加电源的,因为产品是密封的,如果电源没电拆不开的

wsy2012 发表于 2012-12-12 18:03:42

熬松螺丝 发表于 2012-12-12 17:35 static/image/common/back.gif
不能加电源的,因为产品是密封的,如果电源没电拆不开的

在有电时给电池充电就行了,就像DS1302那样.

117433525 发表于 2012-12-12 18:14:14

大于3S这个有没有上限,比如最大只有10S或是多少,如果几个小时几天那你这个就没办法解决了,如果只是大于3S然后小于多少S内的,是可以有办法做到的。用一个掉电检测电路检测到掉电就进入休眠,把休眠电流尽量做到最小,然后上电后唤醒重新开始工作。

zb05022005 发表于 2012-12-12 18:14:19

能加备用电池就好了,检测到掉电后启动计时器计数,检测到上电后判断计数是否超过3秒

lcw_swust 发表于 2012-12-12 18:24:55

在IO口上加二极管,到RC放电,用另一个IO(或ADC,注意串电阻)在上电时跟据电压计算掉电时间

sniper.q 发表于 2012-12-12 18:31:29

DS1210,掉电后自动切到电池供电并有掉电信号输出

my_avr 发表于 2012-12-12 18:34:47

走到死胡同了

用一个合适的电容,储存能量,用来维持系统在掉电状态下工作三秒

掉电后,系统进入低功耗状态工作三秒,等待上电;如果三秒内上电,就运行“小于三秒上电”程序;

如果三秒时间到还没有上电,单片机主动把电源的电能放掉,系统复位;

每次系统从复位状态启动时,都执行"大于三秒上电”的程序。

wicy001 发表于 2012-12-12 18:46:06

my_avr 发表于 2012-12-12 18:34 static/image/common/back.gif
走到死胡同了

用一个合适的电容,储存能量,用来维持系统在掉电状态下工作三秒


支持。

undead 发表于 2012-12-12 18:55:03

用一个电容和一个电阻,再加一个ADC口,一个普通Io,掉电后电容放电,单片机启动后该io口置低,不给电容充电,立即采集电容上电压,因为掉电后电容通过电阻放电,所以电压在降低,电阻值决定放电完的时间

熬松螺丝 发表于 2012-12-13 08:51:27

117433525 发表于 2012-12-12 18:14 static/image/common/back.gif
大于3S这个有没有上限,比如最大只有10S或是多少,如果几个小时几天那你这个就没办法解决了,如果只是大于3 ...

理论上是可行的,但是在实际中不够可靠,我写好程序了调试的时候才发现有时候唤不醒,不知道什么原因

熬松螺丝 发表于 2012-12-13 08:57:11

undead 发表于 2012-12-12 18:55 static/image/common/back.gif
用一个电容和一个电阻,再加一个ADC口,一个普通Io,掉电后电容放电,单片机启动后该io口置低,不给电容充电 ...

您说的应该是这个吧,这个是STC的PDF里面的,昨天我发现这个在INT0脚的电流不够,有电压单片机也判断不出来,我加个三极管试试看

flashfly 发表于 2012-12-13 09:27:08

看你这个意思应该是一个延时开关,给你两个建议:1(针对延时要很精却的)给单片机电路加装超级电容或者电池(建议超级电容),单片机选型选用超低功耗的单片机,并且电池供电的电路仅限于单片机,以免电源电量不够用3S.2(针对电路延时不精确的)用二极管、电容、电阻做一个放电延时检测电路,断电以后电容通过电阻缓慢放电,延时时间大约或者超过3S以后电量放电到比较器比较电压以下,这样的结果就能检测到电路断电时间是否超过设定值了,不过这样的电路需要自己测试,并且电容器不能乱换厂家,并且需要实际实验测量放电时间,我猜测你的 量产电路的放电时间大约在2~5s范围,不知你的需求能否接受了

maimaige 发表于 2012-12-13 09:28:02

上面的那个电路那个I/O口是一直都处于高电平状态吗,只要变为低电平,就通过那个R1放电了吧,放电时间应该能够通过RC那个公式计算出来,电流大概会是多大呢

undead 发表于 2012-12-12 16:08:08

熬松螺丝 发表于 2012-12-13 08:57 static/image/common/back.gif
您说的应该是这个吧,这个是STC的PDF里面的,昨天我发现这个在INT0脚的电流不够,有电压单片机也判断不出 ...

你用INT0脚检测到低电平理论上是可行的,不知道实际效果如何,因为INT0脚并不是高阻输入,所以对输入该脚的电流还是有要求的,估计加上三极管依然没用吧。若换成ADC口,由于是高阻输入,电流只要很小就可以了,而电容本身能提供的功率就很小,电流一大电压就被拉下去了

weichao4808335 发表于 2012-12-13 10:32:29

本帖最后由 weichao4808335 于 2012-12-13 10:35 编辑

加一个rc充放电加到AD或者rc+比较器,要不就得加rtc了

sarcophile 发表于 2012-12-13 10:47:35

用类似17楼的图,电容用个法拉电容,3.3F的,或者可能1F也行,体积不大,价钱也不贵,存储的电能足够了吧。再加上掉电休眠措施。淘宝搜“法拉电容”就有一大堆

zhonggp 发表于 2012-12-13 12:43:28

在电路给MCU供电山更增加超级电容,一个2元左右,别说3s,30s都不是问题

熬松螺丝 发表于 2012-12-14 08:47:27

undead 发表于 2012-12-13 09:42 static/image/common/back.gif
你用INT0脚检测到低电平理论上是可行的,不知道实际效果如何,因为INT0脚并不是高阻输入,所以对输入该脚 ...

把管脚设置为高阻输入也不行,想必是要用ADC或者RTC了

lmt50211 发表于 2012-12-14 08:53:49

估计这个难做到。

熬松螺丝 发表于 2012-12-14 11:59:41

lmt50211 发表于 2012-12-14 08:53 static/image/common/back.gif
估计这个难做到。

办法是人想出来滴,这个都做不出来,老板还不跳起来
页: [1]
查看完整版本: 请大神们给我这个设计提个解决的办法,真心感谢