Skip to main content
Visitor II
July 15, 2024
Question

STM32H747(XI) JTAG Sensing

  • July 15, 2024
  • 4 replies
  • 5109 views

We have a new board that uses the STM32H747 MCU and is based on an existing, proven design.

Despite being schematically identical, the MCU on the new board cannot be detected by the STLINK-V3SET programmer and STM32Cube software. For whatever reason, when connected it delivers 5V to the TVAPP pin and says "cannot find target MCU".

 

  • The voltages, connections and passives are identical between the working reference design and our new design.
  • The programmer works on the reference board before and after trying our new board.
  • The programmer works on the reference board even with the TVAPP wire cut. (The MCU is powered by 3.1V supply and the TVAPP is connected to another part of the PMIC that delivers 3.3V to other peripherals.) Again, this works perfectly on the reference design board.
  • With or without the TVAPP pin connected to the reference board, the programmer never delivers any voltage to the TVAPP pin on the reference board.
  • We have checked all of the connections and voltage and aside from a little different PCB layout, our PCB and schematic is identical to a reference design that works perfectly with the same programmer hardware and software.

Can someone please help ASAP to explain how the voltage and MCU sensing/detection works so that we can do some debugging? It is not over the TVAPP pin as mentioned in the user manual, because it works on our reference design whether it is connected or not.

I would like to know what the programmer is seeing or measuring that is different so that we can troubleshoot and find a solution.

I have checked the voltages and resistances to ground and they are identical.

We do have a small mezzanine connector and adaptor board for the JTAG, perhaps the JTAG is extremely sensitive...?

 

Can someone please let me know how the programmer detects the MCU and decides when and what voltage to deliver?

 

Also any tips on how to trouble-shoot further would be extremely appreciated.

 

