CX3 Bad JTAG communication SEGGER JLink

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
ViDe_4575507
Level 1
Level 1

Hello dear Cypress community,

I'm currently trying to use a JTAG SEGGER J link probe to debug the CX3RDK_OV5640 firmware. I have the known error of bad JTAG communication while passing over the CyU3PDeviceInit(NULL) :

ERROR: Bad JTAG communication: Write to IR: Expected 0x1, got 0x3 (TAP Command : 15) @ Off 0x1053.

pastedImage_0.png

I have found the fix topic ​and followed the recommended configuration to change the CPU clock : pastedImage_1.png

But unfortunately, even with this correction I'm still getting the same error message in the end :

ERROR: Bad JTAG communication: Write to IR: Expected 0x1, got 0x3 (TAP Command : 15) @ Off 0x1053.

I tried both CPU clock configurations (0x00080014 and 0x00080015) and it still results with the same error message.
Am i missing something in the configuration steps ?

Thank you in advance for helping me solving this bug.

Best regards,
Vivien

0 Likes
1 Solution
JayakrishnaT_76
Moderator
Moderator
Moderator
First question asked 1000 replies posted 750 replies posted

Hello,

Please share the following information:

1. Screenshot of Main, Debugger and Startup Tabs of the Debug Configurations.

2. Where exactly the communication is breaking? Is it at CyU3PDeviceInit(NULL); call or is it anywhere else?

You can also try doing the following:

1. Put a break point at application define function (CyFxApplicationDefine)

2. Otherone at Thread_Entry function (for example - UVCAppThread_Entry in UVC An75779 firmware )

Best Regards,

Jayakrishna

Best Regards,
Jayakrishna

View solution in original post

0 Likes
3 Replies
JayakrishnaT_76
Moderator
Moderator
Moderator
First question asked 1000 replies posted 750 replies posted

Hello,

Please share the following information:

1. Screenshot of Main, Debugger and Startup Tabs of the Debug Configurations.

2. Where exactly the communication is breaking? Is it at CyU3PDeviceInit(NULL); call or is it anywhere else?

You can also try doing the following:

1. Put a break point at application define function (CyFxApplicationDefine)

2. Otherone at Thread_Entry function (for example - UVCAppThread_Entry in UVC An75779 firmware )

Best Regards,

Jayakrishna

Best Regards,
Jayakrishna
0 Likes

Hello Jayakrishna,

Thank you a lot for your answer.
Adding the breakpoints as you recommended has solved the problem. I'm now able to use the JTAG correctly and run the program step by step.

Why adding theses breakpoints enable the debug mode to run correctly please ? I don't really get it.

0 Likes

Hello,

As mentioned in the following thread,

FX3 JTAG SEGGER

CyU3PKernelEntry () is a non return call, you are not supposed to do Step into it. After setting the above breakpoints, if stepover is done at kernelentry, it will take you to Application Define. Then it will take you to Thread_Entry.

Best Regards,

Jayakrishna

Best Regards,
Jayakrishna