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.

How does a MSP430 crash unexpectedly ?

Hi there,

The system is composed of a MSP430F2232 and a DM3x.
The DM3x is powered by 5.4v/3.3v/1.8v/1.2v (all buffered, regulated from DCIN).
The MSP430 is powered by MSP_PWR in the attached circuit and serves:
    1. DCIN monitor informs DM3x by interrupt.
    2. Power controller of DM3x by reset.
    3. UBL (User Bootcode Loader) via UART to DM3x.
    4. RTC, ADC, and IO extender via I2C for DM3x.

The MSP430 crashes unexpectedly (approx. once in a month after DCIN is removed)
with power consumption between normal mode and LPM3 mode.
Only a HW reset can bring the MSP430 back to free DM3x from reset.

Please indicate the way to find the reason or indicate possible reasons why it crashes.

Thanks & regards,
Yulin.

//--------------------------------------------------------------------------
The pseudo code of the main loop is:

    SysState = S_SLEEP;
    while(1){
        switch(SysState){
            case S_SLEEP:
                if(SysCfg.OnFlag){ //asserted by ADC in TimerB ISR.
                    if(CheckDCINbyADC()){
                        SysState = S_UBL;
                        break;
                    }
                }
                LPM3; //LPM3_EXIT in TimerB ISR
                break;

            case S_UBL:
                Uart_Open();
                Pulse a reset pulse to DM3x and starts UBL.
                Uart_Close();
                if(UBLisOK) SysState = S_READY;
                break;
           
            case S_READY:
                Check and respond DM3x command
                if( DM3x_ShutdownIsCompleted || DCINIsLostForMoreThan3seconds ){
                    ResetDM3x();
                    SysState = S_SLEEP;
                    break;
                }
                CheckDCINbyADC and notify DM3x for DCIN unstable or lost.
                LPM0; //LPM3_EXIT in TimerB ISR
                break;
        }
    }

  • 2.2µF for C65 isn't that much. Even if it were onyl for stabilizing VCC with active supply. Even less if the supply is failing.
    However, it should be backed by RTC_BAT. Now you have a schottky diode between REF_PWR and MSP_PWR, so MSP_PWR is <3.1V normally. And there is a diode between RTC_BAT and MSP_PWR, so if DCIN fails, MSP_PWR drops to RTC_BATT-0.2V.
    Is this still enough for the MSP MCLK speed? When suppl voltag eis too low, it doesn't mean immediate crash. There is a large zone where it might work for a long time and then suddenly fail.

**Attention** This is a public forum