This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Cumulative program time for flash (tCPT)



 

Hi,

 

In my device datasheet, section flash, there is a parameter called tCPT Cumulative program time (see Note 1) and it is written as 2.2 V/3.6 V 10 ms max.

And Note 1 says that: The cumulative program time must not be exceeded when writing to a 64-byte flash block. This parameter applies to all programming methods: individual word/byte write and block write modes.

 

My question, 

Is this parameter only valid for information blocks? Or for all flash blocks? I did not understand the restriction clearly. Let say fFTG = 300kHz. To program one flash segment which is 512 bytes, I need 256word*30 tFTG = ~26msec. Do they mean I cant program all this segment at a time because of tCPT restriction? (I'm talking about normal program memory, not information memory)

 

Thanks.

 

  • A "64-byte flash block" is any Flash memory with the same upper 10-bit address. For example: All 64 bytes from 0x1000 to 0x103F is a 64-byte flash block. All 64 bytes from 0xFFC0 to 0xFFFF is a different 64-byte flash block.

    A 512-byte segment consists of 8 different 64-byte flash blocks. Before that segment is erased again, each of those 8 blocks should not be subject to more than 10 ms of accumulative write time.

     

  • Do you mean I can't program 512bytes segment at a time?

  • BasePointer said:
    Do you mean I can't program 512bytes segment at a time?

    No, it means you cannot program the same 64 bytes of a 512 byte segment more than three times. The 10ms limit begins anew for each individual 64 bytes block inside a 512 bytes sector. Just that you can only erase them all together.

    before you ask: yo could habe the idea of using a flash block as a counter. 64 bytes = 512 bits. Then you clear one bit at a time for a countdown. unfortunately you'll exceed the maximum cumulative write time after 128 bits and need to erase teh whole segment before you can write to this 64 byte block again.

    However, the flash example for the 1x chips actually did exceed the allowed write time, since it used byte write mode, and with the maximum timing there were oly 53 or so write cycles possible to a 64 byte cell on these devices. When using word write, this is far enough, and in burst write mode, it takes even less time to write 64 bytes, but the example was using byte mode and exceeded the write time. However, nobody noticed, so it did not immediately destroy the flash :) Just the 10 years data integrity cannot guaranteed anymore. Every microsecond the programming voltage is applied increases the chance that even an unprogrammed cell suddenly turns from 1 to 0 after some time. This time will be at least the specified retention time if the write time is below the threshold, but may come rapidly nearer the more you go over the allowed time.

**Attention** This is a public forum