I have a small circuit with MSP430F449 and a small test code that initializes and sleeps that is all. The current consumption is more than 10 mA!!! (I have an analog tester, with max of 10mA). The chip is in sleep mode, how could this be possible? The other components I have are max3221, which is in auto shutdown mode with 15uA, SST EEprom with 1uA standby current, TSP7201 (which not powered but it is there), and an LCD with all the segments off. The total consumption should not be more then 20 or 30 uA but it is not. Below is the code, all pins are outputs and set to 0. p.s. there are no leds on the board. void main(void) { InitializeHardware(); InitializeValues(); // initializes values to their default value while(1) { // this is the forever loop if(ulPulseCounter > 0) { // if we have unprocessed pulses while(ProcessPulse()); // process all pulses } _BIS_SR(CPUOFF | SCG1 | SCG0); // sleep } } void InitializeHardware(void) { WDTCTL = WDTHOLD | WDTPW; // Stop watchdog. TACTL = TASSEL0 | TACLR; // ACKL for TIMER_A CCTL0 |= CCIE; // Enable CCR0 interrupt CCR0 = 0x7FFF; // Load CCR0 with 32,767 TACTL |= MC0; // Start TA in "up to CCR0" mode // Set FLL. FLL_CTL0 |= XCAP14PF; BTCTL = BT_fLCD_DIV64 + BTDIV + BTIP1 + BTIP0; // 125ms interrupt P1DIR = 0xFC; // p1.0 ve p1.1 -> input P1IES = 0x02; // interrupt on low to high transition P1IFG = 0x00; // clear port1 interrupts P1IE = 0x02; // enable interrupt on pin P1IE.1 P2DIR = 0xFF; P2OUT = 0x00; P1SEL = 0x30; P2SEL = 0x00; P3OUT = 0X00; P4OUT = 0X00; P5OUT = 0X00; P6OUT = 0X00; P3DIR = 0XFF; P4DIR = 0XFF; P5DIR = 0XFF; P6DIR = 0XFF; //_EINT(); // do not enable interrupts for test purposes }
Unreasonably high power consumption
Started by ●August 7, 2003
Reply by ●August 7, 20032003-08-07
Without seeing the circuit it is hard to know if perhaps the current consumption is happening outside the device. You might try setting all the connected output pins to input to see if there may be an external contention. Russ Troxel Analog/Digital Design Engineer Megger 4271 Bronze Way Dallas, Texas 75237-1088 Phone: 214.330.3242 (Direct) Phone: 800.723.2861 Ext. 3242 (Toll Free) FAX: 214.331.7373 e-mail: russell.troxel@russ... URL: www.megger.com The information contained in this electronic mail message is confidential. It is intended solely for the use of the individual or entity to who it is addressed and others authorized to receive it. If the reader of this message is not the intended recipient, you are hereby notified that any use, copying, dissemination or disclosure of this information is strictly prohibited. -----Original Message----- From: Omer Yalhi [mailto:oyalhi@oyal...] Sent: Thursday, August 07, 2003 9:14 AM To: msp430@msp4... Subject: [msp430] Unreasonably high power consumption I have a small circuit with MSP430F449 and a small test code that initializes and sleeps that is all. The current consumption is more than 10 mA!!! (I have an analog tester, with max of 10mA). The chip is in sleep mode, how could this be possible? The other components I have are max3221, which is in auto shutdown mode with 15uA, SST EEprom with 1uA standby current, TSP7201 (which not powered but it is there), and an LCD with all the segments off. The total consumption should not be more then 20 or 30 uA but it is not. Below is the code, all pins are outputs and set to 0. p.s. there are no leds on the board. void main(void) { InitializeHardware(); InitializeValues(); // initializes values to their default value while(1) { // this is the forever loop if(ulPulseCounter > 0) { // if we have unprocessed pulses while(ProcessPulse()); // process all pulses } _BIS_SR(CPUOFF | SCG1 | SCG0); // sleep } } void InitializeHardware(void) { WDTCTL = WDTHOLD | WDTPW; // Stop watchdog. TACTL = TASSEL0 | TACLR; // ACKL for TIMER_A CCTL0 |= CCIE; // Enable CCR0 interrupt CCR0 = 0x7FFF; // Load CCR0 with 32,767 TACTL |= MC0; // Start TA in "up to CCR0" mode // Set FLL. FLL_CTL0 |= XCAP14PF; BTCTL = BT_fLCD_DIV64 + BTDIV + BTIP1 + BTIP0; // 125ms interrupt P1DIR = 0xFC; // p1.0 ve p1.1 -> input P1IES = 0x02; // interrupt on low to high transition P1IFG = 0x00; // clear port1 interrupts P1IE = 0x02; // enable interrupt on pin P1IE.1 P2DIR = 0xFF; P2OUT = 0x00; P1SEL = 0x30; P2SEL = 0x00; P3OUT = 0X00; P4OUT = 0X00; P5OUT = 0X00; P6OUT = 0X00; P3DIR = 0XFF; P4DIR = 0XFF; P5DIR = 0XFF; P6DIR = 0XFF; //_EINT(); // do not enable interrupts for test purposes } <http://rd.yahoo.com/M$4522.3656190.4921519.1261774/D=egroupweb/S050053 78:HM/A95053/R=0/SIG4mh1h7k/*http://ashnin.com/clk/muryutaitakenattogy o?YH656190&yhad95053> Click Here! <http://us.adserver.yahoo.com/l?M$4522.3656190.4921519.1261774/D=egroupmai l/S=:HM/A95053/randU4531816> . ">http://docs.yahoo.com/info/terms/> .
Reply by ●August 7, 20032003-08-07
Make sure that all the unused input pins are pulled up/down using a high value Resistor. -Sumukh --- "Troxel, Russell" <Russell.Troxel@Russ...> wrote: > Without seeing the circuit it is hard to know if > perhaps the current > consumption is happening outside the device. You > might try setting all the > connected output pins to input to see if there may > be an external > contention. > > > Russ Troxel > Analog/Digital Design Engineer > > Megger > 4271 Bronze Way > Dallas, Texas 75237-1088 > Phone: 214.330.3242 (Direct) > Phone: 800.723.2861 Ext. 3242 (Toll Free) > FAX: 214.331.7373 > e-mail: russell.troxel@russ... > URL: www.megger.com > > The information contained in this electronic mail > message is confidential. > It is intended solely for the use of the individual > or entity to who it is > addressed and others authorized to receive it. If > the reader of this > message is not the intended recipient, you are > hereby notified that any use, > copying, dissemination or disclosure of this > information is strictly > prohibited. > > -----Original Message----- > From: Omer Yalhi [mailto:oyalhi@oyal...] > Sent: Thursday, August 07, 2003 9:14 AM > To: msp430@msp4... > Subject: [msp430] Unreasonably high power > consumption > > > I have a small circuit with MSP430F449 and a small > test code that > initializes and sleeps that is all. The current > consumption is more > than 10 mA!!! (I have an analog tester, with max of > 10mA). The chip is > in sleep mode, how could this be possible? The > other components I have > are max3221, which is in auto shutdown mode with > 15uA, SST EEprom with > 1uA standby current, TSP7201 (which not powered but > it is there), and an > LCD with all the segments off. The total > consumption should not be more > then 20 or 30 uA but it is not. Below is the code, > all pins are outputs > and set to 0. > > p.s. there are no leds on the board. > > void main(void) > { > InitializeHardware(); > InitializeValues(); // initializes values > to their default > value > > while(1) { // this is the forever loop > if(ulPulseCounter > 0) { // if we have > unprocessed pulses > while(ProcessPulse()); // process all > pulses > } > > _BIS_SR(CPUOFF | SCG1 | SCG0); // sleep > } > } > > void InitializeHardware(void) > { > WDTCTL = WDTHOLD | WDTPW; // Stop watchdog. > TACTL = TASSEL0 | TACLR; // ACKL for > TIMER_A > CCTL0 |= CCIE; // Enable CCR0 interrupt > CCR0 = 0x7FFF; // Load CCR0 with 32,767 > TACTL |= MC0; // Start TA in "up to > CCR0" mode > > // Set FLL. > FLL_CTL0 |= XCAP14PF; > BTCTL = BT_fLCD_DIV64 + BTDIV + BTIP1 + BTIP0; > // 125ms > interrupt > > P1DIR = 0xFC; // p1.0 ve p1.1 -> input > P1IES = 0x02; // interrupt on low to > high transition > P1IFG = 0x00; // clear port1 interrupts > P1IE = 0x02; // enable interrupt on pin > P1IE.1 > > P2DIR = 0xFF; > P2OUT = 0x00; > > P1SEL = 0x30; > P2SEL = 0x00; > > P3OUT = 0X00; > P4OUT = 0X00; > P5OUT = 0X00; > P6OUT = 0X00; > > P3DIR = 0XFF; > P4DIR = 0XFF; > P5DIR = 0XFF; > P6DIR = 0XFF; > > //_EINT(); // do not enable > interrupts for test purposes > } > > > > > <http://rd.yahoo.com/M$4522.3656190.4921519.1261774/D=egroupweb/S050053 > 78:HM/A95053/R=0/SIG4mh1h7k/*http://ashnin.com/clk/muryutaitakenattogy > o?YH656190&yhad95053> Click Here! > > <http://us.adserver.yahoo.com/l?M$4522.3656190.4921519.1261774/D=egroupmai > l/S=:HM/A95053/randU4531816> > > . > > > > ">http://docs.yahoo.com/info/terms/> . > > > > > [Non-text portions of this message have been > removed] > > __________________________________
Reply by ●August 7, 20032003-08-07
Russ hi, Thanks for the reply. I did what you suggested. Below are the results: All ports outputs set to 0, current consumption: 12.00 mA All ports inputs (set to 0 anyways) current con: 3.50 mA There is infact a huge difference, but I don't know how to interpret this. What does this tell me? -----Original Message----- From: Troxel, Russell [mailto:Russell.Troxel@Russ...] Sent: Thursday, August 07, 2003 5:52 PM To: msp430@msp4... Subject: RE: [msp430] Unreasonably high power consumption Without seeing the circuit it is hard to know if perhaps the current consumption is happening outside the device. You might try setting all the connected output pins to input to see if there may be an external contention. Russ Troxel Analog/Digital Design Engineer
Reply by ●August 7, 20032003-08-07
One of the pins in connected to an external load. That could be a legitimate load, or it could be a contention. That is where it could be connected to the output of another device so that the other device's output is high diving into this devices low output. It could also be a short circuit on the board. Russ Troxel Analog/Digital Design Engineer Megger 4271 Bronze Way Dallas, Texas 75237-1088 Phone: 214.330.3242 (Direct) Phone: 800.723.2861 Ext. 3242 (Toll Free) FAX: 214.331.7373 e-mail: russell.troxel@russ... URL: www.megger.com The information contained in this electronic mail message is confidential. It is intended solely for the use of the individual or entity to who it is addressed and others authorized to receive it. If the reader of this message is not the intended recipient, you are hereby notified that any use, copying, dissemination or disclosure of this information is strictly prohibited. -----Original Message----- From: er Yalhi [mailto:oyalhi@oyal...] Sent: Thursday, August 07, 2003 10:27 AM To: msp430@msp4... Subject: RE: [msp430] Unreasonably high power consumption Russ hi, Thanks for the reply. I did what you suggested. Below are the results: All ports outputs set to 0, current consumption: 12.00 mA All ports inputs (set to 0 anyways) current con: 3.50 mA There is infact a huge difference, but I don't know how to interpret this. What does this tell me? -----Original Message----- From: Troxel, Russell [mailto:Russell.Troxel@Russ...] Sent: Thursday, August 07, 2003 5:52 PM To: msp430@msp4... Subject: RE: [msp430] Unreasonably high power consumption Without seeing the circuit it is hard to know if perhaps the current consumption is happening outside the device. You might try setting all the connected output pins to input to see if there may be an external contention. Russ Troxel Analog/Digital Design Engineer <http://rd.yahoo.com/M%1812.3170658.4537139.1261774/D=egroupweb/S050053 78:HM/A93353/R=0/SIGt71ok4g/*http://www.netflix.com/Default?mqso`178 294&partid170658> click here <http://us.adserver.yahoo.com/l?M%1812.3170658.4537139.1261774/D=egroupmai l/S=:HM/A93353/randS1720880> . ">http://docs.yahoo.com/info/terms/> .
Reply by ●August 7, 20032003-08-07
In principle that means that pins shall be set exactly as they are required
by the circuit connections.
Pins that are connected to outputs of other components must be set as inputs.
Pins that are connected to inputs of other components must be set as outputs.
In your case both the all-output and the all-input configuration is wrong.
You said you have an rs232 device connected.
This one has some output and some input pins.
Check the correct matching with the MSP430 pins.
The general rule may have some exceptions.
Sometimes there may be a different requirement for pin settings when in
operation Vs. when idle at low power. Sorry but there is no alternative to
careful planning of this issue.
Regards
A.Morra
At 18:27 07-08-03 +0300, you wrote:
>Russ hi,
>
>Thanks for the reply. I did what you suggested. Below are the results:
>
>All ports outputs set to 0, current consumption: 12.00 mA
>All ports inputs (set to 0 anyways) current con: 3.50 mA
>
>There is infact a huge difference, but I don't know how to interpret
>this. What does this tell me?
>
>
>
>-----Original Message-----
>From: Troxel, Russell [mailto:Russell.Troxel@Russ...]
>Sent: Thursday, August 07, 2003 5:52 PM
>To: msp430@msp4...
>Subject: RE: [msp430] Unreasonably high power consumption
>
>
>Without seeing the circuit it is hard to know if perhaps the current
>consumption is happening outside the device. You might try setting all
>the
>connected output pins to input to see if there may be an external
>contention.
>
>
>Russ Troxel
>Analog/Digital Design Engineer
>
>
>
>.
>
>
>
>">http://docs.yahoo.com/info/terms/
Reply by ●August 7, 20032003-08-07
er Yalhi wrote: > There is infact a huge difference, but I don't know how to > interpret this. What does this tell me? General case of high power consumption: 1. On input - need to eliminate floating input. 2. On output high - output pin has small resistance to ground. 3. On output low - output pin has small resistance to power rails. In case of floating input, CMOS is working as amplifier, not switch (both transistors not closed). In case of outputs, probably some solder blurb or small resistor (pull-ups/downs?). 10k pullup will consume 0.3mA for 3V. Try with outputs high, not low and measure again. Indrek -- Indrek Rebane | OU Borthwick-Pignon Electronics Engineer | Tartu Science Park Phone: (+372) 7 302 641 | Riia 185, 51014 Tartu Fax: (+372) 7 383 041 | Estonia indrek@indr... | http://www.bps.co.ee
Reply by ●August 7, 20032003-08-07
I would like to thank everyone for their replies. There are no short circuits on the board. It turns out max232 rx pin, set to be output was the problem. Setting that pin to input solved it. I am now down to 630uA and have not configured the lcd pin directions *correctly* yet.
Reply by ●August 7, 20032003-08-07
Ok, now, all the pins have correct settings, the lcd on and the power consumption is 600uA while sleeping. I still think that this is way too high. It should be about 20 or 30 uA at most when LPM3. Any more ideas?
Reply by ●August 7, 20032003-08-07
If this is a custom board the absolutely easiest way to go is to populate
it one element at a time. Start with the MSP430, verify that you do indeed
get the current you want to see, then add one more element at a time,
retesting as you go. If you only have the one PCB you can cut traces like
crazy, then reconnect them one at a time. Or work in reverse, severing one
element at a time, but this is not as straightforward.
I think no one will be able to remote debug a system for you.
--Bruce
> Ok, now, all the pins have correct settings, the
lcd on and the power
> consumption is 600uA while sleeping. I still think that this is way too
> high. It should be about 20 or 30 uA at most when LPM3. Any more
> ideas?