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.

TM4C1299KCZAD: dead or locked, not programming, JTAG link ok

Part Number: TM4C1299KCZAD
Other Parts Discussed in Thread: UNIFLASH, SYSCONFIG

Hi,

I'm currently using a TM4C1299KCZAD in my project, and I was able to successfuly program the microcontroller and run the PWM led example from TIREx after modifying it to the this part number, but after I programmed with the source of my own project, I could not establish connection to target anymore. I've read JTAG pins may be unintendedly be asserted during program run and JTAG interface is no longer accessible. So I experimented to hold reset and power up the microcontroler with reset remaining held low, and then I performed the JTAG connection Test and it was ok, here is the log:

-----[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 'Jan 31 2021'.
The library build time was '19:18:41'.
The library package version is '9.3.0.00042'.
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]

if I perform this test with the reset held high, this test fails.

-----[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 'Jan 31 2021'.
The library build time was '19:18:41'.
The library package version is '9.3.0.00042'.
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.

-----[An error has occurred and this utility has aborted]--------------------

This error is generated by TI's USCIF driver or utilities.

The value is '-233' (0xffffff17).
The title is 'SC_ERR_PATH_BROKEN'.

The explanation is:
The JTAG IR and DR scan-paths cannot circulate bits, they may be broken.
An attempt to scan the JTAG scan-path has failed.
The target's JTAG scan-path appears to be broken
with a stuck-at-ones or stuck-at-zero fault.

[End: Texas Instruments XDS2xx USB Debug Probe]

 

Is it correct to assume that the microcontroller is locked? I've also done this test for diferent  JTAG clock configuration.

I've also tried using "SW mode" and tested the connection again:


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

This emulator does not create a reset log-file.

-----[Perform the SWD Mode Integrity test]-----------------------------------

This test will read the IDCODE register 1 time.

The IDCODE register value is 0x2ba01477.

The SWD Mode Integrity test has succeeded.

[End: Texas Instruments XDS2xx USB Debug Probe]

I notice that the IDCODE is diferent from the datasheet: 0x4BA00477 (page 221 in TM4C1299KCZAD datasheet)

I've seen the in other threads in this forum,

e2e.ti.com/.../tm4c1294ncpdt-debug-port-unlock-using-uniflash

that uniflash is used to unlock the microcontroller, but this option does not appear in my version of uniflash (version 6.2.0.3059).

Regards,

Nuno Ramos

  • I forgot to mention that when I run the debugger this message appears:

    Error connecting to the target:
    (Error -1170 @ 0x0)
    Unable to access the DAP. Reset the device, and retry the operation. If error persists, confirm configuration, power-cycle the board, and/or try more reliable JTAG settings (e.g. lower TCLK).
    (Emulation package 9.3.0.00042)

  • Hi,

       Normally the device is locked because you 1. repurpose the JTAG pins for GPIO, 2) you intentionally disable JTAG via BOOTCFG register or 3) you disable all clocks in low power mode like deep sleep or hibernate mode without a mechanism to wakeup again. The debugger in this case can no longer synchronize with the target since the target has clocks.  Please read section 5.3.2 of this app note to unlock the device. https://www.ti.com/lit/an/spma075/spma075.pdf

      Depending on where you install CCS, you can find dbgjtag command at the below location. 

  • Hi Charles,

    the controller was indeed locked! I used this procedure and it worked, I am able to program the target once again.

    The trouble was a wrong configuration using SysConfig, where I inadvertently setup the JTAG pins as GPIOs...

    Many Thanks!