Hello everybody
In a project I have to write and read from the EEEprom quite often (every ten minutes).
The project uses the FlexNvm of a Kinetis MK10DX32 , partitioned in order to have a ratio of 1/32 among the EEEFlexram and the backup Flash.
The data array that is saved is 158 bytes long, so the expected life of the EEEprom , using the FlexMemory Endurance Calculator is 4,8 years.
I realized that the board will work out of specs in the second half of the required ten years of life, so I have a big question about the FlexNvm strategy .
what happens when the flash area reserved for backup is considered exhausted ?
Does the FlexNvm state machine continue to write rotating on the physical locations that do not show write errors or stops the rotation and continues to write on the last location?
...The latter option would generate soon a lot of errors.
More generally: what can be expected after the calculated endurance? Can we assume that for the vast majority of the cases no error will shown , let's say until the typical values of endurance ere reached?
Thank to anyone that helps me to have an idea of what to expect
Mauro
Solved! Go to Solution.
Hi MAURO ANSALONI,
When the flash is over its endurance, then the flash erase and write operation will not be successful.
Eg, you should use CCIF clearing to launch the erase flash operation, then wait the CCIF=1,means the FTFE command or EEPROM file system operation has completed.
If the flash endurance is over, then the CCIF may still in progress, and never get 1.
The concrete phenomena is the flash can't be erased and programmed.
About your picture from the flexmemory endurance calculator, it is very easy to understand.
it means, the first 4.8 years, the flash will work in spec, all the data follow the datasheet's test data, but the last 5.2 years, it will out of spec, eg.the flash operation time is longer than the datasheet defined time, but the flash operation still can be successfully, just the spec data may be changed.
Wish it helps you!
If you still have question, please contact me!
Have a great day,
Jingjing
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Hi MAURO ANSALONI,
When the flash is over its endurance, then the flash erase and write operation will not be successful.
Eg, you should use CCIF clearing to launch the erase flash operation, then wait the CCIF=1,means the FTFE command or EEPROM file system operation has completed.
If the flash endurance is over, then the CCIF may still in progress, and never get 1.
The concrete phenomena is the flash can't be erased and programmed.
About your picture from the flexmemory endurance calculator, it is very easy to understand.
it means, the first 4.8 years, the flash will work in spec, all the data follow the datasheet's test data, but the last 5.2 years, it will out of spec, eg.the flash operation time is longer than the datasheet defined time, but the flash operation still can be successfully, just the spec data may be changed.
Wish it helps you!
If you still have question, please contact me!
Have a great day,
Jingjing
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Hi Jingjing
Thanks for your answer.
So, if I understood well, we can presume that the writing will continue for many more years with no errors (but out of the spec) , after the ensured 4,8 years of my example. (And i'm happy to hear that)
Another question arise from you answer:
You suggest to use the CCIF bit for the erase operation and this causes some doubt to me.
In my application the data are written and then read back without any explicit erase, as this is demanded to the FlexNVM that takes care of it
In all the code examples i have been able to look at, e.g the one in the MQX 4.0, it is the EEERDY bit of the (FTFL_FSTAT) register that is tested to wait for the write operation to be completed.
You can see in the following line of code what I do after each write to one of the memory location of the FlexRam assigned to the FlexNVM
while(!(FTFL_FCNFG & FTFL_FCNFG_EEERDY_MASK)) ; // Wait for command completion
The CCIF bit is not used for write/read operations, is this wrong?
Thanks Mauro
Hi Mauro,
CCIF is for the flash operation and the eeprom parition, actually the thought is the same as the EEPROM write operation for the endurance.
When the flash is out of endurance, you can't write the eeprom successfully, EEERDY will not be set.
You should use the EEERDY to check whether the eeprom write is complete.
Wish it helps you!
Best regards,
Jingjing
Hi Jingjing
Thanks again for your answer.
I think it is useful for clarifying the FlexNVM practical usage
Best Regards Mauro