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.

TMS320C2801: Not ble to program the device . Device got locked after programming

Part Number: TMS320C2801

Hi, this is Ganesh,


I am trying to program the TMS320C2801PZ device. When I tried to program the device i am not able to program it. There is some security password. Please enlight me on how to use that and I made the address marked in red as 0x000 as prescribed in the datasheet. Then the device got inaccessible. The security Lock region got become zero and the entire memory range is 0 and not accessible. Please help me find the correct way to program the device.
1. Please help us understand how to program the flash range in CSM without locking the device.
2. How to find the keys for erasing and reading operations?
3. Do we need to make the data file specific to the device parameters so it won't lock permanently, Please advise here!


Thank You

  • Ganesh,

    I want to clarify the device you are using.  In the subject line you have listed TMS320C2801 which is  ROM only device, https://www.ti.com/product/TMS320C2801 so there will be no flash.  Do you have a TMS320F2801 https://www.ti.com/product/TMS320F2801 which has Flash memory?

    Best,
    Matthew

  • Hi Matthew
    We have a TMS320C2801PZ device that has both flash and OTP regions

  • Hi Matthew,
    Can you please help me answer my question?
    I have another question How do we unsecure the device which is secured already

  • Ganesh,

    The typical reasons that the flash gets into an undefined state is that any of the flash operations like program/erase are interrupted before completion.  This could be due to a power fault, an unintended reset, or an interrupt in the MCU.

    For the interrupt, this should not happen on its own, as part of the flash API will disable all global ISRs before starting the flash process. 

    For unintended reset, this can happen if there is an external supervisor that might falsely think the MCU is in a bad state.  The flash erase process can be as much as 12s per sector, so the system needs to be aware of this time constraint.  We do provide a callback function in the flash API that can be used to toggle a pin for keep alive, that will be serviced during appropriate breaks in the flash process

    For power fault, this is something that would be system driven.  Although I would advise to check on the decaps on the VDDIO/VDD3FL pins of the device, to make sure they are robust.

    Now, if a device has been mis-programmed, and that extends to the CSM locations in sector A there is nothing that can be done to recover the device since the passwords are unknown.  That device is considered permanently locked.

    I will add that even an erased device will, at reset, be locked as well as we require a dummy read of the CSM password locations to unlock it.  This is the behavior of the CSM on the device, once read (if erased) you will see the true all 0xFFFF values in the memory locations once it is unlocked.

    In terms of avoidance of this condition, I would refer to the above statements; but if you are still having issues I would recommend limiting your programmation to sectors B and C so you can debug the issue.  If the flash routines fail in these sectors there will not be a chance to corrupt the sector A contents and you can flush out the issues in your program/erase (looking at rails during the operation, monitoring XRSn pin for un-intended resets, etc).

    Best,

    Matthew