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.

TM4C1294KCPDT: Programming a TM4C using XDS110

Part Number: TM4C1294KCPDT
Other Parts Discussed in Thread: UNIFLASH

Hi,

Can you tell me if it is possible to programme a TM4C129 using the programming interface on a TMS570LS12 launchpad board (XDS110)? If so what do I need to do? Is there a document describing how to programme external micros using the launchpad?

Thanks

Andy

  • Hello Andy,

    I have not tried to do that before but in principle if you are able to detach the connections to the TMS570 device and treat the LaunchPad's XDS110 interface like a JTAG programmer to make the appropriate connections then I would imagine it would work fine. But I have no documentation or guide to offer you.

    You may want to make a thread for your specific LaunchPad to request information about how to isolate the XDS110 - I am only an expert with TM4C devices so I cannot comment on the way that LaunchPad is setup and if its possible to isolate the XDS110.

    Our JTAG user's guide shows how to connect debug probes to the TM4C if you need to see the connections required - usually I would imagine the pull-up/pull-down resistors are part of the XDS110 schematic on the TMS570 LaunchPad: https://www.ti.com/lit/pdf/spma075

    Best Regards,

    Ralph Jacobi

  • Hi Ralph,

    I decided to abandon that approach and use a TM4C123 launchpad board instead, as there is a description of how to do it in chapter 4.5 of spma075. I wired the custom board exactly as described, set CCS settings to Stellaris interface and the target as Tiva TM4C1294KCPDT, which is the specific variant we are using and tried to run debug. I got an error message saying "CORTEX_M4_0: Error connecting to the target".

    That's all the clues I have. Any ideas on what is going wrong?

    Regards

    Andy

  • Hello Andy,

    Have you been able to debug that device / board with a standard debugger before or are you trying to connect to it for the first time?

    Best Regards,

    Ralph Jacobi

  • Hi Ralph,

    this is the first time this custom board has been powered up. The code has been developed and tested on a TM4C129 launchpad. The code was migrated from the TM4C123 to the C129, so the C123 launchpad is spare.

  • Hello Andy,

    Since this is a port, what is your clock configuration code?

    Do you have a 4.7kOhm or 4.87kOhm on the RBIAS pin for the TM4C1294KCPDT?

    Best Regards,

    Ralph Jacobi

  • Hi Ralph,

    I assumed that pin was something to do with Ethernet, so it has been left floating.

    Regards

    Andy

  • Hi Andy,

    It does and the device has an Ethernet boot loader in ROM code so Errata ETH#03 exists: https://www.ti.com/lit/pdf/spmz850

    Check to see if that's applicable for your board, if so, that's likely the root cause here.

    Best Regards,

    Ralph Jacobi.

  • Hi Ralph,

    I have tacked resistors totally 4k88 to pin 59 but unfortunately it hasn't made a difference.

    Regards

    Andy

  • Hi Ralph,

    is there anything I can do to diagnose this problem? I have reached a dead-end.

    Regards

    Andy

  • Hi Andy,

    Sorry for my slower replies here - I do want to follow up on what clock configuration settings you used? There are different APIs for TM4C123x and TM4C129x for the system clock and if you use the wrong it will lock up the device.

    One thing you can try once you know that you have the right clock settings is to unlock the device - you'd do this with LM Flash Programmer in this case as you can select the LaunchPad you are using the ICDI interface with and then go to the Other Utilities tab:

    Best Regards,

    Ralph Jacobi

  • Hi Ralph,

    I don't know if this is right...

        ClockFreq = SysCtlClockFreqSet(( SYSCTL_XTAL_25MHZ | SYSCTL_USE_PLL | SYSCTL_CFG_VCO_480 ), 120000000 );

    Regards

    Andy

  • Hi Andy,

    I think you are missing the SYSCTL_OSC_MAIN argument. Not 100% sure this would cause a lock up but it is a deviation from our normal call:

        g_ui32SysClock = SysCtlClockFreqSet((SYSCTL_XTAL_25MHZ |
                                             SYSCTL_OSC_MAIN |
                                             SYSCTL_USE_PLL |
                                             SYSCTL_CFG_VCO_480), 120000000);

    I would suggest doing a device unlock and then update your clock code to add SYSCTL_OSC_MAIN as well and see if that gets it up and running.

    Best Regards,

    Ralph Jacobi

  • Hi Ralph,

    unfortunately LM flash programmer also fails. It simply reports that it cannot unlock the device.

  • Hi Andy,

    I think the MCU pin TDO will toggle if there is some kind of JTAG issue or error. Perhaps Ralph can comment further on TDO pin behavior. 

    4.3.1.4 Note: If the device fails initialization during reset, the hardware toggles the TDO output as an indication of failure. Thus, during board layout, designers should not designate the TDO pin as a GPIO in sensitive applications where the possibility of toggling could affect the design.

  • Hi Andy,

    I may have lead you a little estray here with LM Flash Programmer - you are connecting over XDS110 right?

    If so you'd need to use CCS Uniflash then as LM Flash doesn't support XDS110.

    Specifically you will want to use Command Line to do this because last I checked the built in Unlock in Uniflash is still bugged.

    Read Section 5.3.2 Unlock Sequence Using Uniflash and XDS Debug Probes of our JTAG user's guide for details on how to do this: https://www.ti.com/lit/pdf/spma075

    If that fails too then I agree with Gl's suggestion to check TDO for toggling.

    Best Regards,

    Ralph Jacobi