Skip to main content
g.roy619
Associate
December 4, 2021
Solved

Substituted STM32H730VB for STM32H750VB on PCB due to chip shortage. 750 does not enter bootloader due to pin PB15. Is there a fix for it?

  • December 4, 2021
  • 8 replies
  • 1926 views

We were using STM32H730VB to drive a LED display in our project.

Pins 51 - 64 drive the LED display, Pin 30 controls the display power, and pins 24 - 25 act as the USART. We use CubeProgrammer to download the firmware.

This worked well and with no issues. However, due to the chip shortage, we swapped the H730 for the H750. While the display itself works fine, the main issue is that we cant re program the STM as it does not enter bootloader mode.

The root of the issue is the PB15 pin. If the pin is connected to the LED display, the STM does not enter bootloader. If it is not connected, it enters bootloader mode. We confirmed that this pin is the root of the issue, by using a jumper cable and substituting PB15 with PC12. In this case, everything works fine.

We wanted to know if here is any fix that does not involve changing the pin or disconnecting the display each time we need to re program the STM.

Thanks

Please Note:

  1. There are no issues at all if we program it using Segger J-Link and CubeIde, however, we need the USART for our project.
  2. We have tried changing the PB15 GPIO configurations, and also de initializing display pins before attempting to put the STM into bootloader mode. It still failed to enter bootloader mode.
This topic has been closed for replies.
Best answer by TDK

The H750 listens for a UART signal on PB15, unlike the H730. No way to change that. You may be able to tell the LCD to be quiet on this pin while the bootloader starts.

It may also be possible to transmit on the interface you want before the PB15 has activity. This may require some tight timing, but once the bootloader is active on another interface, it will stop listening on PB15.

0693W00000HnYO3QAN.png 

The chip is entering bootloader mode, it's just that once PB15 has activity, it doesn't listen to the other interfaces anymore.

8 replies

Tesla DeLorean
Guru
December 4, 2021

The boot loader looks for transitions on a number of critical pins/interfaces, described in AN2606, the loader is in ROM/OTP so it isn't going to change it's behaviour

Tips, Buy me a coffee, or three.. PayPal Venmo (See Profile) Up vote any posts that you find helpful, it shows what's working..
g.roy619
g.roy619Author
Associate
December 5, 2021

I went through it once more, and noticed that in the known limitations section, it mentions that if PB15 is grounded STM wont enter bootloader mode. The display does seem to ground the PB15 pin, so, in the current setup, a 750H will not work.

Thanks for your help.

TDK
December 5, 2021

I read that too and thought it was only for a very early version of the bootloader. Rereading this, it seems v9.0 is the newest version and that v13.x are earlier versions. What a weird versioning scheme.

0693W00000HnZjCQAV.png

"If you feel a post has answered your question, please click ""Accept as Solution""."
TDK
TDKBest answer
December 4, 2021

The H750 listens for a UART signal on PB15, unlike the H730. No way to change that. You may be able to tell the LCD to be quiet on this pin while the bootloader starts.

It may also be possible to transmit on the interface you want before the PB15 has activity. This may require some tight timing, but once the bootloader is active on another interface, it will stop listening on PB15.

0693W00000HnYO3QAN.png 

The chip is entering bootloader mode, it's just that once PB15 has activity, it doesn't listen to the other interfaces anymore.

"If you feel a post has answered your question, please click ""Accept as Solution""."
g.roy619
g.roy619Author
Associate
December 5, 2021

I was under the impression that as i am using USART 2, it wouldnt effect PB15. However, that does not seem to be the case.

I guess the best option for us would be to use another pin instead of PB15.

Thanks for your help.

MM..1
Super User
December 5, 2021

From your info seems you start boot from application directly. Other maybe more normal way is setup externaly BOOT pins and do reset MCU for example IWDG.

You try this?

g.roy619
g.roy619Author
Associate
December 5, 2021

Our main PCB has multiple MCUs. We have an additional PCB that we designed specifically to program the MCUs.

We first turn on the main PCB, let it run for an extremely short amount of time, and then put the STM32 into bootloader using the programmer PCB.

MM..1
Super User
December 5, 2021

Seems you do simple thinks over complicated way. , then why you dont use custom bootloader instead system?