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.
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