I have investigated the sleeps options of the ATmega328 , and read a few articles about it , and i would like to understand if there are more options .
So i would like to get as low current as possible, so that anything less that 100uA would be good- as long as i can listen to uart and interrupts for waking up .
I am using a costum pcb (not the UNO) , with ATmega328p .
setting the chip to deep sleep :
set_sleep_mode (SLEEP_MODE_PWR_DOWN); sleep_enable(); sleep_cpu ();
would not wake it up with serial communication ,according to this : http://playground.arduino.cc/Learning/ArduinoSleepCode
you will need to put it in IDLE mode , to listen to serial , but this would consume a few mA -bad .
I have found this link where you can connect in hardware the serial to the interrput- which is dangerous so you can loose data, and moreover , i need these 2 interrupts pins . http://donalmorrissey.blogspot.co.il/2010/04/sleeping-arduino-part-3-wake-up-via.html
I also read this article of Gammon, where you can disable some things , so you can get IDLE sleep with much lower power- but he didnt mention the serial in there : http://www.gammon.com.au/forum/?id=11497
power_adc_disable(); power_spi_disable(); power_timer0_disable(); power_timer1_disable(); power_timer2_disable(); power_twi_disable();
So , bottom line, is there any option out there, to get less than 0.25mA at least , and also listen to serial port, without any hardware manipulation ? for example waking up with long serial data input ?
thanks a lot .