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.

C2000 flash endurance

Other Parts Discussed in Thread: TMS320F28027

Hello:

I was hoping you could help answer a question I have about the endurance of the flash in the C2000. For our project, we want to track the life time of an LED lamp, and in this application we have three of the 4 flash sectors unused in the TMS320F28027.  The flash is only rated for 100 minimum, 1000 typical write/erase cycles, but I would like to use this memory to track the running life time of the lamp.  What I was thinking of doing, in order to maximize the life of the flash, was to write a 0 to a single bit of flash every 1 minute for two sectors of flash, and when this is complete, erase (thus writing all back to 1), and use the third available sector as the count of how many times the first two have rolled over. This way I calculated that even for 100,000 hours, I would only be erasing these first two sectors 22 times. This assumes, of course, that programming a 0 to the flash without erasing won’t affect the endurance of the flash; do you know if this is true?

Any feedback or suggestions on this are welcomed and appreciated!

Thanks again!

Paul

  • Hi Paul,

    Where do you see that the flash is only rated for 100-min 1000-typ write/erase cycles? 
    According to the datasheet (TMS320F28027) the flash endurance is 20,000 write/erase cycles minimum.  I believe this applies to all F28x C2000 MCU's after the flash was re-certified in the 2009 time frame.

     

    You should also be able to reference this E2E announcement:

    http://e2e.ti.com/support/microcontrollers/c2000/f/171/t/21087.aspx

     

    Regards,
    Walter

     

  • Thanks Walter!

    The datasheet I was looking at was old, so you are correct about the increased write/erase cycles, but this doesn’t quite answer my question. I am not writing/erasing all the time, I am simply writing consequtive 0’s to each bit in the sector, until two sectors are filled with 0’s, and then I am erasing. So in fact I am doing a separate write to flash for each bit in the flash, one per minute over the life of the product, so I actually end up writing 8K*16 = 8*1024*16 = 131,072 times to flash, and then erasing it once, and doing it all over again. It is not clear to me if this has adverse affects on the life or endurance of the flash, and this is the question I am trying to get an answer to.

    If you have some insight or suggestions on this use model, that would be excellent!

    Thanks again!

    Paul

  • Paul,

    My understanding is that the flash memory endurance is based upon write/erase cycles, with the emphasis being on the cycle part of the definition.  Namely, each bit will break down independently due to a write + erase (the cycle as a whole).  Therefore, performing 131,072 writes (flips from 1 to 0) on a different bit in the sector each time, followed by one erase (flip all bits in the sector from 0 to 1) should be the equivilent of one write / erase cycle for that whole sector.  This procedure also should not have adverse effects on the endurance of the flash.  I apologize for not fully answering your question the first time.  I'm going to ping someone from the C2000 group to check this just to verifiy that I am correct here (this is flash in general,but I just want to make sure that it is the case with C2000 as well so that there are no unpleasant suprises down the road).

    Regards,
    Walter

     

     

  • Paul,

    I've verified this with the factory engineers.  The erasure count drives the endurance.  You are good to go with this approach. 

    Is there any other way I can help with this application?

    Walter