Flash endurance

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
User7688
Level 2
Level 2
CPU: XMC4500 STEP AC

It simply could give the detail of the endurance of each sector?

S0 . ENDURANCE?
S1 . ENDURANCE?
S2 . ENDURANCE?
S3 . ENDURANCE?
S4 . ENDURANCE?
S5 . ENDURANCE?
S6 . ENDURANCE?
S7 . ENDURANCE?
S8 . ENDURANCE?
S9 . ENDURANCE?
S10 . ENDURANCE?
S11 . ENDURANCE?

UCB0 . ENDURANCE?
UCB1 . ENDURANCE?
UCB2 . ENDURANCE?
0 Likes
8 Replies
Travis
Employee
Employee
First solution authored Welcome! 500 replies posted
Hi,

These values are documented in the XMC4500 datasheet in chapter "3.2.9 Flash Memory Parameters".

Best Regards
Travis
0 Likes
User7688
Level 2
Level 2
Hi,
Chapter "3.2.9 Flash Memory Parameters". : not specified, the resistance of each sector

Physical: Sector 1000 erase/program cycles (SECTOR S0-S7?)
Logical: Sector 100 erase/program cycles (SECTOR S8-S11?)
User Configuration: Block 4 erase/program (UCB)

the information is confusing , I just want to know , the endurance of each sector simply could answer my question:

S0-S11: ENDURANCE?
UCB: ENDURANCE?

thank you
0 Likes
Not applicable
Hi Edgardocerone,

Please read XMC4500 reference manual. You can read on the page 390 about Flash structure terms.

As you can see in manual logical sector is a group of word-lines(2 page) of one physical sector.

So I think Logical sector is S0-S7 because Physical sector have range from 64Kbytes to 256Kbytes.

Table 8-2 show you what i said. S0-S3 is PS0 and S4-S7 is PS4. S8-S11 is physical sector. Why?

From manual: "Te plain term "sector" mean "logical sector" when a physical sector is divided in such, else it means the complete physical sector"

best regards,
blackom
0 Likes
User7688
Level 2
Level 2
sorry , but I still do not understand you

For Example:
My code :

1. Erase all sectors (S0-S11)

Flash002_EraseSector(FLASH002_SECTOR0_BASE);
Flash002_EraseSector(FLASH002_SECTOR1_BASE);
Flash002_EraseSector(FLASH002_SECTOR2_BASE);
Flash002_EraseSector(FLASH002_SECTOR3_BASE);
Flash002_EraseSector(FLASH002_SECTOR4_BASE);
Flash002_EraseSector(FLASH002_SECTOR5_BASE);
Flash002_EraseSector(FLASH002_SECTOR6_BASE);
Flash002_EraseSector(FLASH002_SECTOR7_BASE);
Flash002_EraseSector(FLASH002_SECTOR8_BASE);
Flash002_EraseSector(FLASH002_SECTOR9_BASE);
Flash002_EraseSector(FLASH002_SECTOR10_BASE);
Flash002_EraseSector(FLASH002_SECTOR11_BASE);

2. Program sectors (S0-S11)

FLASHWRITE(FLASH002_SECTOR0_BASE; BUFFER; 1024*1024);

This code works perfectly.

How often can I run this code , BEFORE THE FLASH DIE? (100 TIMES OR 1000 TIMES)?
0 Likes
Not applicable
Hi,

You can store date up to 100 times in sector S0 to S7 but memory wil be still alive.
When your microcontroller will work by 20 years then you can't write data more then 100 times.

Actually I'm write data more then 100 times in my microcontroller and still works:).

best regards,
blackom
0 Likes
User10215
Level 4
Level 4
First like received
Hi,

I also don't really get it, especially sectors S8 to S11. Does it mean that if I use the "Erase Sector"-Command on these sectors I only get 100 cycles, and when I use the "Erase Physical Sector"-Command I get 1000 cycles?
Also, 100 cycles is pretty low. So what I got from this thread is, that 100 cycles of erasing a logical sector doesn't break the sector but lowers its retention which means it can't hold its data for 20 years. How many cycles can I perform on a logical sector until it is broken?

Regards,
Niclas
0 Likes
User10215
Level 4
Level 4
First like received
By the way...reading the reference Manual sectors S8 to S11 doesn't seem to be physical sectors but only Logical ones. When I have a look into the xmc4_flash.h of the XMClib v2.0.0 there are the defines "XMC_FLASH_PHY_SECTOR_8" to "XMC_FLASH_PHY_SECTOR_11". The start address of S8 seems to be wrong ((uint32_t *)(XMC_FLASH_UNCACHED_BASE + 0x10000UL) instead of (uint32_t *)(XMC_FLASH_UNCACHED_BASE + 0x20000UL)).
0 Likes
chismo
Employee
Employee
First like received
Hello Niclas,

In my opinion, there isn't a differentiation between physical and logical sector for S8 to S11. This differentiation applies more for PS0 and PS4, each of which are partitioned into 4 logical sectors (S0 to S3 or S4 to S7).

The reason for the relatively lower erase cycling limit of 100 for logical sectors is that any erase of one logical sector has an effect on the neighbouring logical sectors.
Therefore, I would expect the endurance for S8 to S11 to be always 1000 cycles regardless of erase sector or erase physical sector commands.

From my understanding of Flash memories in general, the relationship between retention and endurance is inverse, higher the retention the lower the endurance and vice versa.
Therefore it is not a requirement to have retention of 20 years, it would be possible to go above 1000 cycles. Unfortunately, there are no parameters specified at the moment, for example the endurance for data retention of <20 years.

Regards,
Min Wei
0 Likes