Skip to main content
Visitor II
December 18, 2023
Solved

STM32H7

  • December 18, 2023
  • 2 replies
  • 1494 views

STM32H7A3ZIT6Q

I have a firmware that receives data via UART and responds accordingly at an external side, using a Timer interrupt. When the JTAG is connected, the program works as expected, with all commands being responded to. However, when the JTAG is disconnected, the microcontroller fails to respond consistently or with high frequency. This indicates a possible issue related to the presence of the JTAG interface.

I currently do not use WFI() or WFE() in my code, so I assume it won't enter sleep mode. However, I am not entirely sure about this. I am curious to know why the behavior of the system differs when JTAG is connected versus when it is not. I wonder how to approach this situation and what specific aspects I should examine to understand this discrepancy, and How do I prevent this unexpected behavior.

    This topic has been closed for replies.
    Best answer by TDK

    It's probably a program bug not related to JTAG. Even if it's plugged in, the JTAG interface shouldn't be active unless you're using it for debugging or programming. By "JTAG is connected" do you mean it's physically plugged in but not being used?

    2 replies

    TDKAnswer
    Super User
    December 18, 2023

    It's probably a program bug not related to JTAG. Even if it's plugged in, the JTAG interface shouldn't be active unless you're using it for debugging or programming. By "JTAG is connected" do you mean it's physically plugged in but not being used?

    khkimAuthor
    Visitor II
    December 19, 2023

    Thank you for your commnets.

    I found that the issue was caused by the status of the Ground connection. I guess that if I connect the JTAG to the board, the ground connection will become stronger than before.
    The issue was disappeared when I improved the ground connection.

    Technical Moderator
    December 18, 2023

    Hello @khkim 

    In a such situation you need to either debug the app (see registers content flags etc ..) or go step by step adding blocks to your application and the patience is your friend.

    May be you need to start from scratch and each time you need to a add a block until you fall into the behavior and catch the stuff causing it..