Skip to main content
Visitor II
June 22, 2021
Solved

STM32H745II, SPI Boot programming not working.

  • June 22, 2021
  • 2 replies
  • 1758 views

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.

    This topic has been closed for replies.
    Best answer by VTaya.1

    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.

    2 replies

    Technical Moderator
    July 7, 2021

    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

    VTaya.1Author
    Visitor II
    July 12, 2021

    @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.

    Technical Moderator
    July 12, 2021

    Hi @Community member​ 

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

    -Amel

    VTaya.1Author
    Visitor II
    July 13, 2021

    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.