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.

MSP430FR5969-SP: Can't map 16-MHz HFXT to MCLK with division factor of 1

Part Number: MSP430FR5969-SP
Other Parts Discussed in Thread: MSP430FR5969

I am using the MSP430 DriverLib for MSP430FR5xx_6xx Devices with my Launchpad/MSP430FR5969 board that has a 16.0000-MHz oscillator connected to HFTX.
I initialize my clock sources using this line:

CS_setExternalClockSource(32768, 16000000);

When I divide HFXT by 16 or by 2 using either of these lines, CS_turnOnHFXTWithTimeout() returns "success" and my program operates with the expected timing:
CS_initClockSignal(CS_MCLK, CS_HFXTCLK_SELECT, CS_CLOCK_DIVIDER_16);
CS_initClockSignal(CS_MCLK, CS_HFXTCLK_SELECT, CS_CLOCK_DIVIDER_2);

if(CS_turnOnHFXTWithTimeout(CS_HFXT_DRIVE_8MHZ_16MHZ, 100000) EQ STATUS_FAIL)
    printf("CS_turnOnHFXTWithTimeout failed\r\n");   // Point A
else
    printf("CS_turnOnHFXTWithTimeout succeeded\r\n");

However, when I divide HFXT by 1 using the line below, the board locks up. The printf at Point A above is not executed.
CS_initClockSignal(CS_MCLK, CS_HFXTCLK_SELECT, CS_CLOCK_DIVIDER_1);

I need MCLK to be 16 MHz. Are you able to tell me why I am having trouble dividing HFXT by 1 (one)?

Thank you for your help!

  • Hello,

    Since MCLK is great than 8 MHz, you'll need to add wait states for FRAM access. Refer to the Recommended Operating Conditions table in the datasheet.

    //Set wait state to 1
    FRAMCtl_configureWaitStateControl(FRAMCTL_ACCESS_TIME_CYCLES_1);

    (edited)

**Attention** This is a public forum