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.

Cannot Erase/Program New TMS320F2812

Other Parts Discussed in Thread: TMS320F2812, UNIFLASH, CODECOMPOSER, SPRC097

Dear expert,

I'm in a situation that I couldn't erase/program TMS320F2812 even after I replaced the MCU twice. Below is the full story line. 

I am currently developing a board using TMS320F2812. This board has been through 200-hour heat test and broke down last week. By then I suspected MCU was bad because board current consumption drop to very low level (around 40mA). So I replaced a new MCU but only found out it couldn't be erased or programmed. Then I replaced it again but still couldn't erase/program the MCU. I'm using XDS100V2 and was able to program other boards with TMS320F2812 with the same setup. 

I tried both CCS and uniflash. Typically current consumption can rise up to 190mA during erase. However for this board, when I click on Erase, current consumption never change and stay at 70mA all the time.

Below is the error message from uniflash:

[15:42:51] C28xx: Erasing Flash memory...

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

[15:43:11] Flash operation Erase failed on core Texas Instruments XDS100v2 USB Emulator/C28xx .

I successfully perform the Boundary Scan test on this unit. INFRA and interconnection test all pass. That indicates good JTAG connection on board

I also validated the power-on sequence for 1.9V, 3.3V, XRS are all correct. 

I tried the Depletion recovery in uniflash and it was reporting successful.

Assuming MCU and JTAG are all good, what else could prevent this MCU from being erased? Is it possible because of the boot mode pin is incorrect? Or is it possible due to 3.3V regulator unable to source enough current for MCU internal Flash? 

Any thoughts on issue would be greatly appreciated. Thank you in advance!

  • Shuxun,

                If you have verified that the rails are all at the correct levels and if you are able to connect & communicate with the device via CodeComposer studio, the flash programming operation should not fail, especially on brand new parts. It is conceivable that the 200-hour heat test damaged some other component on the board (may be the 3.3v regulator, as you surmised). Are you able to load a simple code in RAM (say toggling a GPIO pin) and run it?

  • Also, are you able to put the device that "failed" flash programming on a known-good board and retry programming?
  • Hareesh,

    Thank you so much for replying. I was able to connect & communicate with device using CCS. In Memory Browser, I can even read all the data on Flash section and they are all FFFF as expected. I also checked the Boot ROM, the data seems to be ok too. I also used a scope to probe TDI and TDO. Lots of data coming in and out right after I sent erase command in CCS or uniflash. But current consumption never even rise and operation timeout eventually.

    I compared the 3.3V and 1.9V regulator output with another known good board. It have larger ripples than the other. There are capacitor banks filter in parallel with MCU power pins. I don't know whether MCU could be that sensitive to noise or not. I will replace the regulator on board to see if it help or not. 

    There is a "ramfunc" to let code run on RAM but my understanding is that it will also require program to be loaded on flash first. But the current issue prevent me from doing that. If there is any way to skip flash and directly run code on RAM use CCS? 

    Thanks,

    Shuxun

  • Shuxun,

    It is conceivable that the 200-hour heat test damaged the voltage regulators and are current-starving the F2812 during flash programming. I am unable to think of anything else, since you are able to communicate with the device alright. You may have some "walking-wounded" voltage regulator modules on your board. F2812 typically consumes around 200 mA during normal operation. Could you run a test case out-of-RAM and try to hit this number? You could attempt this by turning on the clock to all the peripherals and run a simple GPIO toggling code. You could simply run an example code from SPRC097. If the voltage regulators are the problem, I would assume you will not be able to run code even off RAM.

    The MemCopy function that operates on the ramfuncs section is useful to copy the functions residing in flash on to RAM and then run them off RAM. However, you could link your code to run entirely off RAM (using the F2812_EzDSP_RAM_lnk.cmd linker command file) and not worry about the ramfuncs section. This way, you will not be messing with the flash in anyway.

  • Hareesh,

    After I replaced the regulators, I successfully programmed the MCU. Thank you so much for the help!

    Thanks,
    Shuxun