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.

F28M36P63C2: Connection problem to C28x via JTAG

Part Number: F28M36P63C2
Other Parts Discussed in Thread: UNIFLASH, C2000WARE,

Hi,

I'm using my F28M36P6 card via a docking station. However, I can't load the code to the card via JTAG. When I connect to the card via USB (XDS100 v2), there are no problems; I can connect to both CPUs (M3 and C28) and upload code to flash. However, when I try to load code using the JTAG pins on the docking station with an XDS220, I can only connect to the M3 chip, not the C28. The error code I receive is as follows:

"Error connecting to the target: (Error -1015 @ 0x0) Device is not responding to the request. Device may be locked, or the debug probe connection may be unreliable. Unlock the device if possible (e.g., use wait in reset mode and power-cycle the board). If the error persists, confirm the configuration and/or try more reliable JTAG settings (e.g., lower TCLK). (Emulation package 20.4.0.3835)"

(I'm paying attention to A:SW1 pin configuration for JTAG connection, but i think this error is not about that)

Then, I tried connecting via UniFLASH and viewing the data packets in memory. When I connected with the XDS100 v2, I could connect to both processors and view their memory. However, I couldn't connect to the C28x via JTAG (XDS2xx) and received the same error code.

Then I tried this: I connected to the board with the XDS100 v2 and unlocked the CSM PSWDs/KEYs option in the C28x settings. After that, I erased the flash memory. I tried connecting again via JTAG, but it still didn't work.

By the way, when I click the test connection button in the .ccxml file in CCS, both CPUs connect successfully. However, when I try to upload a program to the C28x, I get the same error again.

Additionally, I reduced the connection settings from 10.0 MHz to 50 KHz, but I still get the same error.

To sum up, i dont think that C28x is broken because i can connect and load program via XDS100v2 (Internal emulator on the board). But, i cannot connect and load program via JTAG (XDS220 ISO, External emulator) and got the error above.

Could you please help?

Thank you,

Sincerely

  • Hello,

    When I connected with the XDS100 v2, I could connect to both processors and view their memory.

    Thank you for sharing this observation. This rules out the CSM as a possible interference to the debugger access.

    (I'm paying attention to A:SW1 pin configuration for JTAG connection, but i think this error is not about that)

    As long as A:SW1 position 1 is OFF (down), the control card should be configured correctly for an external debug probe.

    To sum up, i dont think that C28x is broken

    Do you have another external debug probe to test? This can help determine if the XDS220 is not working.

    Best,
    Matt

  • The reason I haven't tested with another debugger is that I can successfully load program to another model (F28379D) with the same debugger.

    Should I still try another debugger to load program to F28M36P ?

    Thanks

  • Hello,

    That is good to know. Please try using another debug probe to see if it could be an issue with the docking station / external JTAG hook ups.

    Can you probe EMU0/EMU1 at the local C2000 pin and note the value when you are trying to connect, or even just when the board is powered with no JTAG connected?

    It can also be difficult to connect to the MCU via JTAG when using the Boot-to-Flash boot mode if no code is already loaded into the device. It is recommended to use Boot-from-Ethernet boot mode (or other boot mode) until valid code is loaded into FLASH.

    Best,
    Matt

  • Hello,


    I performed tests in several scenarios. My tests were as follows:
    First, I changed the debugger and tried to connect, but it failed and gave the same error.
    Then, without a JTAG connection, I measured EMU0=3.28V and EMU1=3.28V.
    Later, while debugging, I wanted to directly measure the C2000 P1 and P2 (EMU1 and EMU0) pins. After connecting the JTAG, I measured and EMU1=0 and EMU0=78mV.

    In this case, I successfully connected to both CPUs and was able to upload code; somehow, that's how it happened. Then, I wanted to see if there would be any problems when I cut and re-energized the power, and there were no problems. After that, I disconnected and reconnected the JTAG connection; in this case, EMU0=78mV and EMU1=78mV, and I couldn't connect to the C28x and received the same error. When EMU1 is at 78mV, it becomes very difficult to return to 0V.

    In short, I can connect when EMU1=0 volts, but not in other scenarios. I then tried another docking station, tried the previous debugger, tried another F28M36P board. Somehow, I can connect when EMU1=0V. Then, after installing a different JTAG header, it goes back to 78mV and I get the same error again.

    To sum up, the system is working unstably. The EMU1 pin seems to have difficulty dropping from 3.3V to 0V when the JTAG connector is plugged in.
    There might be a driver conflict issue, or maybe, the pull-up not working correctly, and maybe it is about boot-mode (not sure for this option).

  • Hello,

    Apologies, I was traveling for business and didn't have time to assist on E2E. I will look at this thread tomorrow.

    Best,

    Matt

  • Hello,

    How are you configuring EMU0 and EMU1 in the target configuration file?

    Best,
    Matt

  • Hello,

    Here is the target configurations;

    Should it be Enabled- EMU1 is low, EMU0 is high ?

    Best,

    Ibrahim

  • Hello,

    Please try putting the device in Wait-In-Reset (WIR) mode. This is primarily used to hold the master and control subsystem CPU cores in a known active state prior to initiating a flash programming procedure. This is especially important on "fresh" devices where the flash is not programmed. This mode is also important in avoiding accidently tripping security mechanisms before the debugger has had a chance to connect to the CPUs.

    Generally, we want to see both as high/VDDIO level when trying to connect (for normal operation). 

    Best,
    Matt

  • Hello,

    I tried WIR mode but it didn't solve the problem. I manually forced the EMU0 and EMU1 pins into WIR mode, but it still didn't work. (Honestly, I'm not sure if it actually entered WIR mode, because when I measured the both EMU0-1 pins I was still seeing 78mV).

    Then, I tried another F28m36p board into the docking station, which I had somehow managed to get working in my previous tests, and this board worked. On this board, I observed that EMU1=0V and EMU0=3.28V when the JTAG wasn't attached, and EMU1=0V and EMU0=78mV when the JTAG was attached. In this scenario, I can establish a connection and upload code. However, I don't know how I pulled EMU1 to 0V, and I think if I can do the same thing for the other board, I can establish a connection with it as well.

    Best,

    Ibrahim

  • Hello,

    I am out of office until Tuesday (3/10), please expect a delay in assistance until then.

    Best,
    Matt

  • Hello,

    Then, I tried another F28m36p board into the docking station, which I had somehow managed to get working in my previous tests, and this board worked. On this board, I observed that EMU1=0V and EMU0=3.28V when the JTAG wasn't attached, and EMU1=0V and EMU0=78mV when the JTAG was attached.

    That is unusual. EMU0 and EMU1 should both be pulled up to 3v3 when JTAG is not attached (see schematic in C2000Ware here: C2000Ware_6_01_00_00\boards\controlCARDs\TMDSCNCD28M36\R1_1\F28M36x_180controlCARD_R1.1_SCH.pdf).

    Can you also confirm the state of TRSTn when attempting to connect?

    Best,
    Matt

  • Hi,

    On this board, I observed that EMU1=0V and EMU0=3.28V when the JTAG wasn't attached,

    I found out that the reason I was seeing EMU1=0v on this board was because the EMU1 pin on that docking station was bent, causing a poor connection and resulting in a 0V reading. Now I've tried it on another docking station; here, without JTAG connected, EMU0-1 = 3.28V and TRST = 0V. When I connect JTAG, EMU0-1 = 78mV and TRST = 3.17V. I'm still getting the same error and can't connect. 

    When I examined the schematic of the F28379 board (which works fine with JTAG connection), I saw that it uses a 4.7k pull-up resistor, and when I measured EMU0-1, it came out at 70mV. On the F28M36P, these resistors are 4.99k, and EMU0-1 comes out at 78mV. Could it be that the card isn't detecting the 78mV low and therefore isn't waking up the C28x? Should I replace these resistors with 4.7k resistors?

    Best,
    Ibrahim

  • Hello,

    That difference in resistance shouldn't make too much of a difference. Moreover, 78mV should read as a '0' when the device polls the pins.

    Can you try bending the EMU0 and EMU1 pins so they aren't in contact with the debug probe and see if you can connect? This can help rule out EMU0/EMU1 interference.

    Best,
    Matt

  • Hello,

    Bending the EMU0-1 pins of the XDS220 JTAG connector didn't change the result. Because, the pin voltages remained at 78mV after the card was attached to the docking station.

    Therefore, I isolated pins 1 and 2 on the card so they wouldn't touch the related pins of docking station. In this case, the EMU0-1 pins measured 0V. As a result, I can connect to the card and program both CPUs. Is there any disadvantage to isolating pins 1 and 2 on the card? Can i use the board like this?

    Best,

    Ibrahim


  • Hello,

    The points to the XDS220 misusing the EMU0/1 pins and preventing proper JTAG connectivity. This especially seems like the case since F2837x devices don't use the EMU0/1 pins (unlike the F28M36x), which is why you were able to connect with the XDS220.

    Given the XDS220 is an old/deprecated debugger, do you have access to another newer probe (such as the XDS110)? Let me also loop in the CCS team to help understand XDS220 support.

    Best,
    Matt

  • I'm using my F28M36P6 card via a docking station. However, I can't load the code to the card via JTAG. When I connect to the card via USB (XDS100 v2), there are no problems; I can connect to both CPUs (M3 and C28) and upload code to flash. However, when I try to load code using the JTAG pins on the docking station with an XDS220, I can only connect to the M3 chip, not the C28.

    I tried the same configuration with CCS 20.5.0. I put my F28M36P63C2 ControlCard in the dock as below:

    https://dev.ti.com/tirex/explore/node?node=A__ALNQN8Nq3Ham8lCIP1.kzA__c2000ware_devtools_package__FUz-xrs__LATEST

    Then I attached my Spectrum Digital XDS220 to the 14-pin JTAG header on the doc (J2) via a 20-14 adapter. Then I changes SW1 to have JTAG ISO off.

    I was able connect and load to both cores without issue.

    What version of CCS are you using?

    Thanks

    ki

  • Hello,
    Unfortunately, I don't have access to another debugger. I'm using the XDS220 because it has an Ethernet interface. However, I noticed something when I tried to update the XDS220 drivers: even though I want to upload the XDS220 files, the product name remains as XDS200. Could this be the reason why the error message says "debug probe connection may be unreliable" ?

    Best,

  • Hello,

    I can connect by isolating the EMU0-1 pins on the board, and this only works for the F28M36P board. If isolating these pins doesn't pose any problem, I'll proceed this way.

    The version of CCS I'm using is 20.4.

    Best,

  • the product name remains as XDS200

    The XDS220 is basically an ethernet enabled XDS200.

  • If isolating these pins doesn't pose any problem, I'll proceed this way.

    Those pins are sometimes used for advanced debug functionality like global breakpoints for multi-core devices. The impact can vary depending on the device and environment. But basic debug should be available.

  • Hello,

    Okey, thanks a lot.

    Best