write/erase time for a sector in 89V51RD2

hi,

i would like to know the write and erase times for a sector for a 89V51RD2 microcontroller. if you have this info please share it.

Also i see from the datasheet that the write/erase cycles are 10000. is this for one sector or for the entire block? the origin of this question is can the lifetime of the device be calculated as

lifetime of flash = 10000 * number of sectors ?

i will use one sector at a time and then when this sector is full erase and begin writing again to this sector. when the number of write/erase cycles are over then i move over to the next sector. will this work?

any inputs will be helpful. thanks in advance.

Parents
  • The number of erase cycles is per block.

    But you do not normally design code to wear out a single flash sector first. You instead rotate through the available sectors to get an even wear.

    First off - there isn't a hard limit to number of erase cycles. The sectors normally can handle way more cycles but it depends a lot on ambient temperature, exact supply voltages etc. One interesting thing to consider - if you do have a broken flash sector, how will you know it is broken? How will you know which flash sector us the current to read out data from? And which is the next one to write to? You need some redundant storage of your write counters or your "current" pointers.

    If you rotate through all available sectors, then you can store a constantly increasing sequence number + some crc or other checksum in every sector. That means that with one sector broken, you can still figure out which sector is the most recent with data and which sector would be the next one to use.

Reply
  • The number of erase cycles is per block.

    But you do not normally design code to wear out a single flash sector first. You instead rotate through the available sectors to get an even wear.

    First off - there isn't a hard limit to number of erase cycles. The sectors normally can handle way more cycles but it depends a lot on ambient temperature, exact supply voltages etc. One interesting thing to consider - if you do have a broken flash sector, how will you know it is broken? How will you know which flash sector us the current to read out data from? And which is the next one to write to? You need some redundant storage of your write counters or your "current" pointers.

    If you rotate through all available sectors, then you can store a constantly increasing sequence number + some crc or other checksum in every sector. That means that with one sector broken, you can still figure out which sector is the most recent with data and which sector would be the next one to use.

Children
More questions in this forum