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
All trademarks are the property of their respective owners.
The FEE driver uses two physical sectors of the EEPROM flash, which is 16 blocks or 1024 bytes for each dataset. The TM4C129 devices support up to six datasets. The size of the dataset determines how many images of the data can be stored in the 1024 bytes. This will then determine the supported write-erase endurance specification. The use of two sectors will allow retaining a valid copy of the data in the case of power loss or reset while trying to program or erase. The relationship between dataset size and supported write-erase endurance is shown in Table 1-1.
Dataset Maximum Size (Words) | Dataset Minimum Size (Words) | Supported Write-Erase Cycles | Number of Images |
---|---|---|---|
124 | 61 | 1M | 2 |
60 | 39 | 2M | 4 |
38 | 29 | 3M | 6 |
28 | 22 | 4M | 8 |
21 | 18 | 5M | 10 |
17 | 15 | 6M | 12 |
14 | 13 | 7M | 14 |
12 | 11 | 8M | 16 |
10 | 9 | 9M | 18 |
8 | 8 | 10M | 20 |
7 | 7 | 11M | 22 |
6 | 6 | 12M | 24 |
5 | 5 | 13M | 26 |
4 | 4 | 16M | 32 |
3 | 3 | 18M | 36 |
2 | 2 | 21M | 42 |
1 | 1 | 25M | 50 |
A flash emulated EEPROM driver
An instance of a dataset stored in a pair of sectors. Only one image in the sector-pair is the most recent image and it holds the current data for that dataset.
The EEPROM of the TM4C129x device is composed of a bank of split gate flash. The flash cells have an intrinsic write-erase endurance of more than 100,000 cycles. The bank is implemented with 13 sectors. Twelve sectors are used for data and the thirteenth is used for the copy buffers. A sector is the smallest amount that can be erased at one time. Each of the twelve data sectors is broken into eight blocks. Each block holds 16 32-bit words (64 bytes). Within that block there are actually storage locations for seven images of the 16 words, with additional flash control bits to identify which of the seven images holds the valid data.
In normal operation, the EEPROM hardware state-machine keeps track of which of the seven images of a word are valid. When the program tries to update a word the eighth time, the word is initially written into the copy sector. Then the current value of each of the other 127 words ((16 words x 8 blocks) – 1) is also copied to the copy sector. The data sector is then erased, and the data in the copy sector is programmed into the first image of the data sector.
The copy sector, like the data sectors, has multiple images. There are 12 image locations in the copy sector. That means that before the thirteenth time a data sector must be erased, the copy sector must be erased to prepare more room. The hardware state-machine will initiate an erase of the copy sector the next time a data sector requires an erase. This results in a longer delay before the data can be stored in non-volatile memory.