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.

CCS/MSP430FR5994: Memory write (FRAM) issue

Part Number: MSP430FR5994
Other Parts Discussed in Thread: MSP-EXP430FR5994

Tool/software: Code Composer Studio

I'm in the process of migrating our firmware code to a MSP430FR5994 micro controller, everything was going rather fine until I activated the main clock with an external 16MHz quartz.

After searching for a day or two, the issue boils down to this problem : when I activate an SMCLK divider, writing to FRAM doesn't happen any more.

I've written a small piece of code (attached below) to illustrate the problem:

  1. initialize whatever is absolutely necessary, set the master clock at 16Mhz, without an SMCLK divider,
  2. write to FRAM,
  3. clear the FRAM.

The result can easily be checked by displaying the (info) memory area at 0x1800, and so far this works as a charm. However, if I step further:

  1. set a SMCLK divider,
  2. write to FRAM,
  3. clear the FRAM.

Nothing is written to FRAM.

I have tried this on two MSP-EXP430FR5994 boards with consistent results.

If I replace the DIVS__2 with DIVM__2, everything is OK.

I have found no indication on such a (known) bug...

So, what's happening here ?

#include <msp430.h> 

#include <stdint.h>

/**
 * main.c
 */

void test()
{
    uint8_t i;

    for (i=0; i < 255; i++)
        *((uint8_t *)0x1800 + i) = i;
}

void clear()
{
    uint8_t j;

   for (j=0; j < 255; j++)
       *((uint8_t *)0x1800 + j) = 0xff;
}

int main(void)
{
    CSCTL0 = CSKEY;
    CSCTL1 = DCORSEL | DCOFSEL_4;

    test();
    clear();

    CSCTL3 = DIVM__2;

    test();
    clear();

    return 0;
}

**Attention** This is a public forum