Electronic – Arduino low power consumption and multiplexer

arduinoatmegainterruptslow-powertransistors

I've got a project that uses an Arduino with the LadyAda audio shield and a multiplexer to play sounds in response to button presses. I'm planning on using a MAX667 voltage regulator which has a low quiescent current, as well as using the ATmega sleep capability to put the Arduino (actually ATMEGA328P chip without the Arduino to bypass its regulator which has a relatively high quiescent current) to sleep. This is because it will be operating on 4 D-cell batteries. I'm going to wire the buttons to a multiplexer (TI SN74150N 16:1) as well as to pin 2 which will allow me to wake up the ATmega IC. I have several questions:

  1. The mux has an average power consumption of 40 mA; average power dissipation of 200 mW at 5 V should yield 40 mA). I want to put it to sleep. Can I use a transistor (like a 2N3904) connected to a digital Atmega pin to turn off power to the mux even if the ATmega IC is sleeping? Will its state be retained in low power mode?

  2. The ATmega interrupt pin requires LOW level to trigger the interrupt to wake up (for the deep sleep modes). I was planning on configuring the buttons (normally open) as pull-up switches.

  3. [2A] Since the interrupt requires a LOW, I will need to make these as pull-down switches. Will this pull-down configuration consume extra power when the IC is sleeping?

  4. [2B] Alternatively, I could use a transistor to form a logic NOT. Will this consume increased power?

  5. In general, how does one determine the "quiescent current" of a transistor? In other words, how much power does the transistor take to operate?

  6. Is there a better way of doing this?

Best Answer

Single transistors don't really have any "quiescent current". If you don't feed them some current (or, in case of MOSFETs, voltage), they don't conduct. (A couple of nA leakage current can safely be ignored.)

As @geometrikal stated, these days there are better ICs for your application. Modern port expanders have an interrupt output, so you don't need the array of diodes which your solution would require. This particular IC has a standby current of just one µA, so you don't need to turn it off.