STM32H725IGK6 variant

What are you developing?
Post Reply
Goderfer
Posts: 2
Joined: Mon Sep 02, 2024 2:30 am

STM32H725IGK6 variant

Post by Goderfer »

Hi all,

I'm currently working on a project based on the STM32H725IGK6.
I chose this MCU since the UFBGA 176+25 package is convenient for me and I need the large number of IO, the processor speed is also a big plus.

I followed the Variant creation guideline without success. At first I took the blame personally, that it was not working due to a mistake I may have made but the more I look into it, the more I think the Core library may be missing something.

I have an LED on the board, using STM32cubeIDE I can easily make the LED blinks.
I can't do the same through Arduino.

I cannot find why, so instead I tried something.
The STM32H723 and STM32H725 have pretty much the same architecture, the main difference that I found is the absence of the SMPS module on the STM32H723 (which I'm not using so not an issue). They also seems to share the same registry addresses (I haven't looked at all of them thought).

When I'm creating a STM32H723 variant and use it to compile the code, the LED blinks on the STM32H725 board.

Is it a known issue for the STM32H725 family? I do see that none are officially supported on the Github page.

Worse case I'll simply create a variant_generic file with the STM32H725 pinout and the remaining from a STM32H723 variant folder.
Maybe I didn't do the variant correctly but even then, if I copy the LDscript from the STM32H723 to the STM32H725 variant, the STM32H725 variant does not make the LED blink but If I use the generated LDscript I made for the STM32H725 in the STM32H723 variant, it works. I also compared line by line and both LDscripts are identical

Same with the generic_clock file (I kept the #if defined of the STM32H725), I used the one I generated for the STM32H725 in the STM32H723 variant and it was working but not the other way arround.

I'm I missing something?
ag123
Posts: 1796
Joined: Thu Dec 19, 2019 5:30 am
Answers: 28

Re: STM32H725IGK6 variant

Post by ag123 »

the key to a successful variant is a
void SystemClock_Config(void)
https://github.com/stm32duino/Arduino_C ... x.cpp#L128
https://github.com/stm32duino/Arduino_C ... figuration
to setup system and peripheral clocks that needs to match your on board *crystal frequency* and that it is specific to the SOC / chip

a way is to use an existing variant that works copy those files and start adapting that while referring to the generic variant.
one key features is that if you want to use usb, the clocks for the usb pheripherial needs to be 48 mhz, from your clocks config.
you can explore clock configs with these python scripts
viewtopic.php?t=78
Goderfer
Posts: 2
Joined: Mon Sep 02, 2024 2:30 am

Re: STM32H725IGK6 variant

Post by Goderfer »

As I said, the generated WEAK void SystemClock_Config(void) for my project worked if I compilled with the STM32H723 variant so I'm confident it's done correctly.
I found the problem and now it's working properly.
It was indeed a mistake from me, didn't check the upload.maximum_data_size & upload.maximum_size as the point 4.4 from the wiki.
it's one of the last steps...... seems like I was too much in an hurry,

https://github.com/stm32duino/Arduino_C ... he-variant
Post Reply

Return to “Projects”