Maker Pro
Maker Pro

Wake Up Real Time Clock

sirch

Dec 6, 2012
109
Joined
Dec 6, 2012
Messages
109
I am looking to design an AVR based circuit* that needs to run for a long time, ideally months, from batteries (with possibly solar trickle charge). From some research it looks like it is possible to put the AVR into a fairly deep sleep where it runs on uA however I need it to wake up periodically.

Given that waking up the AVR is achieved by an interrupt is there a real time clock chip or circuit that can do this from whilst using minimal current? I've done a lot of googling but can't seem to find anything.


*the circuit is a tipping bucket rain gauge that will be left in a remote location and hopefully only serviced once every few months. Obviously the tipping bucket can be used to wake up the AVR on first tip. But I would also like it to wake up say every hour to read the temperature and possibly also once a day to send data back via GPRS
 

BobK

Jan 5, 2010
7,682
Joined
Jan 5, 2010
Messages
7,682
Don't know about AVR, but PICs have an internal watchdog timer that can wake it up from sleep. They also have a super low power wakeup using an external capactor that discharges slowly then wakes it up after it reaches some voltage limit. Check the AVR datasheets for something like these.

bob
 

(*steve*)

¡sǝpodᴉʇuɐ ǝɥʇ ɹɐǝɥd
Moderator
Jan 21, 2010
25,510
Joined
Jan 21, 2010
Messages
25,510
For the general concepts, you need to read up on how to run your microcontroller of choice at the lowest possible power.

Once you've done the obvious things (turning off outputs which drive things, lowering the clock rate, etc.) you start to get into more exotic areas like looking at the quiescent current of external components (voltage regulators especially) and turning off interrupts and/or the watchdog timer and especially the brownout detection.

There is an excellent (but now somewhat dated) explanation of how to achieve long battery life in a chapter of "The Art of Electronics" (when is the next version coming out???).

You might find that you can completely power down everything except the RTC if the RTC can deliver an interrupt which can be used to power up the uC.

An example might be the DS3234 which can issue an interrupt when an alarm condition is met. Unfortunately, this device has a minimum current of 120uA even in standby, so it may consume more power than you'd like.

The ISL12057 looks interesting. It has similar capabilities but has supply currents in the nA range (mind you, it seems to require a 1.8V power supply too...) It can trigger timed interrupts (It says every second or every minute, but I assume the delay can be set to other values)

As I suggested previously, the interrupt need not actually generate an interrupt. You could use this to apply power to the uC. The uC then interrogates the RTC, does what is required, and turns off its own power.

If you do this, you probably don't want to use an arduino because that's going to pause for a while on power-up to see if it's going to be programmed...)

The ATmega8 bootloader only takes up 1 KB of flash. It does not timeout when it receives invalid data, you need to make sure that no data is sent to the board during the 6-8 seconds when the bootloader is running.

You can program without a bootloader though.

Here are some pages with useful information:
 

sirch

Dec 6, 2012
109
Joined
Dec 6, 2012
Messages
109
Thanks for the replies, really helpful.

I have to say that I had just not looked at SPI/I2C devices because I had assumed - incorrectly - that they would only interact over the bus. Lesson learned.

Things in the uA range quiescent current will be fine. A 4AH battery at average 1mA load will give 166 days in theory, which is more than twice what I am looking for.
 
Top