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.

C28xx: Flash Programmer: Error encountered when writing to flash memory

Other Parts Discussed in Thread: CONTROLSUITE, UNIFLASH

Hello,

I have a 28027 controlCard that is used with the TMDSHVRESLLCKIT_v1.0 tI kit with CC 5.5.0.00077.

I have not had any problems in the past.  All I did was, I tried to download the TI kit software.

I get the following error.  I have gone through some other posts, but really did not see any resolution.  Is there one?

C28xx: Flash Programmer: Error encountered when writing to flash memory

C28xx: GEL: File: C:\TI\controlSUITE\development_kits\TMDSHVRESLLCKIT_v1.0\HVLLC\F2802x_FLASH\HVLLC.out: Load failed.

Thanks,

Brent

  • This is with Verbose Output enabled:

    C28xx: Writing Flash @ Address 0x003F7136 of Length 0x0000002C
    C28xx: Erasing Flash Sector A
    C28xx: Flash operation timed out waiting for the algorithm to complete. Operation cancelled.
    C28xx: Error Writing Flash @ Address 0x003F7136 of Length 0x0000002C
    C28xx: GEL: File: C:\TI\controlSUITE_same\development_kits\TMDSHVRESLLCKIT_v1.0\HVLLC\F2802x_FLASH\HVLLC.out: Load failed.

     

    I also tried the CCS UniFlash tool.  Below is the output:

    [09:11:08] Begin Launching session operation.

    [09:11:11] Operation Launching session returned.
    [09:11:11] Loaded target configuration from: C:\Users\brentw\AppData\Local\TEXASI~1\CCS\TI_CC324\0\0/temptargetconfiguration.ccxml
    [09:11:11] Settings purged.
    [09:18:56] C28xx: Erasing Flash memory...

    [09:18:59] C28xx: Erasing Flash Sector A

    [09:19:19] ERROR >> C28xx: Flash Programmer: Error erasing flash memory. Flash operation timed out waiting for the algorithm to complete. Operation cancelled.

    [09:19:22] Flash operation Erase failed on core Texas Instruments XDS100v1 USB Emulator/C28xx .
    [09:19:35] C28xx: Depletion Recovery started.

    [09:19:58] ERROR >> C28xx: Flash Programmer: Error when performing depletion recovery. Flash operation timed out waiting for the algorithm to complete. Operation cancelled.

    [09:20:01] Flash operation DepletionRecovery failed on core Texas Instruments XDS100v1 USB Emulator/C28xx .

     

  • Hi Brent,

    The immediate step would be to try load a simple led_timer based sample code to the kit. Check whether the code gets loaded to the RAM or not. Next try out the flash_f28027 sample code for flash. Let me know what you observe.

    Regards,

    Gautam

  • Hi Gautam,

    Thanks for the reply.

    I am able to load a run a example project from RAM.

    I tried running the FlashingLeds-F28027 example from FLASH.  I observed the following:

    C28xx: Writing Flash @ Address 0x003F64D1 of Length 0x00000016

    C28xx: Erasing Flash Sector A

    C28xx: Flash operation timed out waiting for the algorithm to complete. Operation cancelled.

    C28xx: Error Writing Flash @ Address 0x003F64D1 of Length 0x00000016

    C28xx: GEL: File: C:\TI\controlSUITE\development_kits\TemplateProjects\FlashingLeds-F28027_v1.0\F2802x_FLASH\FlashingLeds.out: Load failed.

    Brent

  • Brent, did you ever lock your flash using CSM? Also, I hope your mcu has not gone into permanent lock mode due to power failures while erasing.

    Regards,

    Gautam

  • Hi Gautam,

    I have not locked the flash using CSM.

    Is there a way to check to see if it is permanently locked?

    Thanks,

    Brent

  • Brent,

    Based on the error messages you are getting, it looks like your flash is in depletion. It also looks like your depletion recovery algorithm also times out (meaning: you cannot recover the part as the flash is in deep depletion).

    Unfortunately, you don't have any option but to replace the part.

    Regards,

    Manoj

  • Brent,

    I forgot to mention. Your CSM isn't locked. I know this because your flash API is starting to run the flash erase algorithms. If the device is locked, it wouldn't and the plugin would just report that device is locked.


    Regards,

    Manoj

  • Thanks for the reply.

    Do you know how it got in this state?

    Brent

  • Source: http://processors.wiki.ti.com/index.php/C2000_Flash_Common_Issues/FAQs#Depletion

    Depletion

    Q: How does depletion occur?

    A: If the erase operation is interrupted and not allowed to complete, the device may become depleted. When this happens, the device may then begin to fail to erase. The erase algorithm should not be stopped, as this can also affect the CSM passwords. The Flash API has a depletion recovery function to try to recover flash that has been "over-erased". If the flash programming process was interrupted during the erase stage, it is possible that the timed loops that do the erasing process were disturbed.

    The CCS On Chip Flash Programmer does have support for the depletion recovery function. You will see it listed in the as one of the options that can be selected under "Operations" in the flash plug-in GUI. You can get additional information on this by clicking on the "Help" button, go to the search tab and enter "depletion".

    The depletion recovery also looks for sectors that are in depletion and attempts to recover them. All sectors on the device are checked.

    The current maximum timeout for the algorithm is approx 35 seconds per sector that is in depletion. Typically, only one sector would be in depletion unless erase has been called multiple times on multiple sectors without running to completion. If a longer timeout can be tolerated, the depletion recovery can be used multiple times.

    There is no guarantee that this algorithm will be able to bring a sector out of depletion within a reasonable amount of time. The deeper in depletion the part is, the longer it will take to recover. The Flash API erase function has been implemented to erase the flash in such a manner that it is not put into deep depletion. However, if the CPU is halted during an erase pulse for a long period of time, the part can be put into a deep depletion that may not be recoverable in an acceptable time period.

    This algorithm cannot recover the part if the flash passwords are unknown. For example, if power is lost during the erase of sector A, where the CSM passwords are located, then the device may be permanently locked and the recovery algorithm cannot operate on the flash.

    If the depletion recovery step fails then replacement is the only option.

  • Manoj Santha Mohan said:
    I forgot to mention. Your CSM isn't locked. I know this because your flash API is starting to run the flash erase algorithms. If the device is locked, it wouldn't and the plugin would just report that device is locked.

    Nice point Manoj and noted. Thanks for the detailed description.

    Regards,

    Gautam

  • Hi

    I have the same problem.

    I didn't interrupt the erase step. It seems the F28069 corrupt due to long erasing time.

    I end up with 20+ bad parts on my inventory.

    Please help how to recover them by doing depletion recovery or other like the following note from datasheet

    If a device is reset while the password locations are all zero or an unknown value, the device

    will be permanently locked unless a method to run the flash erase routine from secure

    SARAM is embedded into the flash or OTP. Care must be taken when implementing this

    procedure to avoid introducing a security hole.

    ken

  • ken ho1 said:
    I end up with 20+ bad parts on my inventory.

    That's huge, Ken!

    Are you trying to program the sample flash based code or something else?

    Regards,

    Gautam

  • I kept having the problem until I went to a better (more expensive) JTAG emulator and stopped using the XDS100.  Since then I have not had any issues.

    Brent

  • Hi Gautam, Brent,

    Thanks for the info.
    I download my own code into the flash.
    Is there another JTAP emulator from TI beside XDS100?

    Ken
  • Hi Brent,

    Thanks. I will check it out.

    Ken
  • Hi everyone

    I had similar problems. I also saw the same errors.

    I had to go into my advance target configurations and set here the correct path to my *.gel file.

    Then everything worked. Perhaps you have the same problem.

    good luck

    jo

  • Hi Manoj,

    I am encountering the same problem with TMDSHVRESLLCKIT too.
    Sorry that I am not able to understand what you explain about depletion.
    I just want to know to fix the problem. As you said "you don't have any option but to replace the part", does it mean I have to buy a new controlcard? I am using ccs v7 and XDS100 USB JTAG Emulator which is provided with the kit.

    Thanks
  • Van,

    If your device is failing depletion recovery, there is no option but to replace the part / control card.

    Regards,

    Manoj

  • Hi Manoj,

    I understand you replied there is only option that replaces the control card, but in a above post, a guy said it can be fixed by using better JTAG emulator. Do you think it can work?

    Thanks
  • Van,

    No, this is not an emulator problem. Changing emulator will not help.

    Regards,
    Manoj
  • Manoj,

    Thank you for your reply.
    I found out that when I get the error, if I do nothing with the kit about 2 hours, then I can write the program to MCU (the kit works well, I checked it) for a few times, then the error come out again. This thing keeps repeat again and again.

    Here some information about my case:
    Board: TMDSHVRESLLCKIT (bought 2 weeks ago form TI authorized Distributor)
    Control Card: F28027
    CCS: ver4.2.3.0004 (installed from USB provided with the kit)
    12V Power and JTAG Emulator I am using are provided with the board.

    Error:
    C28xx: Flash Programmer: Error encountered when writing to flash memory
    C28xx: Trouble Writing Memory Block at 0x3f6000 on Page 0 of Length 0xff4
    Cannot write to target

    Thank you,
    Toan
  • Toan,

    Are you able to erase the device successfully each time? Also, are you changing the COFF file programmed each time?

    Regards,
    Manoj
  • Hi Manoj,

    I didnt notice much about erase operation every time but it seems the device was erased successfully. Everytime what I did is click "Rebuild", then "Debug" without changing anything (same source code, same CSS setting, same kit hardware setting)

    Thanks,
    Toan