PlatformIO Community

STM32H753 on PlatformIO

Hi there

I’m currently developing a solution based on the STM32H753 chip, but I cannot compile my code to this chip, even I tried to follow your instructions. Currently I’m using Mbed framework and I successfully compiled the code for the STM32H743 Nucleo board, but when I try to switch to my custom based board with the 753, although I can compile the code, after flash the MCU it never works.
Any suggestion? I also tried to create a custom board by myself, but with no success.

What are the differences between the nucleo board and your custom board? Is it by any chance that you don’t have the LSE crystal (32.768kHz) or the HSE crystal not installed? If these crystals are not present, the firmware will not boot if mbed-os is not reconfigured. Another reason for it to not fail is that the board is not reset properly (e.g. always held in bootlaoder mode by the state of the BOOT0/1 pins)

Hi maxgerhardt, thanks for the answer
I’ve currently a 8MHz crystal for HSE. The BOOT0 is held Low by a 10k resistor to ground and this chip has no BOOT1 (according to application note AN2606 the boot loader pattern for this chip is “Boot(pin) = 0 and BOOT_ADD0(optionbyte) = 0x1FF0” the state of the BOOT_ADD0 byte I don’t know.

I successfully run a simple blink example using the STM32CubeMX software after configure all the pins and clocks, and send the hex (actually converted to bin , but should be the same) file to the mcu. But no success using Mbed.

What about the 32.768kHz LSE?

I’ve not installed one, is it mandatory?

No it is not but since you’re compiling using the Nucleo STM32H743 target, the mbed-os target is configured to expect and use one (since it inherits from the FAMILY_STM32 with default = 1 and no override)

Can you try a dirty fix by adding

build_flags = -D MBED_CONF_TARGET_LSE_AVAILABLE=0 

to the platformio.ini? Now this could still fail because there might be differences in the STM32H753 chip compared to the STM32H743 chip you’re compiling for…

Ok I’ll try this and report the result.

Unfortunately it didn’t work…

Full platformio.ini and a schematic for the relevent MCU part?

Hi, the strange thing is that using the binary from STM32Cube, I can have basic programs running (serial prints, led blinks, etc), but I cannot say the same for Mbed using platformio. Here it is my platformio.ini

env:nucleo_h743zi]
platform = ststm32
board = nucleo_h743zi

framework = mbed

upload_protocol = mbed
; change microcontroller

board_build.mcu = stm32h743zit6
; change MCU frequency
board_build.f_cpu = 180000000L

build_flags =
-DPIO_FRAMEWORK_MBED_PRESENT
-D DEVICE_RTC=1
-DPIO_FRAMEWORK_MBED_RTOS_PRESENT
-D MBED_CONF_TARGET_LSE_AVAILABLE=0

Some parts of the schematic (don’t know exactly which parts you mean by relevant):

Any suggestion on this would be highy appreciated :slight_smile: