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.

TM4C123GH6PM: Using Tiva TM4C124G launchpad as programmer

Part Number: TM4C123GH6PM
Other Parts Discussed in Thread: UNIFLASH, EK-TM4C123GXL

Hi, I have an application done on Keil uVision for a Tiva TMC4123G launchpad. I would like to upload the program to a custom board using a TM4C123GH6PM. I found this datasheet  http://www.ti.com/lit/an/spma075/spma075.pdf "UsingTM4C12xDevicesOverJTAGInterface" pg. 15. My question is  it possible to upload the program using Keil or I should use Code Composer instead? Another question I have is about the external 16MHz

since I'm using the internal clock PIOSC in my program then I could leave the MOSC pins floating correct? I also found a reference design that shows how to properly add pull up resistors for some of the JTAG pins. 

https://e2e.ti.com/support/microcontrollers/other/f/908/t/325440?custom-board-jtag-programming      . Last question is if I place back the 1x2 header between pins H24 and H25 I can still use the main MCU from the launchpad once I'm done uploading the program to the custom board correct? I know my questions are silly but I would greatly appreciate any suggestions and if there any extra recommendations I should follow to upload my program to the custom board. Thanks.

  • Giorgio Mendoza said:
    is  it possible to upload the program using Keil or I should use Code Composer instead?

    I don't use the Keil IDE, but I expect that if it works with the Launchpad, it should also work with a Launchpad used as the JTAG interface to a TM4C123GH6PM part.

    Giorgio Mendoza said:
    since I'm using the internal clock PIOSC in my program then I could leave the MOSC pins floating correct?

    Definitely leave OSC1 unconnected. You may want to tie OSC0 to ground or through a pulldown to reduce current consumed by a floating input.

    Giorgio Mendoza said:
    if I place back the 1x2 header between pins H24 and H25 I can still use the main MCU from the launchpad once I'm done uploading the program to the custom board correct?

    Yes

  • Thanks for your answer Bob, I tried using the following steps from the Datasheet "using tm4c12x as jtag interface"

    1. Ensure that header pin EXTDBG is unconnected
    2. Connect the header pin GND from EK-TM4C123GXL to GND on the external board
    3. Connect the header pin TCK from EK-TM4C123GXL to TCK on the off-board TM4C12x
    4. Connect the header pin TMS from EK-TM4C123GXL to TNS on the off-board TM4C12x
    5. Connect the header pin TDI from EK-TM4C123GXL to TDI on the off-board TM4C12x
    6. Connect the header pin TDO from EK-TM4C123GXL to TDO on the off-board TM4C12x
    7. Connect the header pin RST_N from EK-TM4C123GXL to RST_N on the off-board TM4C12x
    8. Make sure that the power selector is moved to DEBUG side
    9. Connect the USB cable on the USB debug connector

    If I remove the 1x2 header I get the error " JTAG not found" when I try to download the program to the breakout board. This also happened in this similar post         

    www.keil.com/.../

    It seems like the user uploaded a HEX file from keil to his breakout board using UNIFLASH. I will try that option and see what happens. I have some additional questions. Is it necessary to add the pull up resistors for TCK, TMS, TDO and TDI as in the design image I previously posted as well as connecting RX0 and TX0? The datasheet doesn't mention any of that. Thanks again.

                

  • Did you check the level of RST_N? I know the application note shows it connected to the Launchpad, but that is not necessary for programming. (It just gives you a button to use to reset your part.) The issue is that signal also goes to the on board chip. With the H24-H25 jumper removed, the on board chip is powered off and it will pull down the level of the RST_N signal. Unless you have a strong pull-up on your board, the level may be too low keeping your part in reset. The scan path will work, but the JTAG will not be able to connect to the CPU.

    The pull-ups on TMS, TCK and TDI are a good design practice as they keep you from getting arbitrary inputs into your device when the JTAG is not connected. The pull-down on TDO is not as important, but makes for cleaner scope or logic analyzer pictures as TDO is not always driven. It is not necessary to connect RX0 or TX0 for device programming or debug. These are for the virtual serial port.
  • I disconnected RST and still didn't work. I've noticed the status of the programmer on Uniflash says connected when the jumper is on but as soon as I remove the jumper the status changes to disconnected. When I remove the header all this happens.The level of TDO and TDI change to 0V. TCK changes to 1.3V, RST changes to 2.3V. Only EXT stays at 3.1V. Also the pin at the left of TCK shows 1.4V (I think is R39 or R17) Is this behavior normal or it might be a damage board?

  • With the H24-H25 jumper removed, and nothing connected to the external JTAG pins, they should be in the following state:

    TCK   - high

    TMS  - high

    TDO - Don't care (floating input)

    TDI  - high

    EXT DBG - high

    RESET - high

    The levels you reported suggest that the EK-TM4C123GXL board is damaged.