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.

TMS320F280049C: Locking and unlocking using OTP programming by programming *.out file.

Part Number: TMS320F280049C


Tool/software:

Hi,

I am planning to lock the device but to allow to be flash reprogrammed when unlocked.

I am doing it by changing my linker command file and defining the OTP data sectors.

I have several questions:

1. Do I need to program the linker pointer only after the password is programmed?

2. Why do the linker pointers need to be the same? or I am missing something here.

3. If I use the linker pointer with default values, that points to the first sector block of the zone memory. Does it mean that I can use it without change of the linker pointer?

4. I am developing on the Launchpad, (which is, by the way, a wonderful board thanks to the brilliant TI engineers). Are the TMS320F280049C chip OTP default values different from the ones that are in the TMS320F280049C on the launchpad board?

5. What is the right way to program the OTP location that protects the password from reading it with the JTAG without disabling the JTAG? I am a little bit confused with the description given in the sprui33h document which is here:

Description does say that the content of the register is a "password lock location." is that the address of the Z1_OTPSECLOCK register or the copy of its contents.

I would much appreciate your answers.

Regards,

Vlad Pavlovic

  • Hi Vlad,

    1. Do I need to program the linker pointer only after the password is programmed?

    You only need to update the linkpointer if you need to use a new zone select block. If it is your first time programming settings in the zone select block the linkpointer does not need to be updated.

    2. Why do the linker pointers need to be the same? or I am missing something here.

    The linkpointers and JLM_ENABLE field are the only locations in USER OTP that do not have ECC protection. This is intentional as individual bits of the linkpointer must be flipped from a 1 to a 0. To mitigate the safety concerns associated with removing ECC protection, 3 copies of the linkpointer are implemented and a "majority vote" is performed on each bit between the 3 linkpointer values to prevent potential failures during programming that would normally be caught by ECC.

    3. If I use the linker pointer with default values, that points to the first sector block of the zone memory. Does it mean that I can use it without change of the linker pointer?

    Yes

    4. I am developing on the Launchpad, (which is, by the way, a wonderful board thanks to the brilliant TI engineers). Are the TMS320F280049C chip OTP default values different from the ones that are in the TMS320F280049C on the launchpad board?

    Glad the launchpad is serving as a helpful resource for you. The default OTP values on a launchpad should be identical to any TMS320F280049C chips you might purchase through ti.com.

    5. What is the right way to program the OTP location that protects the password from reading it with the JTAG without disabling the JTAG? I am a little bit confused with the description given in the sprui33h document which is here:

    On F28004x devices. There is no password to unlock the JTAG, meaning JTAG is permanently locked after programming the JTAGLOCK field. Because of this I would recommend only programming JTAGLOCK at the end of development once you have confirmed you no longer need JTAG access.

  • Excellent, thank you for your answers.