From: pito <pi...@vo...> - 2011-04-04 16:35:58
|
Hi, as the amforth will not be a subject of power computing let me ask the experts following: 1. would it be possible to create a mechanism where amforth/atmega will be run on _very_ low power - basically powerdown or sleep 2. the rx will be connected to an additional interrupt pin (e.g. wired-or from various sources) and when a character comes (startbit does log1->log0) it will fire interrupt and wake up the chip (first character will be lost probably as the chip needs some time to wakeup) 3. after receiving a character it will issue some message on state - that everything is ok (e.g. none reset or power-off occured) and it will start to communicate with us in a normal way.. 4. when not communicating with host for e.g. 10sec, or none tasks to accomplish, it will go to low power state again.. The idea behind is to power a gadget from a 3V coin battery, or a nimh AAA cell (and to use e.g. max1724 upconverter to 3v3 or 5v) maybe charged from a sollar cell. So the challenge is to achieve an ultra low power operation, without loosing RAM and i/o information, but be ready to ad-hoc communicate with a host via the serial anytime. I think this needs a support from amforth "OS" side as well. P. |
From: Matthias T. <mt...@we...> - 2011-04-04 18:16:53
|
Hi, > Hi, as the amforth will not be a subject of power computing let me > ask the experts following: > 1. would it be possible to create a mechanism where amforth/atmega > will be run on _very_ low power - basically powerdown or sleep I did not yet implemented it, but the strategy should be strait forward (as far as I understood the sleep mode section): 1) use the multitasker 2) setup an idle task which does nothing but enter the right sleep mode 3) whenever an interrupt is able to wake up the controller, the processing will continue. Sooner or later the multitasker will re-call the sleep task and everything is quiet again. > 2. the rx will be connected to an additional interrupt pin The usart interrupts can trigger the sleep-end condition itself. > 3. after receiving a character it will issue some message on state - > that everything is ok (e.g. none reset or power-off occured) and it > will start to communicate with us in a normal way.. After leaving the sleep mode, the controller continues just like if nothing has happened. Until the next sleep instruction is called (there is a stupid wrapper word in the dictionary which does nothing but call the SLEEP intruction.) > 4. when not communicating with host for e.g. 10sec, or none tasks to > accomplish, it will go to low power state again.. why wait? whenever the idle task is activated, the main task has nothing to do at all. Some googling revealed some pitfalls (connected usart devices or connected programming tools like debuggers may prevent the power save effects) however. in German: http://www.mikrocontroller.net/articles/Sleep_Mode I'd like to hear if it works. If it doesn't of course too Matthias |
From: pito <pi...@vo...> - 2011-04-04 18:40:32
|
The only "real" low power mode is the "power-down" (with WTD disabled <1uA, with WDT on 6-10uA). This mode cannot be wakedup by usart. All other modes are mostly >>100ua. Power-down: Only an External Reset, a Watchdog Reset, a Brown-out Reset, a Two-wire Serial Interface address match interrupt, an External level interrupt on INT0 or INT1, or an External interrupt on INT2 can wake up the MCU... ----- PŮVODNÍ ZPRÁVA ----- Od: "Matthias Trute" <mt...@we...> Komu: amf...@li... Předmět: Re: [Amforth-devel] Ultra Low Power operation Datum: 4.4.2011 - 20:16:43 > Hi, > > > > Hi, as the amforth will not be a subject of > > power computing let me > > > ask the experts following: > > 1. would it be possible to create a mechanism > > where amforth/atmega > > > will be run on _very_ low power - basically > > powerdown or sleep > > > I did not yet implemented it, but the strategy > should be strait > forward (as far as I understood the sleep mode > section): > > 1) use the multitasker > 2) setup an idle task which does nothing but enter > the right > sleep mode > 3) whenever an interrupt is able to wake up the > controller, the > processing will continue. Sooner or later the > multitasker will > re-call the sleep task and everything is quiet > again. > > > 2. the rx will be connected to an additional > > interrupt pin > > > The usart interrupts can trigger the sleep-end > condition itself. > > > 3. after receiving a character it will issue > > some message on state - > > > that everything is ok (e.g. none reset or > > power-off occured) and it > > > will start to communicate with us in a normal > > way.. > > > After leaving the sleep mode, the controller > continues just like > if nothing has happened. Until the next sleep > instruction is called > (there is a stupid wrapper word in the dictionary > which does nothing > but call the SLEEP intruction.) > > > 4. when not communicating with host for e.g. > > 10sec, or none tasks to > > > accomplish, it will go to low power state > > again.. > > > why wait? whenever the idle task is activated, the > main task has nothing > to do at all. > > Some googling revealed some pitfalls (connected > usart devices or > connected programming tools like debuggers may > prevent the power save > effects) however. in German: > http://www.mikrocontroller.net/articles/Sleep_Mode > > I'd like to hear if it works. If it doesn't of > course too > > Matthias > > ------------------------------------------------------------------------------ > > Create and publish websites with WebMatrix > Use the most popular FREE web apps or write code > yourself; > WebMatrix provides all the features you need to > develop and > publish your website. > http://p.sf.net/sfu/ms-webmatrix-sf > _______________________________________________ > Amforth-devel mailing list > Amf...@li... > https://lists.sourceforge.net/lists/listinfo/amforth-devel > |