cancel
Showing results for 
Search instead for 
Did you mean: 

STM32H745II, SPI Boot programming not working.

VTaya.1
Associate III

Hi .

I have STM32H745II controller, I am keeping its boot pin at HIGH state and providing reset condition.

Host controller's SPI pins are connected to SPI3 pins PC10, PC11, PC12 and PA15 of STM32H745II for communicating in SPI boot mode.

Here STM32H745II is not responding to SPI boot Sync command i.e ( byte 0x5A ).

Where as connecting another STM32H723 controller with Host controller with same connecting result in positive response from STM32H723 controller and flash memory can be verify with stm32cubeProgrammer memory read view.

How to program STM32H745II ( Dual core controller ) in SPI boot mode ?

Do I need to make any specific changes for dual core H7 series controller to work in boot mode ?

Is there any example code for STM32H7 dual core controller firmware update vai OTA ?

My requirement is to write flash memory in boot mode by SPI protocol.

1 ACCEPTED SOLUTION

Accepted Solutions

Hello.

Issue resolved !

One should Change the flash address in .id file of project and change the interrupt vector address to the desired flash memory address for new firmware.

Tested and working.

Thank you.

Vaibhav.

View solution in original post

5 REPLIES 5
Amel NASRI
ST Employee

Hi @Community member​ ,

Referring to AN2606 STM32 microcontroller system memory boot mode and comparing description for both STM32H745 & STM32H723 bootloaders, the only difference I see is that an additional reset is needed after power off/on to enable connection to the BL interfaces (for STM32H745 devices with bootloader version V9.0 (0x90).

So if the problem is still there, please check first the bootloader version of your device.

-Amel

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.

VTaya.1
Associate III

@Amel NASRI​ Thank you for writing back to my issue.

STM32H745 controller is responding in SPI boot mode and firmware update is working now.

But it is only working if I programmed it from 0x08000000 memory location. Programming controller at other memory location halted controller. Controller is not able to execute the code.

Please provide help for keeping two application codes in single memory bank and controller should be able to execute them as required.

Thank you.

Vaibhav.

Hi @Community member​ 

Jump to Bootloader from application on STM32H7 devices, is that what you need?

-Amel

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.

Hello.

@Amel NASRI

For now I am using dedicated pin on my host controller to control boot and rest pins of STM32H745 controller.

By pulling boot pin in HIGH state and providing reset condition I am entering boot mode.

After that I start writing my application code from flash memory location ( 0x08000000 ) in SECTOR_0. ( Application_Code_1 )

I have another application code bin file, which I write from flash memory location (0x08080000) in SECTOR_4 ( Application_Code_2 )

Now I want to execute Application_Code_2 . How to do it ?

On changing BOOT_CM7_ADD0 to 0x08080000 in option byte Application_Code_2 should start to execute on restart OR by using GO command. But Application code only at memory location 0x08000000 is able to execute.

Please test this case on your end with any controller and share the test results .

Thank you.

Vaibhav.

Hello.

Issue resolved !

One should Change the flash address in .id file of project and change the interrupt vector address to the desired flash memory address for new firmware.

Tested and working.

Thank you.

Vaibhav.