User Manual
312
Rev. 1.1
2019-03-18
TLE984xQX
Microcontroller with LIN and Power Switches for Automotive Applications
NVM Module (Flash Memory)
If the disturbs for a page exceed a specific value (this happens only when a different page in the same sector
is programmed), the page has to be reprogrammed (refreshed). A dedicate option of the programming
routines provided with the BootROM make sure that the pages are refreshed in time.
As mentioned, the refreshing of a page - when actually triggered - will double the overall programming time.
12.2.12 Hot Spot Distribution
In the used UCP EEPROM technology always a whole page has to be programmed when any part of it (e.g. only
a byte or doubleword) is modified. This means that cycling multiple parts of one page separately physically
means cycling of the whole page every time one part is programmed.
In the following one such part (e.g. byte or doubleword) will be called a “hot spot”.
For H hot spots in a page where each hot spot is separately cycled c times, this results in a cycle stress of the
page of c*H.
As the EEPROM programming is always performed by copying the modified currently mapped page to the
spare page, the cycle stress is shared among two pages. Furthermore, as after some time the disturb handling
described in
kicks in, the cycling stress eventually is shared among all 33 pages of the sector.
Therefore, the average cycle stress for a physical page in a sector is c*H/33, when H hot spots in a logical page
are separately cycled c times.
On the other hand, this means that with a cycle endurance of E for a page, the number of cycles which can be
performed before a page can become damaged by cycle stress can be calculated as c = 33*E/H per hot spot in
the sector.
Depending on the number of hot spots in a sector the maximum allowed number of cycles c per hot spot can
become unacceptably low.
If the hot spots are concentrated in one sector and other sectors have only a low number of hot spots, a hot
spot distribution over several sectors is advisable. This hot spot distribution is not supported in HW but has to
be done during the implementation of the software.
12.2.13 Properties of Error Correcting Code (ECC)
The error correcting code (ECC) for the data blocks implements a one-bit error correction and a double-bit
error detection for every data block of 64 bits. The correct ECC bits for every block are generated automatically
when the assembly buffer is written. During every read the ECC bits are read together with the data bits. The
validity of the code word is checked by hardware. Every single bit error is corrected automatically.
The described ECC mechanism results in the limitation that a block of 64 bits is the smallest data unit that can
be read internally, since always a complete block has to be read to check for possible ECC errors and writing
a byte automatically triggers a read of the complete block.
A data block with all bits fully erased is ECC-correct.
When a page is copied to the assembly buffer, the ECC correction of data blocks with a one-bit error is done
automatically, whereas data with an uncorrectable error is passed on unchanged. No ECC interrupt is
generated for ECC errors that are detected during the copying of a page to the assembly buffer.
12.2.14 Resume from disturbed Program/Erase operation
If a NVM operation like Program or Erase was interrupted by any means, then a data integrity check of the data
flash is required. The data integrity check can be done by performing a cold reset, power-up reset, pin reset,
WDT1 reset or exit from SleepMode. All these resets are running through the MapRAM Initialization of the
BootROM, which executes the Service Algorithm in case a data integrity issue inside the data flash was
detected. The Service Algorithm tries to resolve a data integrity issue by erasing erroneous data flash pages in
order to maintain an proper data flash mapping. The return value of the Service Algorithm is provided inside