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.

MSP430FR5738: Can not enter LPM3.5 sometimes

Part Number: MSP430FR5738

Dear team,

The following is the value of the register printed out when it cannot sleep. It is currently impossible to determine what went wrong

The code is following

if (SYSRSTIV == SYSRSTIV_LPM5WU) {
        //reset from LPM35
        clockInit();
        rtcReStart();
        __enable_interrupt();
        taskRun();
        enterLPM35();
    } else {
        //POR init
        clockInit();
        rtcInit();
        enterLPM35();
    }
}

static void enterLPM35(void)
{
    PMMCTL0_H = PMMPW_H;
    PMMCTL0_L &= ~SVSLE;
    PMMCTL0_L |= PMMREGOFF;
    PMMCTL0_H = 0;
    __enable_interrupt();
    __bis_SR_register(LPM3_bits + GIE);      // LPM3 + Enable interrupt
}

If it cannot enter sleep, the program will run into an infinite loop. At present, it sometimes enters an infinite loop. This position should not appear. Under normal circumstances, the CPU Core power supply will be cut off after __bis_SR_register(LPM3_bits + GIE) and will not continue to run.

From the errata sheet, the debug mode will lead to sleep failure. I have also tried to use a 4.7K pull-down resistor on the TEST pin to prevent TEST from being pulled high. The four IOs PJ0-PJ3 are all set to output, but they still cannot enter sleep.

Please help to check this issue.

BR,

Susan

**Attention** This is a public forum