2023-02-06 02:31 PM
From RM0456-stm32u575585....
Flash section 7.3.8:
"... up to
256 Kbytes (32 pages) per bank feature an increased endurance of 100 kcycles, that can be used for data storage that usually needs more intensive cycling capability than code
storage. Any Flash page can be chosen to be cycled more than 10 000 times (up to 100 000 times). It is the application responsibility to limit the size of the Flash area cycled more than 10 000 times to 256 Kbytes per bank."
Perfect, 100k cycles is good for our use-case...
But I've been unable to find any registers, or any other documentation/notes/etc, that explain how to enable this, or how to select it, or really anything explaining it at all.
So.. How does this work?
And how do I enable this?
Solved! Go to Solution.
2023-02-10 12:22 AM
There are 128 pages in a bank, so 100k*32/128=25k writes, not 50k.
Yes I know, strictly it's (100k*32+10k*96)/128=32k5, but that's not the point anyway. I guess those numbers are given based on some characterization (which is usually lengthy, read costly), and the effect may not be linear, so they ("they" may be not just ST, as they may have purchased the FLASH IP) may not have data for "uniform wear".
The usual use case is "large FLASH for seldom changing program, small portion for often changing data ("EEPROM"), and that's what they cater for here.
The description may have been formulated more clearly perhaps, but clarification, that's what AN are for.
Ah, wait, ST refuses to make the dozens of ANs per peripheral...
JW
2023-02-10 05:58 AM
> As soon as a page is above 10 kcycles, it is considered as high cycling page
Hi @St�phaneM but how the "high cycling" is actually achieved? Does the MCU have 32 reserved flash pages or ECC storage and corrects errors transparently?
2023-02-10 07:40 AM
2023-02-10 08:35 AM
Still, I'd like to understand how these numbers are determined.
Presumably the remaining ~100 pages should still be able to get to 10K cycles?
Is it 4M cycles on the charge pump?
Is the wear/strain on the charge pump linear over the page lives?
What other factors play into this life estimate?
960000 + 3200000 = 4,160,000
2023-02-10 08:41 AM
@Pavel A.
I think the trick here is to limit your EEPROM Emulation, and journalling, over a specific 32 page (256KB) block of flash within the bank, and perhaps carrying in your management structure(s) a count of how many times you've looped through the available pages/blocks