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.

MSPM0L1306: MSPM0L1306

Part Number: MSPM0L1306

Hi,

Am using MSPM0L1306 Controller for one of our project.

Finding 2 Problems.

1st in Watchdog Reset.

I have enabled Watchdog with watchdog mode for 4sec.

The system is undergone reset after 4 sec, but it was not turning ON after reset. Need to press NRST to regain.

2nd In UART 

The while loop is continuously Running without connecting UART port to PC(Docklight). once UART is connected to docklight system is halting and while loop is not running.

Looking forward for solution thanks in advance.

  • Hi,

    1st in Watchdog Reset.

    Did you enter low power mode and disable Watchdog in low power mode?

    Please paste your code using Insert - Code fuction in your edit tools.

    2nd In UART

    Where the device halt? Did device enter the [Default_Handler] or somewhere else?

    Thank you.

  • Hi Helic,

    Thanks for your response.

    Watchdog is working without connecting USB port(Docklight). I think this issue is also because of UART (USB).

    Controller is sometime halting in Default handler. and sometime it was showing no source available for DL_UART_isRxFIFOEmpty.

    Please refer screengrab.

    FYI, am using MSPM0L1306 Launchpad for testing is it same behavior will be there for MSPM0L1306 

    Thank you

  • Hi,

    I mean, in your syscfg-WWDT-configuration, do you [enable WWDT Running During Sleep]?

    And do your main loop enter the low power mode waiting for watchdog reset?

    And in main loop waiting for the UART connection in low power mode?

    In the screengrab, It seems your code is stuck in DL_UART_isRxFIFOEmpty function, in dl_uart.c & .h.

    It's normal that no source available in this function.

    There are many can cause this, such as wake up by UART from low power mode.

    uint8_t DL_UART_receiveDataBlocking(UART_Regs *uart)
    {
        while (DL_UART_isRXFIFOEmpty(uart)) {
        };
    
        return DL_UART_receiveData(uart);
    }
    
    __STATIC_INLINE bool DL_UART_isRXFIFOEmpty(UART_Regs *uart)
    {
        return ((uart->STAT & UART_STAT_RXFE_MASK) == UART_STAT_RXFE_SET);
    }
    

    Thanks.