Skip to main content
Explorer
September 25, 2024
Question

STM32F405RGT6 USB DFU

  • September 25, 2024
  • 1 reply
  • 1917 views

Hi, I recently designed a custom stm32F405RGT6 board. However, I was unable to use the DFU mode.

From what I understand, bootloader comes with DFU enabled. However, when I used stm32cubeprogrammer, it kept mentioning "DFU not detected". This is my schematic. I've tried reading various posts and couldn't troubleshoot the error.
What I have done so far:
1) Checked the voltage of the BOOT0 and BOOT1 pins. (BOOT0=Low, BOOT1=HIGH)

2) Installed the drivers for the COM PORT (was included with the installation of stm32cubeprogrammer.

3) Double checked for any shorts (Didn't find any)

 

Unfortunately, when laying out the connections, I forgot to route out the SWD connections. Therefore, limiting my options! Thank you so much in advance for any help I can get.

These are the schematics for my MCU.

MCU.pngUSB connection.png

    This topic has been closed for replies.

    1 reply

    Super User
    September 25, 2024

    > Checked the voltage of the BOOT0 and BOOT1 pins. (BOOT0=Low, BOOT1=HIGH)

    BOOT0 should be high and BOOT1 should be low to boot into the bootloader.

    TDK_0-1727262949862.png

     

     

    Schematic looks okay. I don't see a bulk capacitor on VDD anywhere, should have a 4.7uF somewhere, and your VCAP caps should be 2.2 uF, not 10 uF. Probably not an issue here.

    Getting started with STM32F4xxxx MCU hardware development - Application note

     

    There is an internal ADC connection for VBAT, no need to make another one externally.

     

    It's going to be very hard to be productive developing without a SWD port.

    YeoAuthor
    Explorer
    September 25, 2024

    OOO sorry oops mixed it up. Yes Boot0 is HIGH and BOOT1 is low.

    Thank you so much for the advice! Currently, I am considering modifying the board to include the routing of the SWD to header pins. Could it be possible that using the SPDT switch is causing the issue?

    As I understand the procedure is to pull BOOT0 HIGH and then RESET the MCU? Currently, I switch the SPDT to pull BOOT0 HIGH then I unplug and re-plug the USB-C receptacle. Wondering if this could be causing the issue where the MCU does not enter into DFU mode?