Skip to main content
Visitor II
April 17, 2025
Solved

STM32H747I-DISCO USB DFU Mode

  • April 17, 2025
  • 4 replies
  • 1546 views

Hey everyone, I'm working with the STM32H747I-DISCO board and trying to get it into USB DFU mode to flash firmware using STM32CubeProgrammer. However, the board isn't being detected, and I couldn’t find clear instructions in the documentation about how to properly enter DFU mode. If anyone has managed to get this working or knows the correct steps, I'd really appreciate your guidance. Thanks in advance!

    This topic has been closed for replies.
    Best answer by FBL

    Hi @HassaanSaleem-101 @mƎALLEm 

    You can find an example provided for this board to enter DFU mode using USB HS interface. 
    However, you cannot access ST's bootloader interface through this HS interface. You need to ensure that bootloader mode is not entered by checking with a tool like STM32CubeProgrammer.

    After that, you can adjust USBD_DFU_APP_DEFAULT_ADD, specifying the address from where user's application will be downloaded.

    4 replies

    Graduate II
    April 17, 2025

    Normal way is use boot0 pin , more complicated and STLink required is opt bits and config...

    Bootloader starts is described in AN2606

    Visitor II
    April 18, 2025

    Hi, could you confirm the location of the boot0 pin, where might the boot pin lie on the STM32H747I-DISCO board. I have read the documents but there is nothing mentioned about the boot pin related to dfu, and I have also checked the board, but I couldn't find a dedicated pin or a jumper related the boot pin. In the schematic there is an R192 which connects with the Boot0, do we have to short it? We tried shorting it with a jumper wire but it didn't work. If you know anything about this issue, then kindly let me know about it, thanks.

    boot pin schematic.png

    Graduate II
    April 18, 2025

    Starting system bootloader is described in Table 2 Patterns AN2606. And yes R192 is pinout for solder wired button switch or jumper. But as mƎALLEm

    USB on this board isnt connected to DFU USB pins. Then for use it you require change board and add connector for USB FS.

    Better and simpler is try use one UART based on AN2606 and load firmware  over it and (any USB UART bridge for PC), when STLink isnt ok.

     

    Technical Moderator
    April 17, 2025

    Hi @HassaanSaleem-101 and welcome to ST Community 

    I suggest you the following application note USB DFU protocol used in the STM32 bootloader.

    You need to short the BOOT0 pin to Vdd to enter the bootloader mode and ensure that the boot address is set correctly.

    Visitor II
    April 18, 2025

    I checked the document, there is nothing specifically mentioned related to shorting to the Boot pin to enter the dfu mode, I have also read other documents and over there as well nothing has been mentioned regarding this. We still tried the shorting the boot pin but it didn't work out. Is there any other method or anything else we should/need to try to make the STM32H747I-DISCO board into dfu mode? If you know, then kindly let me know.  

    Technical Moderator
    April 18, 2025

    @HassaanSaleem-101 

    Are you seeing my replies?

    Technical Moderator
    April 17, 2025

    Hello,

    According to the AN2606 the pins to be used for DFU are PA11 and PA11 in USB full speed:

    mALLEm_1-1744913324175.png

    But according to the STM32H747I-DISCO board schematic only USB HS is available on the board and PA11/PA12 are used for other purpose:

    mALLEm_2-1744913518889.png

    So unfortunately you cannot use DFU mode with this board.

    @FBL could you confirm?

    FBLAnswer
    Technical Moderator
    April 18, 2025

    Hi @HassaanSaleem-101 @mƎALLEm 

    You can find an example provided for this board to enter DFU mode using USB HS interface. 
    However, you cannot access ST's bootloader interface through this HS interface. You need to ensure that bootloader mode is not entered by checking with a tool like STM32CubeProgrammer.

    After that, you can adjust USBD_DFU_APP_DEFAULT_ADD, specifying the address from where user's application will be downloaded.

    Technical Moderator
    April 18, 2025

    Thank you @FBL I was not aware of that example.

    @HassaanSaleem-101 

    So in conclusion: 

    1- You cannot use the AN2606 as reference for this board for ST bootloader.

    2- You can use the example provided by my colleague @FBL as a "custom bootloader" and no need to use the boot pin in this case.

    Did @FBL comment answer your question?

     

    Technical Moderator
    April 18, 2025

    @HassaanSaleem-101 

    This is an article how to use USB DFU ST bootloader on Nucleo-H742ZI: How can I use STM32CubeProgrammer to access the USB-DFU bootloader on my STM32 board? 

    It doesn't apply to the board you have (point 1 in my previous comment) but at least to know how to use the USB DFU ST bootloader and its process.