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.

TM4C129CNCPDT: Using TM4C as XDS110, but firmware won't boot

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

Hi. We have custom boards using the TM4C129CNCPDT connected to a CC3235SF. We normally flash the XDS110 bootloader and firmware using xdsdfu.exe, and the device shows up as a Ti XDS110 in Windows device manager. On our last build, we were using a slightly different model, the TM4C1294NCPDT, and the process worked fine. But we just got our new revision boards in with the TM4C129CNCPDT  and the firmware seems like it's getting stuck somewhere.

I am able to connect with xdsdfu -e, flash the updated bootloader (I've tried files from ccs1011, ccs1040, and ccs1120 but all have the same failure), and flash the firmware. But after the firmware flash is done, the chip does not respond, the LEDs do not come on, and there are no drivers populated in Windows device manager.

Luckily we have a SWD connection to the chip, so I've tested using J-Flash to verify the contents of the flash, they look fine. I've even loaded up some example project for the EK-TM4C1294XL in Code Composer Studio to prove that the LEDs will light up (our LEDs are on PD2 and PD3). Power, clocking, GPIO, LEDs all seem to work, but the XDS110 firmware will not.

Is there any known issue with TM4C129CNCPDT in relation to TM4C1294NCPDT? Or should I keep looking at our board layout for errors?

  • Hi,

    I am able to connect with xdsdfu -e, flash the updated bootloader (I've tried files from ccs1011, ccs1040, and ccs1120 but all have the same failure), and flash the firmware. But after the firmware flash is done, the chip does not respond, the LEDs do not come on, and there are no drivers populated in Windows device manager.

    Can you please show the exact steps that you use to flash the bootloader and then the firmware? Perhaps a screenshot of the command window where you execute the commands. 

    Luckily we have a SWD connection to the chip, so I've tested using J-Flash to verify the contents of the flash, they look fine. I've even loaded up some example project for the EK-TM4C1294XL in Code Composer Studio to prove that the LEDs will light up (our LEDs are on PD2 and PD3). Power, clocking, GPIO, LEDs all seem to work, but the XDS110 firmware will not.

    Have you tried to load the XDS110 bootloader and firmware using J-Flash through JTAG interface instead of xdsdfu.exe? Does it make a difference?

    Is there any known issue with TM4C129CNCPDT in relation to TM4C1294NCPDT? Or should I keep looking at our board layout for errors?

    There is almost no difference between the two. TM4C129CNCPDT has extra features such as AES/DES/SHA/MD5. However, these features will have nothing to do with how TM4C129 is used as a XDS110 debug probe. 

      I will suggest some experiments.

      - Since you have access to the TM4C129 flash content through J-flash, can you dump the flash content of TM4C1294NCPDT and the older TM4C129CNCPDT board that you said was working. Compare them with the one you loaded for the new TM4C129CNCPDT board. This one may be tricky unless you know exactly the XDS110 version you have previously programmed to the older boards. 

      - I suppose you still have some good known boards. Can you flash again the XDS110 bootloader and firmware to one of them? Will it still work?

      - Can you do a ABA swap by swapping out TM4C129CNCPDT  in the new board to your old good known board? Re-flash the XDS110 bootloader/firmware using the older board. Will it work? Also swap a good know MCU (with its working XDS110 bootloader and firmware on chip) from your older board to your new board. Will the good know MCU continue to work? What if you reprogram this good known MCU again using the new board?

      I think all of the above experiments will be useful to shed some lights. 

  • Yes I tried flashing the bootloader and the firmware binaries using J-Flash, but no difference. I even tried reading the flash off an old revision working board and loading that to the new chip. The flashing is fine, and it can run the bootloader fine, just gets stuck on the firmware somewhere. My next step is doing the chip swap and trying one of our TM4C1294NCPDT chips that I know works, to see if it works on the new revision PCBs. I can easily reflash and use the old boards with all 3 versions of the bootloader/firmware that I mentioned, so that rules out a lot of problems right there. Thanks for the suggestions.

  • Ok so my guys swapped a working TM4C1294NCPDT on to our new boards, and it worked right away. I was able to erase it, and program bootloader and firmware with the same procedure and it worked again. I tried another new unit that I had not touched yet to confirm the problem and it shows the same behavior where bootloader works but firmware doesn't. There might be some problem with the batch of TM4C129CNCPDT that we sourced? I cannot say this for sure yet, since I don't have the source code for the XDS110 firmware. It is still strange that I can run the bootloader and "blinky" example code and everything appears to work. Is there a contact for someone who has seen the XDS110 firmware project? There might be an oversight that it doesn't handle on the TM4C129CNCPDT processor?

  • Hi Matt,

      - Can you take a picture of the device marking?

     - Can you tell me where you source these units from?

     - How many are not working?

     - In the very beginning of your post, you mentioned you originally built your board with TM4C129CNCPDT and later changed to TM4C1294NCPDT and with the newest build you change back to TM4C129CNCPDT? It this a correct understanding?

     - If the above is true, do you still have the old board with TM4C129CNCPDT? Can you swap that old TM4C129CNCPDT MCU to the new board and what will happen?

  • No, I was referring to the new revision boards we have that use the TM4C129CNCPDT. Our old working boards used the TM4C1294NCPDT. We must have sourced them differently for some reason for the new board revision and build. I will try to see where we sourced them from.

  • Hi Matt,

      Is the old board identical to the new board? What is the difference?

      I did a comparison between the two parts. Earlier I mentioned that there is virtually no difference between the two. After the comparison, TM4C1294NCPDT has extra Ethernet feature. The pinout of the two devices are different. Can you check how you are connecting to pin 51-59 of your board, perhaps all the pins.  I feel that it will provide some clues. 

  • Ahh, that must be the source of the problem. Thank you so much for the info, our hardware design team must have missed this when looking at the TM4C129CNCPDT. I marked that as resolved my issue!