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.

LP-MSPM0G3507: Already Enable HFXT, still stuck at SYSCFG_DL_SYSCTL_CLK_init

Part Number: LP-MSPM0G3507
Other Parts Discussed in Thread: SYSCONFIG

Tool/software:

Hi TI Teams:

         I want to know that we already enabled the HFXT, but  still appear the  DL_SYSCTL_disableHFXT(); as below:

SYSCONFIG_WEAK void SYSCFG_DL_SYSCTL_init(void)
{

    //Low Power Mode is configured to be SLEEP0
    DL_SYSCTL_setBORThreshold(DL_SYSCTL_BOR_THRESHOLD_LEVEL_0);

    DL_SYSCTL_setSYSOSCFreq(DL_SYSCTL_SYSOSC_FREQ_BASE);
    /* Set default configuration */
    DL_SYSCTL_disableHFXT();
    DL_SYSCTL_disableSYSPLL();
    DL_SYSCTL_setHFCLKSourceHFXTParams(DL_SYSCTL_HFXT_RANGE_32_48_MHZ,10, true);
    DL_SYSCTL_setLFCLKSourceLFXT((DL_SYSCTL_LFCLKConfig *) &gLFCLKConfig);

}
       and program will stuct at SYSCONFIG_WEAK void SYSCFG_DL_SYSCTL_CLK_init(void) {
while ((DL_SYSCTL_getClockStatus() & (DL_SYSCTL_CLK_STATUS_HFCLK_GOOD
| DL_SYSCTL_CLK_STATUS_LFXT_GOOD))
!= (DL_SYSCTL_CLK_STATUS_HFCLK_GOOD
| DL_SYSCTL_CLK_STATUS_LFXT_GOOD))
{
/* Ensure that clocks are in default POR configuration before initialization.
* Additionally once LFXT is enabled, the internal LFOSC is disabled, and cannot
* be re-enabled other than by executing a BOOTRST. */
;
}
}
  my HFXT setting  as below:
SDK mspm0_sdk_1_20_01_06 and EVM version is Rev. A
Thanks a lot
Tony
    
  • Hi Tony,

    I'd recommend you update your SDK version just to be sure everything is the latest. We've had a few releases since 1.20

    Are you always getting stuck in that loop or just sometimes? 

    We disable the HFXT before changing the settings to ensure we are in the default configuration. This is redundant with DL_SYSCTL_setHFCLKSourceHFXTParams since that disables the HFXT as well, but its good practice. 

    The only way to do this with LFXT is to do a full reset of the device. You might want to try a mass erase of the device before loading the code and see if you get caught in the loop again. If not, its likely just the reset level. 

    Best Regards,
    Brandon Fisher

  • Hi Brandon:

               I updated the SDK 2.1.0.03 and still always got stuck in that loop.

               I enable the LFXT and setting as below , and it's can pass that loop and execute the MCAN rx massege example work.

                                              

                So, I want to know why enable the HFXT and then can't pass that loop?

    Thanks a lot

    Tony

               

           

  • Hi Tony,

    Is this on a launchpad? If so your settings should work. You might try increasing the startup time as a test. 

    Can you verify that Y2, C12 and C10 are populated? 

    Best Regards,
    Brandon Fisher

  • Hi Brandon:

                Yes, Y2, C12 and C10 are populated on launchpad.

                Now, I try use the SYSPLL1 for CAN CLK. also stuck at this loop as below:

    SYSCONFIG_WEAK void SYSCFG_DL_SYSCTL_CLK_init(void) {
    while ((DL_SYSCTL_getClockStatus() & (DL_SYSCTL_CLK_STATUS_SYSPLL_GOOD
    | DL_SYSCTL_CLK_STATUS_LFOSC_GOOD))
    != (DL_SYSCTL_CLK_STATUS_SYSPLL_GOOD
    | DL_SYSCTL_CLK_STATUS_LFOSC_GOOD))
    {
    /* Ensure that clocks are in default POR configuration before initialization.
    * Additionally once LFXT is enabled, the internal LFOSC is disabled, and cannot
    * be re-enabled other than by executing a BOOTRST. */
    ;
    }
    }

                And I add a empty void SYSCFG_DL_SYSCTL_CLK_init(void) {}  to deal with stuck problem.

                Now, it's seen work now.

    Thanks a lot

    Tony

  • Hi Tony,

    What are your SYSPLL settings? It could be related to a marginal frequency in the PLL based on the datasheet limits.

    Best Regards,
    Brandon Fisher

  • Hi Brandon:

                     My SYSPLL setting as below:

                     

                      

    Thanks a lot

    Tony

**Attention** This is a public forum