cancel
Showing results for 
Search instead for 
Did you mean: 

Did I brick my STM32H745I-Discovery board? Can program, but code is not executed.

FabianEbs
Associate III

I have tested a TouchGFX-created project that should tie in a USB-Stick connected to the board and create a csv file, then write to it. 

After writing the necessary code and debugging this project in STM32CubeIDE, the board was stuck with a white screen, and further debugging was not possible anymore.

 

Fortunately, I was able to connect to the board from STM32CubeProgrammer and I did a full chip erase. 

Now I am able to program again from STM32CubeIDE, but the code is not executed when debugging. The same project works with another STM32H745I-Disco board.

In the programmer, the fault analyzer says the CPU is either halted or in lockup...

Is there a way to save this one board, or is the debugger working but the main chip toast?

 

Thanks!

1 ACCEPTED SOLUTION

Accepted Solutions

You can perhaps test by reprogramming the test application firmware, should be binary or hex files living in the board / demo specific project directory under CubeH7 repo.

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

View solution in original post

9 REPLIES 9
SofLit
ST Employee

Hello @FabianEbs and welcome to the community.

Check if you have disabled the Cortex-M4 using CubeProgrammer in option bytes menu.

 

To give better visibility on the answered topics, please click on "Accept as Solution" on the reply which solved your issue or answered your question.

Hi @SofLit , thanks for your reply!

The M4-Core is enabled and the address should also be fine: 

Screenshot 2024-08-26 160109.png

Screenshot 2024-08-26 155859.png  

You can perhaps test by reprogramming the test application firmware, should be binary or hex files living in the board / demo specific project directory under CubeH7 repo.

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

but the code is not executed when debugging. The same project works with another STM32H745I-Disco board.

Is is executing in stand alone?

Could you please share your ioc file?

To give better visibility on the answered topics, please click on "Accept as Solution" on the reply which solved your issue or answered your question.

Yeah that worked.

 

I did another full chip erase followed by programming the .elf file of an example project, both in STM32CubeProgrammer under Erasing & Programming. 

Afterwards I was able to flash directly from STM32CubeIDE again.

 

Thanks a lot everyone!

Here is the ioc-file that broke the board, not sure what is wrong with it, i didnt dare test it on another board yet. Will do now though.

Indeed this is a wrong configuration with your RCC:

SofLit_0-1724682398006.png

First, STM32H745I-Discovery is mounted in SMPS by HW while you set the power config to LDO.

Second, you cannot exceed 400MHz @VOS1 in SMPS with that microcontroller.

Attached an updated ioc file. Please test and get back with your findings.

To give better visibility on the answered topics, please click on "Accept as Solution" on the reply which solved your issue or answered your question.

Yeah now the ioc file doesnt break the board anymore.

Thanks!

At least i thought so. it worked for some time but as I worked on a project that enables Ethernet + TouchGFX and after some visual screen bugs, the board stopped working again.

 

the weird part is, I can not resolve this with above solution.

 

can connect via programmer and deleted full chip with manual .elf flashing, now i can debug an example ethernet program (STM32H745_Disco_M7_ETH) and ping my board, but i cant flash anything that uses the display.

I tried flashing to a new board, and my programs work...

 

.ioc file is attached that broke the board this time. It did not break immediatly, but after a few times of flashing.

 

should i make a new post about this? since its another ioc file and this error was resolved (for a while...)