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.

LM4F EEPROM write time

Hi!

How long is the average write time to the internal EEPROM of the LM4F Controller?

In the datasheet on page 1430 Table 25-23 is the time for programming 32 Bit with space available given with 110 to 600µs with no regard to the endurance.

If I use a fixed address and 32Bit of Data with the function EEPROMProgramNonBlocking() will the eeprom only rewrite those 32 Bits on that address, or could it be, that it uses the copy buffer and page erase and therefore could have a timing of up to 1800ms?

 

  • The EEPROM device is implemented using an underlying flash memory architecture so writing the same EEPROM address will actually cycle through a collection of flash words in a page. Once the page holding that word is full, the EEPROM will perform a copy-buffer-erase/copy-to-buffer/main-page-erase/copy-from-buffer cycle and this can take up to the time specified in the datasheet to complete.

    If you are using EEPROMProgramNonBlocking(), this will occur in the background but, obviously, you will see a very much longer than usual delay between calling this function and getting the interrupt that tells you the programming is completed. If you want to minimize the number of copy buffer operations, writing the same address is probably not the best idea since you are guaranteeing a copy buffer delay on every 7 writes. If your application allows it, cycling through the 2KB address space of the EEPROM would likely be better (although I realize that this complicates matters since you need to track the current version of the structure in EEPROM somehow to determine where to read/write next).

  • Thanks for you fast reply.

    Does that mean a whole flash page is only used for 1 EEPROM Word?

    So if I do a consecutive write of for example 10 values to to 10 addresses then the actual time for writing will be max 600µs x 10 x Software Overhead Time  as long as these addresses have not been written to more than 6 times?

  • Each underlying 1KB flash page is responsible for storing two 16 word EEPROM blocks and their control data. A copy buffer operation will take place when any single word in this flash page (containing 32 consecutive EEPROM words) is written for the 7th time. Given this, your statement is correct - you can write 32 consecutive words 6 times each but on the next write to any word in that 32 word range, you will see a copy buffer operation and the longer observed programming time.