This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

MSP430F6723: Auxiliary Supply System and Low Power Modes

Part Number: MSP430F6723
Other Parts Discussed in Thread: MSP-FET

Hello,

I am in the middle of development of electricity meter, based on MSP430F6723.

The chip has power supply on DVCC and additional battery on AUX1. The idea is to have the power supplied switched (HW control) when main power is off, store some data and put the device to LPM3. When power is back - put the meter to normal operation.

What I found out was that this works most of the time. Unfortunately, every now and then a strange thing happens. When main power is off, the chip will go to some strange state with high power consumption - approx 2.5 mA (expected 5 - 6 uA). In this case it will not go back to normal after power is restored, it takes 2 or 3 on-off cycles to have it running. This condition happens quite often if you apply two or three consecutive off-on cycles (which is quite normal on the grid).

At first I thought I was doing something wrong in my code, so I tried to simplify the whole project. Finally I have this:

#include <msp430.h>

void main(void)
{
WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer
AUXCTL0 = AUXKEY;
AUXIFG=0;
AUXIE|=AUX0SWIE|AUX1SWIE;
AUXCTL0 &= ~LOCKAUX;
_enable_interrupt();
while (1)
{

}

}

#pragma vector = AUX_VECTOR
__interrupt void AUX_ISR (void)
{
switch(__even_in_range(AUXIV,AUXIV_AUXMONIFG))
{
case AUXIV_NONE: break;
case AUXIV_AUXSWNMIFG: break;
case AUXIV_AUX0SWIFG:
__bic_SR_register_on_exit(LPM3_bits);
break;
case AUXIV_AUX1SWIFG:
__bis_SR_register_on_exit(LPM3_bits+GIE);
break;
case AUXIV_AUX2SWIFG: break;
case AUXIV_AUX0DRPIFG: break;
case AUXIV_AUX1DRPIFG: break;
case AUXIV_AUX2DRPIFG: break;
case AUXIV_AUXMONIFG: break;
default: break;
}
}

This is the whole code, nothing else is in the project.

In this case the power consumption is higher, since there would be some power leakage through some pins, but the whole picture is the same - normal condition in LPM3 - 250 - 300 uA, and in this 'strange' condition - about 2.8 mA.

Is there any minimum time between switching or anything else I need to secure to have reliable switching?

Thanks in advance

Maxim Karakash

  • Hi Maxim,

    do you have considered AUXPMM1 and AUXPMM2 in your application design? Please find here the link to the corresponding ERRATA:

  • Hi Dietmar,

    Here are the settings from my original project:

    SVSMHCTL &= ~(SVSHRVL1 | SVSHRVL0 | SVSMHRRL2 | SVSMHRRL1 | SVSMHRRL0);
    SVSMHCTL|= SVSHRVL1 | SVSMHRRL1;
    PMM_setVCore(PMM_CORE_LEVEL_2);
    SVSMLCTL &= ~(SVMLE|SVSLE);

    AUXCTL2 |= AUX1LVL1 | AUX1LVL0; //Battery voltage level 2.26V
    AUXCTL2 |= AUX0LVL1; //DVCC voltage level 2.14V

    Best regards

    Maxim

  • Hi Maxim,

    I would expect that the DriverLib Function setVcore increase teh SVSMH levels to the recommended settings of 2 as recommended in users guide. Can you please confirm?

    But anyway what would be required is a scope shot of DVCC and AUXVCC1 during switching and especially when it fails?

    This is important to check if the conditions of AUXPMM1 are met. Based on your code I would say the AUXPMM1 is not considered properly, do you agree?


  • Hi Dietmar,

    You are right, setVcore is supposed to set proper values for SVSHRVL and SVSMHRRL., which means I don't need to set them before that.

    I think you described the problem correctly. To further confirm this, here is some more: In my original project I have some more code in AUX1SWIFG. Yesterday, during my experiments I could confirm that in fail cases, this code was not executed.

    Yesterday I made another experiment. The setup was like this:

    DVCC - main power supply.

    AUX1 - battery

    AUX2 - capacitor.

    the logic I applied was:

    on power up - check if DVCC is on - if so - disable HW control to switch to AUX1 and start charging capacitor on AUX2.

    on power failure the device should switch to AUX2 and eventually power down, since capacitor should be able to keep it running for very short time.

    In AUX2SWIFG I put an endless loop.

    In this case I was able to monitor the same faulty behavior, i.e. every now and then the device stays with power consumption from batter approx 2.5 mA and needs 2-3 on-off cycles to get back to normal condition.

    Regarding oscilloscope picture of the vent - I'm afraid this will have to wait until we build a new testing device and my new MSP-FET arrives. I ordered one this morning after a nice short circuit - now I have no MSP-FET, no PC and no device to test... 

    I hope the MSP-FET should be here in couple of days.

    Meanwhile, if any other information is needed, I am available. 

  • Hi Maxim,

    You power up you device and once DVCC is ok you switch manually to AUXVCC1 and afterwards you charge the cap on AUXVCC2 via DVCC path?

    Would recommend to do it the other way around. First charge the cap while supplied via DVCC and if cap is charged switch to AUXVCC1.

    So the power fail happens on AUXVCC1 correct? What is connected to DVCC at this point?

    Without having signal traces of all 3 supplies it is hard to say whats going on. However the fact the you killed you MSP FET by a short concerns me as well.
    Are you sure you have your supply under control? Knowing this it is even more important to see scope shots.

    By the way I recommend to do power up and down cycling without JTAG connected because this can lead to incorrect behavior because you might backdoor supply via JTAG interface. In such case I recommend to implement GPIO toggle signals inside the code to see which portion of the code is executed at which point in time during power cycling.

  • Hi Dietmar,

    Maybe I did not described it correctly.

    After power on

    - if DVCC is OK - normal condition - I start charging the capacitor and disable HW control to switch to AUX1 - to make sure after power down the device will stay on for short time and the power off.

    - if DVCC is not OK - it is working on battery - so go to LPM3.

    When DVCC is back on - go to normal mode.

    The power fails happens on DVCC.

    The power supply should be fine - I can send schematics if you think this can help.

    All the testing was done with JTAG disconnected - the short circuit from this morning was because I forgot to disconnect the MSP-FET.

    Best regards

    Maxim

  • Hi Maxim,

    ok I think I understand it now but then again the question is to which level the voltage on DVCC drops down and if this cause AUXPMM1 ERRATA. As said scope pictures are required. So looking forward to these data. Thanks!

  • Thanks Dietmar,

    I'll be back...

    Best regards

    Maxim

  • Hi Maxim,

    hope you enjoyed Eastern in these crazy times. Any update on this case?

  • Hi Dietmar,

    We have Easter this week, so it is yet to come.

    Anyway, I did some more testing and after discussions with my colleagues here, the reason for this strange behavior came more or less clear.

    While I was doing my experiments, I kept the cable on the JTAG connected to the PCB and disconnected from the MSP-FET (it was easier to disconnect at the side of MSP-FET).

    Now I tried the same experiment with JTAG cable disconnected from the PCB and everything was fine, whatever I do, I can not reach this crazy state. So, obviously, something was happening on the JTAG and this was the reason for all of it.

    Thank you for your help.

    Best regards

    Maxim