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.

Preventing VCC from going too low.

I have a setup similar to this (The real one is a bit more complicated):

So, the CELL Modem sometimes takes too much current and the voltage of the battery drops below 2.2 Volts.   My MSP430 resets and I loose the current state.  So the SVMHIFG is used to disable the booster and SVMHVLRIFG to enable the booster.

#pragma vector = SYSNMI_VECTOR
__interrupt void SYSNMI_ISR(void) {
    //
    switch (__even_in_range(SYSSNIV, SYSSNIV_SVMHVLRIFG)) {
    case SYSSNIV_SVMHIFG:      // 0x04 Supply Voltage Monitor High
        P1OUT &= ~BIT3;        // Eneble Booster
    break;

    case SYSSNIV_SVMHVLRIFG:   // 0x12 SVM H voltage level reached
        P1OUT |= BIT3;         // Disable Booster
    break;
    }
}

I do not loose the state of my system, but is this a good approach?

Also, what is happening now is when the system is de-powered and powered back up, the MSP430 becomes unresponsive, unless it is depowered for few hours till the msp430 VCC us under 1.2 volts.  I need to be able to quckly reset the system, so I set the SVSPE as so:

PMMRIE |= SVMHVLRIE + SVMHIE + SVSLPE

Unfortinately it did not make any difference.  The SVSPE Causes the POR.  The BOR has the following effects:

But I cannot find anywhere what the POR does.  What is the difference.  I did see some posts on the difference but nowhere does it list specifically what POR does.  So when the voltage dips below SVSL, why does the system not run the pre-main and re-init all of the globals?

  • Deactivating loads when the supply depletes is a common practice. However, you need some hysteresis, so when the load is deactivated, supply voltage usually rises again, which will again activate the load - until this oscillation reaches a point where the sudden drop rashes the CPU.
    If you have startup problems, you might need to add a capacitor to RST. If using SBW for programming, 2.2nF are the maximum, else 100nF are a good and cheap choice.

     For the reset, the description is a bit simplified.
    The different reset states are chained. A BOR will initialize the reset pin to reset mode and initializes the SVS. Likely on hardware level. Then it will proceed with a BOR. The BOR reset the port pins to inputs, likely on hardware level too, then initializes some more modules (through boot code) and then proceed with a PUC.
    The SVS will initiate a BOR, so this won’t reset the SVS itself. If the SVS triggers a POR, the device will held in this state until the supply conditions meet the current SVS configuration or drop down to a level that triggers a BOR. And since in this state, the MSP consumes very low energy, this may take a while if there are some capacitors.
    A dirty (yet working) way is to short the supply shortly :) Directly at the MSP, behind the regulator.
    Or you put a pushbutton on the RST pin, to trigger a BOR manually. The cleaner, yet larger solution.

**Attention** This is a public forum