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.

MSP430FR2111: How to program serial number to information memory?

Part Number: MSP430FR2111

Hi,

How to program serial  number to information memory?

Is there any document about programmer tool support this? Thanks.

  • Hi Daniel,

    The FRAM information memory is just like the main memory. You can program like programming the main FRAM.

    Best regards,
    Jovi He
  • Daniel,

    Please see the code example below for referece.

    1. disable the FRAM protection before writing and enable the portection after writing.

    2. change the address to information memory address

    Best regards,

    Jovi He

    framctl_ex1_write.c
    /* --COPYRIGHT--,BSD
     * Copyright (c) 2017, Texas Instruments Incorporated
     * All rights reserved.
     *
     * Redistribution and use in source and binary forms, with or without
     * modification, are permitted provided that the following conditions
     * are met:
     *
     * *  Redistributions of source code must retain the above copyright
     *    notice, this list of conditions and the following disclaimer.
     *
     * *  Redistributions in binary form must reproduce the above copyright
     *    notice, this list of conditions and the following disclaimer in the
     *    documentation and/or other materials provided with the distribution.
     *
     * *  Neither the name of Texas Instruments Incorporated nor the names of
     *    its contributors may be used to endorse or promote products derived
     *    from this software without specific prior written permission.
     *
     * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
     * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
     * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
     * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
     * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
     * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
     * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
     * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
     * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
     * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
     * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     * --/COPYRIGHT--*/
    //******************************************************************************
    //!   Long word writes to FRAM
    //!
    //!   Description: Use long word write to write to 512 byte blocks of FRAM.
    //!   Toggle LEDs after every 100 writes.
    //!   NOTE: Running this example for extended periods will impact the FRAM
    //!   endurance.
    //!   ACLK = VLO, MCLK = SMCLK = ~1.048MHz
    //!
    //!           MSP430FR2xx_4xx Board
    //!              ---------------
    //!          /|\|               |
    //!           | |               |
    //!           --|RST            |
    //!             |               |
    //!             |               |
    //!             |               |-->LED1
    //!             |               |-->LED2
    //!
    //******************************************************************************
    #include "driverlib.h"
    #include "Board.h"
    
    #define FRAM_TEST_START 0xCABA
    
    void main(void) {
        uint8_t count = 0;
        uint32_t data = 0;
    
        // Stop WDT
        WDT_A_hold(WDT_A_BASE);
    
        //Set LED1 as an output pin.
        GPIO_setAsOutputPin(
                GPIO_PORT_LED1,
                GPIO_PIN_LED1);
    
        //Set LED2 as an output pin.
        GPIO_setAsOutputPin(
                GPIO_PORT_LED2,
                GPIO_PIN_LED2);
    
        /*
         * Disable the GPIO power-on default high-impedance mode to activate
         * previously configured port settings
         */
        PMM_unlockLPM5();
    
        // Initialize dummy data
        data = 0x11111111;
    
        while (1) {
            data += 0x00010001;
    
            FRAMCtl_fillMemory32(data, (uint32_t *) FRAM_TEST_START,
                    128);
            count++;
            if (count > 100) {
                //Toggle LED1 output pin.
                GPIO_toggleOutputOnPin(GPIO_PORT_LED1, GPIO_PIN_LED1);
                //Toggle LED2 output pin.
                GPIO_toggleOutputOnPin(GPIO_PORT_LED2, GPIO_PIN_LED2);
    
                //Reset counter
                count = 0;
                data = 0x11111111;
            }
        }
    }
    

  • Hi Jovi

    I have test it on FR2311 launchpad.

    It can write data to FRAM address 0xf500, but still failed write data to information memory address 0x1800.

    Could you kindly help to verify it too? Thanks.

  • Daniel,

    There is no information memory section for the FR2311 device, that's why it can't be programmed and you see #0x3FFF3FFF in the memory browser. You can try the other devices with the information memory (i.e FR4xxx). Please check the memory organization part to see if the information memory is existed in the device.

    Best regards,

    Jovi He

  • Hi Jovi

    Many thanks.

    1. Does FR2111 has information memory? It seems don't has information memory too.

    2. How to program serial number to FR2111 on production line?

  • Hi Daniel,

    1. as you see in the datasheet, no information memory for FR2111.

    Please see the FR4133 has information memory as below

    2. Regarding the program on production line, it's done via JTAG by sending the corresponding command and data.

    Best regards,

    Jovi He

  • Hi Jovi,

    We have tried on Elprotronic latest v3.4.3 Lite FET-Pro430, but failed.
    Is there any more material about program serial number by JTAG command? Thanks a lot.
  • Hi,

    We are working on program FR2111 code to running start from F200. In order to reserve F100-F1FF address as information memory.

    Is there any example or suggestion about this? Thanks.

  • Hi Daniel,

    You can split the FRAM memory and define the customized memory map in the linker file. Then specify the memory sections to allocate, you may search the related help from CCS as below. Hope it helps.

    Best regards,

    Jovi He

**Attention** This is a public forum