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.

TMDS243GPEVM: Debugger Issue

Part Number: TMDS243GPEVM

I am trying to load the "Hello World" example to a demo board. The XDS110 debugger connects to the core, however when I load the software, there is an error. In the same moment, the red LED LD22 switches on:

MAIN_Cortex_R5_0_0: Trouble Writing Memory Block at 0x0 on Page 0 of Length 0x40: (Error -1065 @ 0x40) Unable to access device memory. Verify that the memory address is in valid memory. If error persists, confirm configuration, power-cycle board, and/or try more reliable JTAG settings (e.g. lower TCLK). (Emulation package 9.5.0.00143)
MAIN_Cortex_R5_0_0: File Loader: Verification failed: Target failed to write 0x00000000
MAIN_Cortex_R5_0_0: GEL: File: C:\pro\1900\soft\00c\work\hello_world_am243x-evm_r5fss0-0_freertos_ti-arm-clang\Debug\hello_world_am243x-evm_r5fss0-0_freertos_ti-arm-clang.out: Load failed.

I have another TMDS243GPEVM, where the example works as expected. I verified the jumper settings are equal between the two boards. I also verified the 25 MHz clock, 3.3V, 1.8V, and core voltage are present.

I reduced the debugger clock to 1 MHz, but without success.

What could be the problem with the board?

  • Hi Frank,

    I already noticed on the working board that it works only if the XDS110 is connected after powering the board. I did it this way, but this one still has the same issue.

    best regards

    Alexander

  • Hi Alexander,

    LD22 is a status LED for the XDS110 emulator that lights up when the XDS110 is active.  This is expected behavior for when you try to program the device via the XDS110.

    Do you have an external JTAG emulator (such as an TMDSEMU110-U) that you can try using to program the board instead of the onboard XDS110?  This will help us identify if the issue is in the onboard XDS110 circuitry or with the device itself.

    Another test you can run in CCS with the onboard XDS110 would be to open the target configuration file for the XDS110 and select "Test Connection" to see if if you get any errors.  This will let us know if the onboard XDS is able to cycle data through the JTAG chain in the AM243x device.  If you run this test, please post back the full response you get on the "Test Connection" output so we can see what the result was.

    Thanks,
    Mike

  • Hi Mike,

    I have to connect with an external XDS560 debugger, but could not get it to work even with the working board. The result of the self-test was

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

    This utility has selected a 560/2xx-class product.
    This utility will load the program 'bh560v2u.out'.
    Loaded FPGA Image: C:\DevTools\TI\ccs1100\ccs\ccs_base\common\uscif\dtc_top.jbc
    The library build date was 'Oct 8 2021'.
    The library build time was '17:43:59'.
    The library package version is '9.5.0.00143'.
    The library component version is '35.35.0.0'.
    The controller does not use a programmable FPGA.

    An error occurred while hard opening the controller.

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

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

    The value is '-180' (0xffffff4c).
    The title is 'SC_ERR_CTL_NO_TRG_POWER'.

    The explanation is:
    The controller has detected a target power loss.
    The user must turn-on or connect the power supply for the target.

    [End: Blackhawk XDS560v2-USB System Trace Emulator_0]

    What did I miss?

    The output from "Test Connection" with the XDS110 and the broken board is below; it is exactly the same as with the "good" board.

    Best regards

    Alexander

    [Start: Texas Instruments XDS110 USB Debug Probe]
    
    Execute the command:
    
    %ccs_base%/common/uscif/dbgjtag -f %boarddatafile% -rv -o -S integrity
    
    [Result]
    
    
    -----[Print the board config pathname(s)]------------------------------------
    
    C:\Users\BAEHAL~1.LAN\AppData\Local\TEXASI~1\
        CCS\ccs1100\0\0\BrdDat\testBoard.dat
    
    -----[Print the reset-command software log-file]-----------------------------
    
    This utility has selected a 100- or 510-class product.
    This utility will load the adapter 'jioxds110.dll'.
    The library build date was 'Oct  8 2021'.
    The library build time was '13:26:36'.
    The library package version is '9.5.0.00143'.
    The library component version is '35.35.0.0'.
    The controller does not use a programmable FPGA.
    The controller has a version number of '5' (0x00000005).
    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]-----------------------------
    
    The scan-path will be reset by toggling the JTAG TRST signal.
    The controller is the XDS110 with USB interface.
    The link from controller to target is direct (without cable).
    The software is configured for XDS110 features.
    The controller cannot monitor the value on the EMU[0] pin.
    The controller cannot monitor the value on the EMU[1] pin.
    The controller cannot control the timing on output pins.
    The controller cannot control the timing on input pins.
    The scan-path link-delay has been set to exactly '0' (0x0000).
    
    -----[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 XDS110 USB Debug Probe]
    

  • Hi Mike,

    please see my offline mail.

    Regards Bernd

  • Hi Alexander,

    There is a silicon errata related to the JTAG that you might be running into here:  https://ti.com/lit/pdf/sprz457, i2228.  Unfortunately, the TMDS243GPEVM doesn't have a clean workaround implemented, the guidance to ensure the board is powered before connecting the XDS110 is intended to help mitigate this issue.

    Can you try unplugging and reconnecting the XDS110 USB cable AFTER a failed attempt, then retry?  That may get the TRSTn line to be held low for sufficient amount of time to meet the requirement in the errata.

    Another potential test, can you try manually pulling down the TRSTn signal before connecting the XDS110 (after applying power to the board).  You can do this shorting across R322, which is on the underside of the PCB near the location of the AM243 device.  This resistor is a 4.7k pull down on TRSTn.  I don't know for certain that this will correctly meet the errata work around requirements, but may be worth a shot.

    Thanks,
    Mike

  • Hi Mike,

    I re-plugged the USB many times without success. Also, short-circuiting R322 did not have any effect.

    BR 

    Alexander

  • Hi Alexander,

    Unfortunately, it seems that particular board is much more susceptible to the i2228 JTAG erratum.  Unfortunately, the EVM design was completed before the JTAG issue was found, so the EVM does not have an easy workaround implemented.  I'm checking with the team to see if there are any other alternative workarounds and will let you know if we come up with anything.

    Thanks,
    Mike

  • Hi Alexander,

    The team came back and said that you can try issuing a JTAG reset using the XDS110 reset utility can recover the board and allow JTAG connection.  You can access the JTAG reset utility here:  <ccs install path>\ccs\ccs_base\common\uscif\xds110\xds110reset.exe.

    Try this and see if that helps.

    Thanks,
    Mike

  • Hi Mike,

    no change in the result. 

    BR 

    Alexander

  • Hi Alexander,

    Are you running the XDS110 executable from windows or from the command line with the options as described in the TMDS243GPEVM User's Guide, section 4.1, workaround 2?

    Thanks,
    Mike

  • Hi Mike,

    I am using CCS11 with Windows 10,and the xds110reset utility from the command line.

    I verified with the command from the manual

    xds110reset.exe -a toggle

    xds110reset.exe -a toggle -d 100

    Same result.

    Please note that section 4.1 is about an error connecting to the XDS110 and SOC. In my case, as far as I understand, the XDS110 is fine; the error occurs when trying to load the out file. 

    BR 

    Alexander

  • Hi Alexander,

    Thanks again for your help and patience.  We are moving debug/support of this issue offline and will post on this thread again once we have a resolution.

    Thanks,
    Mike