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.

MSP432E401Y: Internal EEPROM takes more time to finish write operation

Part Number: MSP432E401Y

Tool/software:

We use TI-MSP432E401Y. We noticed, when we write to chip’s Internal EEPROM , some time its taking close to ~5-7 seconds to finish writing.  ( This can be reproduced by writing into EEPROM every 200milli seconds)

We use following TI-RTOS call to write into EEPROM,

  • EEPROMProgram()

Chip : TI-MSP432E401Y

TI-RTOS : 6.81.01

Development studio: CCS-12.6.0

Is there any know issues in this area?

  • Hi,

      I have a few questions.

      First of all, please go over the EEprom characteristics on the amount of time it takes to program a word and erase a block. The programming time will depend if the copy buffer is required. It can take up to 1.8 seconds for the worst case. See below. For the erase timing, it depends how many times/cycles the EEprom has been subject to since fresh. 

      How long have you been testing this particular chip before you see the 5-7 seconds of programming time? In another word, is this something you see when you start with a virgin chip or the problem is gradually starting to show up after extensive EEprom programming on the chip? You said you are trying to repeatedly program EEprom every 200ms. I don't know how long you have been playing with the device. Let's say you have subjected the device to programming EEprom every 200ms for a week. This can translate to three millions programming cycles. You may have exhausted the number of write/erase cycles. 

      Does it always take 5-7 seconds or sometimes it takes less time to program?

      Do you have another unit to test with? Are you seeing the problem on only one chip or multiple chips? I want to know if this is a one-off issue.

      If you try out the below bare-metal code, can you repeat the same problem? 

    uint32_t ui32EEPROMInit;
    uint32_t pui32Data[2];
    uint32_t pui32Read[2];
    //
    // Enable the EEPROM module.
    //
    SysCtlPeripheralEnable(SYSCTL_PERIPH_EEPROM0);
    //
    // Wait for the EEPROM module to be ready.
    //
    while(!SysCtlPeripheralReady(SYSCTL_PERIPH_EEPROM0))
    {
    }
    //
    // Wait for the EEPROM Initialization to complete
    //
    ui32EEPROMInit = EEPROMInit();
    //
    // Check if the EEPROM Initialization returned an error
    // and inform the application
    //
    if(ui32EEPROMInit != EEPROM_INIT_OK)
    {
    while(1)
    {
    }
    }
    //
    // Program some data into the EEPROM at address 0x400.
    //
    pui32Data[0] = 0x12345678;
    pui32Data[1] = 0x56789abc;
    EEPROMProgram(pui32Data, 0x400, sizeof(pui32Data));
    //
    // Read it back.
    //
    EEPROMRead(pui32Read, 0x400, sizeof(pui32Read));

      

  • Hi Charles,  thanks for the response and excuse the delay.

    We hardly write less than 10 entries in a day to EEPROM. That 200milli second write is for testing purpose only.

    We have other units. In those units also when we write periodically, one time(out of 8) it is taking close to 5 seconds to finish  write. Remaining time its finishing write operation fast

    We  tried your code. In fact our code also using direct EEPROM calls only. Issue is coming.

    Note that, the delay is observed only during EEPROM write not during EEPROM read.

    thanks.

  • when we write periodically, one time(out of 8) it is taking close to 5 seconds to finish 

    5s is indeed a lot. However, I don't have a theory to explain it. Which silicon version do you have? You can show me the device marking. 

    Has your EEprom operation ever been interrupted in the middle by a loss of power or any type of reset event? There are several errata associated with the EErpom on this device. I don't know, if these errata conditions have been subjected to the device at one point of time can result in the later observation you are seeing, while still working but taking a long time to complete.  

  • hi Charles,

    Marking on the chip : 32APQNWG4 MSP432E401YTREVB

    We have Eval board in that we tried EEPROM write continuously. 

    At first it was fast. After 3-4 days of continuous write at 200ms, we are seeing same behaviour as in Office board.

    Eval board : www.ti.com/.../MSP-EXP432E401Y

  • Hi,

    At first it was fast. After 3-4 days of continuous write at 200ms, we are seeing same behaviour as in Office board.

    As I mentioned in my prior replies, the device can age after repeatedly going through write-erase cycles. If you write every 200ms then in four days, you have subjected the EEprom to an estimated 1.728 million write cycles. Although the datasheet states minimum 500k of write cycles, the EEprom can greatly age due to repeatedly write operations.