Thanks!

    This topic has been closed for replies.

    4 replies

    Super User
    July 15, 2024

    What is the TVAPP app pin? This doesn't appear in the V3SET user manual. Did you mean T_VCC? Assuming so:

    If it's delivering 5V to the programmer, you have a hardware problem. That pin should be tied to VCC you're using on the MCU. If it's 5V, that explains why the chip isn't responding as voltage should be under 3.6V.

    As for how to debug, bunch of ways, here is one:

    • Unsolder the STM32 chip. Check VCC. Is it still 5V? Problem lies elsewhere. (if not, then check that the STM32 is correctly oriented with no solder bridges).
    • Trace upstream of VCC and find out where/why the voltage goes from correct to incorrect. Verify the chip responsible is doing its job. Presumably there's an LDO taking 5V and outputting VCC, or something similar.
    Visitor II
    July 15, 2024

    HiTDK thanks for the reply.

     

    The 5V is coming from the programmer, not the board. Even when i cut the programmer wire pin 1 of the ribbon cable, before connecting it to the board, the programmer has 5v on that pin/wire. It also only shows up when the programmer is connected then the board is powered up.

     

    Somehow the programmer is detecting something and deciding that instead of not providing power at all (like it does on the reference board), it needs to provide 5v but also not see the mcu.

    Visitor II
    July 15, 2024

    Are you referencing the SWD connector or an ARM JTAG connector (20pin)?

    What is pin 1?
    On STM SWD debug connector it is not connected. On an ARM 20pin JTAG adapter it is VDD.

    Actually, the debugger ST-LINK (and even for 20pin ARM JTAG connector) does not provide the power for the board. Instead, these VDD pins are used to sense the power on the board. A debugger will not power the board, it wants to see the VDD power at the board via an input pin on debugger.

    It sounds to me as well: you provide MCU VDD (and on board) as 5V (not 3.3V).

    What is your schematics, pinout for the debugger connection?

    STM32U5A5_ST-Link_Connector.png

    Here my SWD connector for an ST-LINK debugger.
    The VDD is not provided by ST-LINK: it is a sense signal ("what is target VDD?") as well as the 100R to GND: "is there a connection?".

    Bear in mind, that some SWD connectors on other boards (e.g. Portenta H7) can be a bit larger, for instances see here:

    https://electronics.stackexchange.com/questions/595103/stdc14-connector-pinout-for-st-link-v3-for-swd-debugging

    Find really the important signals, e.g. SWDIO and the VDD (3.3V) opposite to it. Do not rely on "pin 1", esp. if your connector is a bit larger as "usual", e.g. on Portenta H7:

    P7_Debugger.png

     

    Super User
    July 15, 2024

    Pin 1 of what connector?

    Again, "TVAPP" doesn't appear in the user manual or the pinout. Did you mean T_VCC? Or where did you find the pin name TVAPP?

    TDK_0-1721086610443.png

     

    Graduate II
    July 19, 2024

    The ST-LINK/V3SET shouldn't be outputting 5V, are you sure the ground are commoned? It's like you're measuring unrelated supplies. You could perhaps find 5V at the USB connection, but it shouldn't interface to anything other than a regulator. The board's not on a conductive surface?

    Show a picture of what you have connected to what, ideally showing you probing the pin with 5V on a multimeter.

    It is much more probable that the 5V comes from your board. The ST-LINK doesn't negotiate voltages, you present VTarget so the ST-LINK can buffer IO to the Target at it's voltage.

    Check the H747 orientation.

    Check you can see 1.25V at the VCAP pin(s) / capacitors.

    Check NRST voltage level

    Visitor II
    July 20, 2024

    Hi Tesla, thanks for your input and suggestions.

     

     To answer your am questions:

     

    - Yes the 3 GND pins are all commoned on the board and connected to board GND.

     

    - Nope the board was on a non-conductive surface but that’s definitely good to watch out for!

     

    -With my board powered up and jtag connector connected to the programmer and VDD wire cut, the NRST pin is 3v1, so is the TMS pin, in relation to board GND. Rest are 0v.

     

    - I did check mcu orientation on the pcb and double checked all the ball nets in case they were mirrored or rotated or somehow wrong.

     

    -VCAP has 1.22V when the board is powered up

     

    What I found a little surprising with the H7 design, which seems to work of course, is that with the VDD pin at 0v and even the VDD wire physically cut, the programmer sees the MCU and connects to the Cube software and programs.

     

    I’m out of the lab at the moment but can upload some details tomorrow.

     

    The 5v is not very spectacular. It’s the programmer connected to my board with the VDD wire of the ribbon cable cut in the middle. Multimeter on the side of the VDD wire that leads to the programmer, showing 5.12V.

     

    I even checked my VBUS in (power level at the connector where power enters the board) and it’s only 4.95. So, the 5.12V on the VDD wire is coming through the programmer, probably through its usb input/cable.

    Graduate II
    July 20, 2024

    I believe you, but the ST-LINK/V3SET should NOT be outputting 5V on the SWD/JTAG side.

    Some of the older SEGGER/J-LINK provided 5V via pin 19 of the standard 0.1" pitch 20-pin connector

    https://www.segger.com/products/debug-probes/j-link/technology/interface-description/#jtag-interface-connection-20-pin

    You still haven't explained where this "TVAPP" designation is coming from, it's not usual nomenclature.

    Can you show a picture of the ST-LINK unit that you are using?

     

    Levels for NRST / VCAP seem as expected, and suggest orientation is good.

    Super User
    July 20, 2024

    > What I found a little surprising with the H7 design, which seems to work of course, is that with the VDD pin at 0v and even the VDD wire physically cut, the programmer sees the MCU and connects to the Cube software and programs.

    This is interesting. The MCU can't be programmed without power, we can surely all agree on that, yes? So if pin 1 on the board-side has 0 V, it's either not hooked up to MCU power, or something else is happening.

    > In my first reply I explained that the TVAPP I referred to is the VDD pin #1 of the jtag connector on the diagram I uploaded earlier.

    Okay, so you have developed a custom board which is analogous to the H7 Portenta plus the Ethernet shield and you're using a JTAG port analogous to the port on said ethernet shield.

    The ethernet shield "+3V3" line isn't tied directly to the MCU voltage. So that explains why it can be zero and still get programmed.

    On your custom board, in which you've severed pin 1 on the cable, the pin is still not powered by the programmer. Logically, there must be some other difference in hardware, yes? How is your hardware powered while programming? What voltage is the H7 chip and VCAP caps at?

     

    To your question of how does voltage sensing on the programmer work: On some programmers, the pin 1 (T_VCC) voltage is used by a level shifter to change the logic level of the signals. On the V3SET (without the logic shifter board), it is not used in this manner and the logic level stays at 3.3 V. The T_VCC voltage is just relayed to STM32CubeProgrammer to display. Otherwise it has no functionality and is not needed by the programmer (as evidenced by it still working while at 0V).

     

    If your V3SET programmer really is putting +5V on pin 1, either the programmer is damaged, or perhaps the measurement is faulty. The programmer just doesn't work that way.

    Graduate II
    July 20, 2024

    In response to a prior interaction "VCAP has 1.22V when the board is powered up"

    Suggests the part orientation is correct. Inferred part is BGA 265, rather than LQFP so probably less of a chance of this. STM32H747XIH6 ?

    Problem with ball designation in the symbol due to dyslexia or misreading an adjacent net/connection, still a significant threat. More eyes on the schematic could help here.

    Visitor II
    July 22, 2024

    I have had 2 boards reworked to replace the MCU. On one board, we have removed everything that is on the VDD (3V3) line to remove any potential issues outside of the MCU, PMIC and JTAG connector.

     

    In response to a prior interaction "VCAP has 1.22V when the board is powered up"

    Suggests the part orientation is correct. Inferred part is BGA 265, rather than LQFP so probably less of a chance of this. STM32H747XIH6 ?

    Problem with ball designation in the symbol due to dyslexia or misreading an adjacent net/connection, still a significant threat. More eyes on the schematic could help here.


    Today I checked the VCAP line again, it was 0.99 / 1.0 V. So, a little lower than 1.25. Not sure why or what that means.

    Yes indeed the MCU is the STM32H747XIH6 package.

    I'll share our schematics via direct message so you can see.

     

    Thanks again all for your efforts to support.