SPMA078 March   2021 TM4C1290NCPDT , TM4C1290NCPDT , TM4C1290NCZAD , TM4C1290NCZAD , TM4C1292NCPDT , TM4C1292NCPDT , TM4C1292NCZAD , TM4C1292NCZAD , TM4C1294KCPDT , TM4C1294KCPDT , TM4C1294NCPDT , TM4C1294NCPDT , TM4C1294NCZAD , TM4C1294NCZAD , TM4C1297NCZAD , TM4C1297NCZAD , TM4C1299KCZAD , TM4C1299KCZAD , TM4C1299NCZAD , TM4C1299NCZAD , TM4C129CNCPDT , TM4C129CNCPDT , TM4C129CNCZAD , TM4C129CNCZAD , TM4C129DNCPDT , TM4C129DNCPDT , TM4C129DNCZAD , TM4C129DNCZAD , TM4C129EKCPDT , TM4C129EKCPDT , TM4C129ENCPDT , TM4C129ENCPDT , TM4C129ENCZAD , TM4C129ENCZAD , TM4C129LNCZAD , TM4C129LNCZAD , TM4C129XKCZAD , TM4C129XKCZAD , TM4C129XNCZAD , TM4C129XNCZAD

 

  1.   Trademarks
  2. 1Introduction
    1. 1.1 Definitions
  3. 2Theory of Operation
    1. 2.1 Normal Use
    2. 2.2 Normal Endurance
    3. 2.3 High Endurance Use
    4. 2.4 Data Integrity
    5. 2.5 CRC Module
  4. 3Software Description
    1. 3.1 Environment
    2. 3.2 Files
    3. 3.3 Functions
      1. 3.3.1  FeeInit
      2. 3.3.2  FeeCheckDatasetValid
      3. 3.3.3  FeeFormat
      4. 3.3.4  FeeRead
      5. 3.3.5  FeeWrite
      6. 3.3.6  FeeGetStatus
      7. 3.3.7  FeeGetJobResults
      8. 3.3.8  FeeGetDatasetCounter
      9. 3.3.9  FeeGetVersionInformation
      10. 3.3.10 FeeMainFunction
  5. 4Execution Time
    1. 4.1 Read Time
    2. 4.2 Write Time
      1. 4.2.1 Write Time When no Erase is Required
      2. 4.2.2 Write Time when Sector Copy is Required
      3. 4.2.3 Write Time when Sector Copy is Required and Copy Sector is Full
      4. 4.2.4 Write Time with Interrupts
  6. 5Examples
    1. 5.1 Polling Fee Example
    2. 5.2 Interrupt Fee Example
    3. 5.3 Import, Program and Run Examples
      1. 5.3.1 To Import the Project into CCS, First Select "File" → "Import"
      2. 5.3.2 Select "CCS Projects" to Import the Example, Then Click "Next"
      3. 5.3.3 Provide the Path to Either the Unzipped Project by Selecting the First Radio Button or Import the Sip File Directly by Selecting the Second Radio Button. Click the "Copy Projects Into Workspace".
      4. 5.3.4 After the Project Path is Provided, it Will Show up as a Discovered Project. Click the "Finish" Button to Complete the Import.
      5. 5.3.5 Program the Example into the Flash Memory and Start Executing the Example
      6. 5.3.6 Configure the Serial Terminal Window
      7. 5.3.7 Run the Example
  7. 6Summary

Normal Endurance

Since each flash cell is capable of over 100,000 write-erase cycles, and there are seven image copies available for each word in a block, the expectation is that the word is capable of over 700,000 write-erase cycles. That is true, but other words in the sector have an impact on the total number of write-erase cycles that any flash cell sees. A write-erase cycle will occur on a flash cell each time it is changed from a zero to a one. That is, each time electrons are pulled off of the floating gate through the erase oxide. Take an extreme example of two words programmed into a data block. The first word is updated 700,000 times, the second word is not updated at all. Assume the least significant bit of both words is always 0. Because of the 700,000 writes, the sector containing that block will be erased 100,000 times. As expected, the word that was changed 700,000 times will have seen 100,000 write-erase cycles on the least significant bit in all seven images. Those bits will be nearing end of life. Perhaps unexpectedly, the least significant bit of the second word, which was never updated, will also have seen 100,000 write-erase cycle in just the first image. That bit too will be nearing end of life.

In typical applications, different words are updated at varying frequencies. Since the word most often updated, may not be the one updated the most often within a stretch of seven updates, a conservative limit of 500,000 cycles is specified for the most often updated word in the sector.

When large amounts of data are written in a single sweep, the full 600,000 write-erase cycle advantage of the wear leveling can be achieved. Adding software wear leveling, even greater number of write-erase cycles are possible.

Note: When doing sweep programming you get an effective 600,000 write-erase cycles instead of 700,000 write erase cycles. As soon as you write the first word of the sweep the eighth time, the sector is erased and the eighth value of the first word is programmed into the freshly erased location, along with the seventh version of all the other words in the sweep. Then when you update the second word of the sweep, it occupies the second image of that location. You only have five image locations left for the second location. When you write the first word of the sweep the fourteenth time, it resides in the seventh image. But when you write the fourteenth version of the second word, it initiates a sector copy. If you always program the words of the sweep in the same order, successive words will initiate the sector copy. You will have an effective six versions of the sweep data stored between each sector copy operation.