Skip to main content
Associate
August 21, 2023
Question

JTAG Communication with STM32F103ZET6

  • August 21, 2023
  • 1 reply
  • 1990 views

I am currently conducting verification on a custom board implementing STM32F103ZET6. During this process, I have encountered an issue with JTAG communication. The debugger I am using is the STLINK-V3SET.

  1. Communication via SWD: Communication using the SWD (Serial Wire Debug) method, which shares the JTCK and JTMS pins with JTAG, is successful. I am able to program the MCU's firmware through CubeIDE using SWD.

  2. CubeIDE and CubeProgrammer: Both CubeIDE and CubeProgrammer work flawlessly with SWD. However, when I attempt to use JTAG with CubeIDE, I encounter the following error message:

    Board: STLINK-V3SET Voltage: 3.27V Error: No STM32 target found! If your product embeds Debug Authentication, please perform a discovery using Debug Authentication.

    I have changed the Debug Configuration settings to use JTAG as the interface while leaving the frequency as "Auto." Even when I manually set the frequency to 8,000 or other values, the issue persists. With CubeProgrammer and JTAG, I am able to access and program the device successfully.

    I suspect that understanding the root cause of this difference might lead to a solution. The only change I made in CubeProgrammer was switching the interface from SWD to JTAG. In this configuration, the Target Information correctly identifies the device as STM32F101/F103.

    Disconnecting JTDO from the STLINK-V3SET results in a loss of JTAG communication in CubeProgrammer as well. This suggests that CubeProgrammer is indeed communicating through JTAG and not in the background through SWD.

    I have tested with both CubeIDE versions 1.12.0 and 1.13.0, using 1.12.0 to match the environment with the software development team. CubeProgrammer is version 2.14.0.

  3. JTAG Peripheral Circuitry: The STM32F103ZET6 is configured according to RM0008 section 31.4.3, utilizing the internal Pullup/Pulldown resistors provided by the STM32. No external resistors are implemented. JTDO is left floating, but I have also attempted adding a 2k-ohm pull-up resistor to JTDO without resolving the issue.

Considering these circumstances, if you have any possible factors or additional analysis methods to suggest, please assist.

This topic has been closed for replies.

1 reply

R.AAuthor
Associate
August 24, 2023

I tried one thing. I used the same board, and I found that JTAG communication works with CubeIDE + STLINK-V2. From this, it appears that JTAG communication is not working when using CubeIDE + STLINK-V3. Is there anything you can speculate about this issue?