cancel
Showing results for 
Search instead for 
Did you mean: 

STM32H747(XI) JTAG Sensing

Discoinferno
Associate II

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!

24 REPLIES 24

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.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..

Do you have TARGET_VDD on pin 1 or not?


Yes, this pin of the JTG connector is connected to 3V1 on my board and the programmer

 

When do you say "H7" and mention a PMIC - are you referring to a Portenta H7 board?
(which provides power as pin 1 for VDD just after bootloader/FW has configured PMIC)

Yes, the Portenta H7 from Arudino. Indeed it does provide power on this pin AFTER the communication is achieved with the MCU and the boot loader is uploaded. I am not able to achieve the fundamental task of connect to the MCU, so boot loader and PMIC programming are not performed at this stage.

  • is TARGET_VDD provided on JTAG header pin 1 after PMIC configured? (or already as VDD needed to boot your MCU?)

Yes, voltage on VDD is provided after the MCU is booted.

  • Do you say, you cannot download any MCU FW and therefore not doing the PMIC config?
    (and therefore not VDD on pin 1? Are you in a "chicken and egg issue"?)

VDD pin on the JTAG connector on the Portenta H7 has 0 volts during chip erase and boot loader programming process. This works fine and I have done it quite a few times to test the process. This also works as I've said before, with the VDD wire completely cut. I did it again 3 times today also and with an oscilloscope connected to confirm that the VDD pin on the programmer AND board stay at 0V, when the VDD wire is cut in half.

So no chicken or egg. The chip is connected and programmed, then when the MCU boot loader is working, it programs the PMIC to deliver 3V1 to the components connected to this supply line.

 

MCU power comes from PMIC 3V1. this is not connected to the JTAG VDD or 3V1 lines.

 

  • Sure, if pin 1 on JTAG as TARGET_VCC (T_VCC) and programmer is not there - debugger does not see your target.

That seems to be the case on my board, but on the H7 the programmer sees the MCU without any problem.

 

Try to run debugger in "connect in low power mode", in "connect under reset" etc.

I just tried that, also without success.

 

Again: if you have any VDD, e.g. for MCU alive on board, and you are sure the MCU is powered (and out of reset): just use a jumper wire and provide VDD on pin 1: grab it from the same VDD used on MCU (so that MCU can boot, even PMIC no configured yet, the VDD which powers MCU for boot).
Or: even provide 3V3 (as target VDD) from something else, e.g. your external 5V for main power input (with a resistor divider).

I am still convinced: your JTAG adapter to programmer does not see a VDD on pin 1.

At the moment the JTAG adaptor definitely does not see VDD on pin #1, it is cut so that the programmer doesn't not inject 5V into my board. But, this does not seem to be a problem for the portenta H7. With this wire cut in half, the portenta H7 connects, erases and programs without any problems.

I tried to connect the 3V1 and VDD lines together wirth the programmer connected, but it injected 5V into the 3V1 (MCU power) line and potentially damaged the MCU.

I have just sent the board back for rework to replace the MCU so am reluctant to try this again. Something on one of the other pins is making the programmer inject 5V on the VDD line so am focussed on the other lines at the moment.

 

Do you reference to a NUCLEO-H7 board (e.g. the NUCLEO-H743ZI2)?

No, the Arduino portenta H7. We share the same design for MCU, PMIC and JTAG connection.

 

Have you tried with a patch wire to bring target VDD to pin 1?

Yes, see above. When the programer is connected, VDD has 5V on it from the programmer. When I connect the VDD wire to my board, it raises the voltage on VDD to 5V. If I short the MCU power (3V1) to the VDD pin, it raises the MCU power to 5V.

 

Show us your schematics.

I can share our schematics via direct message. The Portenta H7 schematics are freely available on the Aruduino website.

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.


 

Is the MCU supposed to have some registers pre-programmed before placing on the board perhaps?

This is the screenshot from the STMCube Programmer software when the portenta H7 is connected (H7 was in the completely erased state).

 

(Note the 0.0V target voltage however connection is successful)

 

H7 Connect Dialogue.png