* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download How can I reduce my standby power consumption?
Wireless power transfer wikipedia , lookup
Power factor wikipedia , lookup
Current source wikipedia , lookup
Power inverter wikipedia , lookup
Electrification wikipedia , lookup
Electrical substation wikipedia , lookup
Variable-frequency drive wikipedia , lookup
Resistive opto-isolator wikipedia , lookup
Three-phase electric power wikipedia , lookup
Electric power system wikipedia , lookup
Power MOSFET wikipedia , lookup
Distribution management system wikipedia , lookup
Stray voltage wikipedia , lookup
Power over Ethernet wikipedia , lookup
History of electric power transmission wikipedia , lookup
Power engineering wikipedia , lookup
Buck converter wikipedia , lookup
Surge protector wikipedia , lookup
Voltage optimisation wikipedia , lookup
Power electronics wikipedia , lookup
Mains electricity wikipedia , lookup
Switched-mode power supply wikipedia , lookup
Immunity-aware programming wikipedia , lookup
Alternating current wikipedia , lookup
"How can I reduce my standby power consumption?" The Atmel datasheets for AVR devices often quote low values for standby current which are difficult to achieve in practice. The Problem Many applications of AVRs involve battery-powered devices with long standby periods, perhaps waiting for a keypress or external event. The canonical example of this is a remote control, where the batteries must last as long as possible, while at the same time requiring a fast response to the press of a key. The Atmel datasheets often quote very low standby currents, typically as low as 1uA. Many people have had problems achieving anywhere even close to this level of power consumption. Common Causes There are a series of common causes for this behaviour, some more easily dealt with than others. Each one will be dealt with in turn, explaining the problem and offering a solution. Floating Inputs This is by far the most common cause of high power consumption. CMOS inputs consume very little power as long as the input voltage is a definite logic '1' or logic '0'. If they are allowed to float, with no tie to a specific voltage, they will often oscillate spontaneously or sit at a voltage which is neither a definite '1' nor a '0'. In each of these cases, the extra current taken can be greater than the rated idle or power down current, especially if several pins are left floating. This can easily be remedied by pulling up any unused inputs. The best way to do this is usually to enable the internal pullup resistors in the AVR itself, since it requires no external components and can easily be applied to an existing design. Alternatively, pull the inputs up through an external resistor - the exact value is usually not important. Driven Outputs Obviously, to reduce power consumption, you should not be driving any resistive loads. This is so obvious it is sometimes overlooked. Check that any peripherals have CMOS inputs, and that there are no pullups or pulldowns on output pins. (Input pins are OK.) Inappropriate Sleep Mode Selecting the appropriate mode for the SLEEP instruction has a big impact on standby current. The mode selected should reflect which peripherals are required to be active. If you are only waiting for an external interrupt, then power-down mode is usually the right choice. If you need to wake up every so often, but the exact time is not critical, using powerdown with the watchdog timer consumes less power than using idle mode with one of the programmable timers. Peripherals Still Active Some peripherals can be turned on and off independently of the rest of the chip. Any of these devices which are not required should be disabled before entering sleep mode. Items which can be disabled where present include: the analog comparator (bit ACD in ACSR) the internal voltage references for the ADC (bits REFS1:0 in ADMUX) the ADC itself (bit ADEN in ADCSR/ADCSRA) the watchdog reset oscillator (bit WDE in WDTCR, WDTON fuse bit) the brownout detector (BODEN fuse bit) Premature Exit from Sleep If everything seems to be set up OK, check that the AVR is staying in sleep mode for the appropriate amount of time. Noise on interrupt lines, or incorrect timer values may mean that the AVR is not staying in sleep as long as expected, driving the average power consumption up. Toggling a spare pin on wakeup can be a useful debugging aid here. Other Devices Other devices in the circuit can also have high leakage or standby current. Electrolytic capacitors in particular may be an unexpected source of leakage current, especially if used for board-level decoupling. Use low-leakage types (ceramic or polyester) in low-power applications. More Information You can also find more information on page 44 of the ATMega128 Datasheet - the advice for any particular feature also applies to any AVR possessing it. Sean Ellis, March 200