Skip to content

Recovering a locked TM4C

Peter Wittich edited this page Sep 25, 2019 · 18 revisions

The TM4C Tina microcontroller on the CM can lock up under certain circumstances, in such a way that the JTAG interface is no longer accessible for anything except the most basic boundary scan. You cannot use this to reload the board, for instance, nor can you debug the application. It’s not exactly clear to me how one gets into this situation, but it has happened numerous times.

One can recover the board with the SEGGER JTAG programmer with the following steps. This assumes you are using a mated SM+CM.

  1. Ensure that the SM does not automatically power on the CM. (As of 9/2019 this is the default behavior.) This means that the MCU is held in reset since power-on.
  2. Connect the segger to the front panel JTAG connector.
  3. Open the JLinkExe program.
  4. Type unlock LMS3xxx 1. Don’t yet power cycle.
  5. Repeat previous step.
  6. Take the MCU out of reset by asking the Zynq to power on the CM. This will likely fail because you’ve just wiped the FLASH on the MCU.
  7. Turn off the power on the Apollo

At this point the board should be recovered.

What about the JTAG jumpers?

When the MCU is really hosed the FPGAs have no power, and as such they won’t even respond to the JTAG boundary scan instruction. At this point I think you need to set the jumpers to take the FPGAs out of the chain.