I have a microprocessor (MSP430) circuit that I am trying to get into the lowest power state possible. I would like to have it "sleep" while not being used instead of having a switch to turn it off. The only problem is that something in my circuit is consuming a huge amount of current when I have turned everything off. I am at my wits end to figure out what component could be doing this. I have attached the schematic of the circuit. When I have the LCD, radio, and MSP sleeping or off, the current drawn from the voltage regulator is still 1.66mA, about 1,000x what I expect.
The voltage regulator sources all of the power for the circuit. The microprocessor controls the power to the LCD and puts the radio in various modes. When I go into low power mode, the radio is put into 2uA sleep mode and the LCD is turned off. I know that the radio is really only drawing 2uA of current because I have measured it. The LCD is definitely drawing no current because I have unplugged it from the circuit all together. I am also positive that the MSP is really going into LPM3 (low power mode 3), during which it is only supposed to draw around 2-5uA of current.
Can anyone tell me what could be embezzling all of my power?
Thanks for any and all help!
The LTC3531 voltage regulator is a buck-boost type that draws 16 uA at most when the
input voltage is higher than the regulated voltage, but can draw much more (even with no
output current) when it goes into boost mode. It will do this when the input falls below the
desired output if the shutdown pin is high, as you have shown.
Another possibility is floating inputs on the processor. I am not very familiar with the
MSP430, but I know other processors that have floating inputs can draw more current than
expected in sleep mode because environmental noise switches the input states which
drive latches in the processor. The fix for this is to not have unconnected inputs, say by
setting them as outputs if possible, or by using a light pullup or pulldown resistor to
eliminate noise toggling.
What have you done with your unused pins in code? Floating inputs can be a sneaky cause of significant power draw.
It's recommended that you set all unused pins to output high (or low, but most of the MSP430 datasheets I've read recommend high for lowest consumption) including the JTAG pins. 1.66mA seems a bit high for that problem, but I've certainly seen high hundreds of uA when I've made that mistake (with the 5438 no less!).
Thank you for your responses, Mike and Ben. I have solved the problem! I have an I/O port from the MSP attached to the "reset" pin on the radio. Originally, I had no idea that the radio had a reset pin. However, yesterday when I was grappling with this non-low power issue (then, the lowest I was getting to was ~3mA), I read through a more updated datasheet for the radio and found that you have to reset the module in order to change modes (which I was doing, going from regular to low power mode). I found this mysterious pin and connected it to my MSP, was able to get that to work, but I still only got 1.66mA. Today, I had confirmed that we were indeed turning all of the unused pins to outputs and that the regulator was getting a voltage above its output voltage (making it in buck mode). I even was in the middle of exploring if it could possibly be the crystal! Then my coworker realized that in the simple low-power program we were using to explore this issue, when it goes to low power mode it turns all of the "unused" pins high...including the reset pin for the radio. So basically, we were continually resetting the radio and this was drawing all of that current (a surprisingly small amount of current considering what it was doing). Once he rewrote the program to not turn that pin high, we were finally able to hit the holy grail: ~20uA of total current draw!!! 16 of that is from the voltage regulator and the rest is from the microprocessor. Whew, huge sigh of relief. Thank you guys for your help!
By the way, for consistency's sake, I checked the current draw when the battery voltage is below the regulator's output voltage, and it looks like it only affects the current when it is below 2.5V, and even then only increasing the total current draw to 30mA. Thank you for mentioning that; it looks like it shouldn't be a problem.
Another note regarding this low-power issue: I discovered the reason that another one of my circuits is drawing too much power. I had never disabled the Vref+! The chip uses its ADC to accept sensor data, and uses the internal 2.5V reference voltage, and I had not even thought to turn that off. Those peripherals and functions can be tricky!
Thanks again, guys!