Tapatalk

Sleep for long intervals

Sleep for long intervals

4

PostJul 24, 2017#1

I haven't used whisper node yet (i believe the next lot is shipping in mid Sep). As far as atmega controllers are concerned, i guess max sleep time can be used is 8 sec due to internal register limitation.
I am thinking to add an external low power timer circuit like TPL5110 and a BJT to control power to the rest of the circuit.
Are there any other alternative someone can suggest ? .. cost effective and low power as well. This IC claims to sip 25 uA ....

Cheers,
Omer

1885
1885

PostJul 24, 2017#2

Hi Omer_Omer,

The Whisper Node AVR RFM69 still in pre-order, with the expected release date for mid-sept/2017. Now we are shipping the LoRa version at the moment.

Regarding the sleeping time, the most convenient way to sleep for periods longer than 8 seconds it's to simply create a loop to sleep the MCU again for extra 8 seconds for N times.

The MCU will basically wake-up and the next instruction will be to sleep again, and again, etc... This wake-up and sleep happens ultra-fast and can be basically ignored for the power consumption figures.

Once the MCU slept for, lets say, 10 times 8 seconds, your code will than continue to the next statement and run whatever you need.

Using an external power-down circuit will be less effective by the fact the circuit itself consume some power. Additionally, every time the MCU boots, it spend a few milliseconds to stabilize the oscillator as well for the boot-loader to run, wasting much more energy.

Regards

4

PostJul 31, 2017#3

Thanks for the reply ...
The approach of putting the CPU to sleep via loop is still reliable when i want my project to sleep for 20 to 25 min ?
Any anomalies / snags to foresee ?

1885
1885

PostJul 31, 2017#4

Hi again Omer_Omer,

The Sleep on the AVR ATMega328p is based on the Watchdog 128KHz crystal, which is only 10% accurate. You might find some useful information here: http://jeelabs.org/2012/03/27/tracking- ... index.html.

If you need to keep exactly time keeping while sleeping you are going to need a RTC, which you can schedule "alarms" to wake-up the MCU at a specific time. Alternatively you can try to communicate with another node to "receive" the time and periodically adjust any drift.

Cheers