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.

EK-TM4C1294XL: Unit can not be reflashed, sw running

Part Number: EK-TM4C1294XL
Other Parts Discussed in Thread: ENERGIA, TM4C1294NCPDT

I'm starting a project with EK-TM4C1294XL, using ENERGIA IDE, I have flashed a test code sending SPI messages, and I can see the SPI frames(so code is running), but now I can't re flash due an error connecting to the target.

I'm afraid I use an incorrect port (26) for the SPI SS (CS), and may be it is affecting the connection with the target:

Is there any way to force the re-flashing? Any way to erase the code? Or any way to recover the communication?

Thank's in advance!

Fran

  • Hi Fran,

      Please refer to FAQ#9 in this FAQ https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/695568/faq-faqs-for-tm4c-arm-cortex-m4f-microcontrollers. Basically, we don't support Energia on this forum. Do you have any strong reason to only use Energia and not TivaWare SDK for your software development. TivaWare SDK contains various examples including SSI that we can support you for your questions. You screenshot seems to suggest there is a connection issue that I'm not familiar with. The EK-TM4C129XL LaunchPad board has an on-board ICDI debug probe. It should automatically enumerate when you plug the USB cable to the board. Your screenshot shows some failure about unable to load ftd2xx.dll library. I'm not sure what this library is. If you open the Windows Device Manager, you should see Stellaris In-Circuit Debug Interface. Do you see it?

      I will suggest you download TivaWare and start with a very basic example like hello or blinky using CCS IDE and later you can also run the SSI examples. If you can run these examples successfully then it means the LaunchPad is in good shape and has no connection issue. 

  • Thank yo so much for you quick answer!

    First of all, yes I have the ICDI:

    The reason to use ENERGIA instead of CCS is to make it easy to understand/modify the code, to the rest of the team (they are not SW engineers).

    But I usually use the CCS for other TI microcontrollers, so I already try to connect to the micro with CCS creating a new target configuration to compile and upload an example  but I can't connect to the micro, I can't read the register and when I try to download the compiled example (project.out) I have an error:

    Could you confirm my target configuration is correct?

  • Hi Fran,

      I think the reason is that you selectUARTconnection as the target configuration. This is wrong. See below your connection specified for UARTconnection.

    You should select ICDI for code programming and debug. Please see below. 

  • Hi Charles,

    I have configured the target configuration using Stellaris ICDI but it still failing the connection with the target:

    I'm afraid the code flashed is breaking the communication...

    Is there any way to erase the code without using the Stellaris ICDI?

    May be connecting directly to the Jtag pins on X1 connector through an XDS200 Usb probe?

    I'm trying to do this but the connection still failing... Is it necessary to put jumpers on X1 connector to use the Jtag Pins?

    Tnank's for the support Charles!

  • Hi Fran,

      Please use LM flash programmer to unlock the device if you think somehow the device is locked up due to your downloaded software. The unlock will restore the device to its factory setting. You do not need XDS200. Just plug in the cable and use ICDI to perform the unlock operation. However, it really depends what went wrong in the first place. There is no guarantee that it will unlock. But start with the unlock procedure to see if the board can be recovered. 

    If you want to use XDS200, please follow section 5.3.2 in this app note. https://www.ti.com/lit/pdf/spma075

  • Hi Charles,

    Unlock procedure executed, but after un power it and  power it again, still no connection with the target on ccs:

    Seems some how the ICDI connection with the microcontroller isn't working, so the unlock procedure can't erase the code...

    Any other idea?

    Thank you so much for the support!

  • Hi,

      If you click 'Get Current Values', do you see the same error message? Can you try to unlock again using XDS200 with the dbgjtag.exe command?

    If you use XDS200, you can run a connection test. This is a basic JTAG scan chain test? What is the result?

  • Hi,

    When I click 'Get Current Values', I have this Error:

    Can you tell me how to connect the XDS200 debug prove to the Tiva TM4C1294NCPDT?

    I'm trying to connect the debugger directly to the X1 connector pins in this way:

    But When I click the Test Connection button on ccs I get this error:

  • Hi,

      You can directly connect to U6 JTAG connector. 

    When running the test connection, you do NOT need to launch the target configuration. Just select the target configuration file and then click 'test connection'. If there is no scan chain issue then you will see the below log. 

    [Start: Texas Instruments XDS2xx USB Debug Probe_0]
    
    Execute the command:
    
    %ccs_base%/common/uscif/dbgjtag -f %boarddatafile% -rv -o -S integrity
    
    [Result]
    
    
    -----[Print the board config pathname(s)]------------------------------------
    
    C:\Users\a0321879\AppData\Local\TEXASI~1\
        CCS\ccs1011\0\0\BrdDat\testBoard.dat
    
    -----[Print the reset-command software log-file]-----------------------------
    
    This utility has selected a 560/2xx-class product.
    This utility will load the program 'xds2xxu.out'.
    The library build date was 'May  7 2020'.
    The library build time was '20:23:44'.
    The library package version is '9.2.0.00002'.
    The library component version is '35.35.0.0'.
    The controller does not use a programmable FPGA.
    The controller has a version number of '13' (0x0000000d).
    The controller has an insertion length of '0' (0x00000000).
    This utility will attempt to reset the controller.
    This utility has successfully reset the controller.
    
    -----[Print the reset-command hardware log-file]-----------------------------
    
    This emulator does not create a reset log-file.
    
    -----[Perform the Integrity scan-test on the JTAG IR]------------------------
    
    This test will use blocks of 64 32-bit words.
    This test will be applied just once.
    
    Do a test using 0xFFFFFFFF.
    Scan tests: 1, skipped: 0, failed: 0
    Do a test using 0x00000000.
    Scan tests: 2, skipped: 0, failed: 0
    Do a test using 0xFE03E0E2.
    Scan tests: 3, skipped: 0, failed: 0
    Do a test using 0x01FC1F1D.
    Scan tests: 4, skipped: 0, failed: 0
    Do a test using 0x5533CCAA.
    Scan tests: 5, skipped: 0, failed: 0
    Do a test using 0xAACC3355.
    Scan tests: 6, skipped: 0, failed: 0
    All of the values were scanned correctly.
    
    The JTAG IR Integrity scan-test has succeeded.
    
    -----[Perform the Integrity scan-test on the JTAG DR]------------------------
    
    This test will use blocks of 64 32-bit words.
    This test will be applied just once.
    
    Do a test using 0xFFFFFFFF.
    Scan tests: 1, skipped: 0, failed: 0
    Do a test using 0x00000000.
    Scan tests: 2, skipped: 0, failed: 0
    Do a test using 0xFE03E0E2.
    Scan tests: 3, skipped: 0, failed: 0
    Do a test using 0x01FC1F1D.
    Scan tests: 4, skipped: 0, failed: 0
    Do a test using 0x5533CCAA.
    Scan tests: 5, skipped: 0, failed: 0
    Do a test using 0xAACC3355.
    Scan tests: 6, skipped: 0, failed: 0
    All of the values were scanned correctly.
    
    The JTAG DR Integrity scan-test has succeeded.
    
    [End: Texas Instruments XDS2xx USB Debug Probe_0]

  • Hi Charles,

    Same result using connecting to U6  Jtag connector using the 10 pin ARM adapter, without launching the target configuration, only clicking on 'Test Connection' button:

  • Hi Fran,

      Can you try the scan test on a known good board? I just wanted to make sure it is not a debug probe issue. If you can prove that you can connect to another working board then your XDS200 is in good condition. This leads me to think that the target device on your non-working board is somehow bricked. Can you try one more time to run dbgjtag.exe to unlock the board using XDS200? What does it show? Again, if dbgjtag.exe does not recover the board, I don't have other suggestions to offer. The board is most likely bricked. The only thing I can think of is to remove the target device and replace with another known good chip if you have a spare. You can probe the JTAG interface signals (TCK, TDI, TDO) and compare with a working part to see if TDO is generating a correct output. If you find some difference then it explains why it is not connecting.

      Refer to section 6.1 in the app note. Although I don't think it will be likely to recover the board, you can check the below items to see if they are the reason outside of the MCU. 

    https://www.ti.com/lit/pdf/spma075

  • Hi Charles this is the result of the dbgjtag.exe command with the faulty Tiva board:

    And for sure XDS200 is working fine, this is the result of the TestConnection with my 'alive' Tiva board:

    [Start: Texas Instruments XDS2xx USB Debug Probe_0]

    Execute the command:

    %ccs_base%/common/uscif/dbgjtag -f %boarddatafile% -rv -o -S integrity

    [Result]


    -----[Print the board config pathname(s)]------------------------------------

    C:\Users\FPARAD~1\AppData\Local\TEXASI~1\
    CCS\ccs1260\0\0\BrdDat\testBoard.dat

    -----[Print the reset-command software log-file]-----------------------------

    This utility has selected a 560/2xx-class product.
    This utility will load the program 'xds2xxu.out'.
    The library build date was 'Dec 6 2023'.
    The library build time was '22:23:11'.
    The library package version is '12.6.0.00029'.
    The library component version is '35.35.0.0'.
    The controller does not use a programmable FPGA.
    The controller has a version number of '13' (0x0000000d).
    The controller has an insertion length of '0' (0x00000000).
    This utility will attempt to reset the controller.
    This utility has successfully reset the controller.

    -----[Print the reset-command hardware log-file]-----------------------------

    This emulator does not create a reset log-file.

    -----[Perform the Integrity scan-test on the JTAG IR]------------------------

    This test will use blocks of 64 32-bit words.
    This test will be applied just once.

    Do a test using 0xFFFFFFFF.
    Scan tests: 1, skipped: 0, failed: 0
    Do a test using 0x00000000.
    Scan tests: 2, skipped: 0, failed: 0
    Do a test using 0xFE03E0E2.
    Scan tests: 3, skipped: 0, failed: 0
    Do a test using 0x01FC1F1D.
    Scan tests: 4, skipped: 0, failed: 0
    Do a test using 0x5533CCAA.
    Scan tests: 5, skipped: 0, failed: 0
    Do a test using 0xAACC3355.
    Scan tests: 6, skipped: 0, failed: 0
    All of the values were scanned correctly.

    The JTAG IR Integrity scan-test has succeeded.

    -----[Perform the Integrity scan-test on the JTAG DR]------------------------

    This test will use blocks of 64 32-bit words.
    This test will be applied just once.

    Do a test using 0xFFFFFFFF.
    Scan tests: 1, skipped: 0, failed: 0
    Do a test using 0x00000000.
    Scan tests: 2, skipped: 0, failed: 0
    Do a test using 0xFE03E0E2.
    Scan tests: 3, skipped: 0, failed: 0
    Do a test using 0x01FC1F1D.
    Scan tests: 4, skipped: 0, failed: 0
    Do a test using 0x5533CCAA.
    Scan tests: 5, skipped: 0, failed: 0
    Do a test using 0xAACC3355.
    Scan tests: 6, skipped: 0, failed: 0
    All of the values were scanned correctly.

    The JTAG DR Integrity scan-test has succeeded.

    [End: Texas Instruments XDS2xx USB Debug Probe_0]

  • Hi Fran,

    this is the result of the dbgjtag.exe command with the faulty Tiva board:

    You are showing dbgjtag.exe using XDS100, not XDS200. Please try again.

     If you see the same result using XDS200 then unfortunately, I think your board is bricked. As I mentioned, I don't have other suggestions to resurrect it. If you have spare TM4C1294CPDT chips then you can swap the device if you want to reuse the same board. 

  • You're right... sorry I use the command for XDS100 instead of XDS200.

    Unfortunately I try with the command for XDS200, with no error reported but still not connecting with CCS:

    We don't have spare TM4C1294CPDT chips, so we will purchase an other EK-TM4C1294XL.

    Thank you so much for your support!

    Best regards,

    Fran