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.

MSPM0G3507: switch between normal mode and standby --> CAN does not restart

Part Number: MSPM0G3507
Other Parts Discussed in Thread: SYSCONFIG

Hello,

I am using an application with a CAN output

I use runsleep0 power mode, then all is fine with debugger, and also fine if I use the part out of debugger

By fine I mean that CAN frames are sent, then it goes to sleep, then out of sleep, and CAN frames are sent

To reduce power I change to standby instead of sleep, with debugger all is fine, but out of the debugger, after the first time standby is entered, then no CAN frames are sent

                  DL_GPIO_clearPins(GPIO_PORT, GPIO_TCAN_SLEEP_PIN);//disable CAN transceiver
                  DL_MCAN_disableModuleClock(MCAN0_INST);

                  //DL_SYSCTL_setPowerPolicySTANDBY0(); //TBR 23/05/2023! due to bug in early samples, it doesn't work
                  DL_TimerA_startCounter(TIMER_0_INST); //start timer zero
                  DL_TimerA_stopCounter(TIMER_1_INST); //stop timer 1
                  NVIC_DisableIRQ(TIMER_1_INST_INT_IRQN);
                  NVIC_EnableIRQ(TIMER_0_INST_INT_IRQN); //clock from sleep mode
                  counter_100ms_u16 = 0; //reset main loop
                  counter_10ms_u16 = 0;
                  counter_100ms_fs_u16+=32; //in order to keep the 2 min counter alive, to be improved
                  //DL_SYSCTL_setPowerPolicySTOP0(); //for flash mode only - stop 0 still can works but not in stop 2
                  //DL_SYSCTL_setPowerPolicySTANDBY1();//for flash mode only- no can in standby 1, in standby 0 same

                  DL_SYSCTL_setPowerPolicyRUN0SLEEP0(); //for debug mode
                  __WFI(); //tbr 23/05/2023: according to help from TI, one WFE/WFI is sufficient to stay in sleep mode
                  //SYSCFG_DL_init();
                  DL_TimerA_stopCounter(TIMER_0_INST); //stop timer zero
                  DL_TimerA_startCounter(TIMER_1_INST); //start timer 1
                  NVIC_EnableIRQ(TIMER_1_INST_INT_IRQN);
                  NVIC_EnableIRQ(ADC12_0_INST_INT_IRQN); //enable ADC interrupt
                  DL_SYSCTL_setPowerPolicyRUN0SLEEP0();
                  __WFI(); //tbr 23/05/2023: according to help from TI, one WFE/WFI is sufficient to stay in sleep mode

Only difference I saw from early samples (as this code was created at that time) is that timer 1 is on TMA0 as there is no TIMG1 available from sysconfig now

Could it be the issue?

Thanks

BR

T.