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.

TMS320F280039: Program same address twice using flash API

Part Number: TMS320F280039


Hi all,

From Flash API document, there is a restriction say each 64-bit word can only be programmed once per write or erase cycle. 

However, when I try to program it twice, in some cases it will success, for example:

if testBuffer2[0] is 0x00005a5a, then the second write command can overwrite the testBuffer1[0]'s 0x5a5affff, which is written to flash in the first write command.

If testBuffer2[0] is other than 0x00005a5a, for example is 0x000f5a5a, then the second write command has no effect.

How to explain this?

Thanks,

Hang.

  • Hi Hang,

    Which programming mode are you using?  Fapi_AutoEccGeneration mode?  For some reason, the image is not downloading for me to see the details.

    Thanks and regards,
    Vamsi

  • Hi Vamsi,

    Sorry for the delay. Yes it's auto ecc generation.

    Regards,

    Hang.

  • Hang,

    As long as you change a bit from 1 to 0, the program command will succeed.  However, it would succeed only if this holds true for ECC memory as well.  When you program ECC for a given 64-bit aligned flash address along with the data (using Fapi_AutoEccGeneration), you may or may not be able to successfully program that location again - This is because the corresponding ECC space gets programmed during the first program command, and the programmed 0s in the ECC space may collide with any 1s resulting from the new ECC value when you program the corresponding flash location in the second or later iterations.  

    You also need to note that a given 64-bit location can be programmed only once as mentioned in the flash API guide and the datasheet.  

    Thanks and regards,
    Vamsi

  • Hi Vamsi,

    That's well explained, thanks for answering!

    Regards,

    Hang.