Skip to main content
Explorer
January 9, 2024
Solved

STM32F723 DFU Mode - Questions

  • January 9, 2024
  • 1 reply
  • 3844 views

I have a few questions about the DFU mode on the STM32F723. My goal is to enable users to flash a binary file to the MCU via a USB connection. My implementation is that i placed a 22uF capacitor on the boot0 pin then tied another IO pin (EO) in this case to boot0. 

To enable DFU mode, currently I pull E0 high for a second to charge the capacitor, then switch the pin to an input to make it high impedance. Next Deinit the USB HS Handle. After that do an NVIC Reset. My issue is that after resetting I don't see any new USB DFU device. Even though my USB CDC/HID Composite device is working at USB HS speeds using the onboard USB 2.0HS PHY.

Here is my Schematic

Russeree_0-1704836128752.png

What do you think I am missing? Linux lsusb, and dmesg show nothing at all. 

Thanks!

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

    The system USB DFU bootloader is only available on the FS USB.

    TDK_0-1704836819825.png

    https://www.st.com/resource/en/application_note/an2606-stm32-microcontroller-system-memory-boot-mode-stmicroelectronics.pdf

     

    1 reply

    TDKAnswer
    Super User
    January 9, 2024
    RussereeAuthor
    Explorer
    January 10, 2024

    Wow... Absolutely an amazing catch. Yeah I didn't realize that there were 2 distinct PHY output pins for USB OTG Full Speed and USB High Speed. 

    I guess my next step is to write some sort of alternative DFU compatible state for my device that enables the use of the USB HS PHY because of the fact that I didn't include a second USB port for DFU mode :p

    Thank you again!

    RussereeAuthor
    Explorer
    January 10, 2024

    Sorry to double post, but before I go down this rabbit hole, is it possible to flash the EEPROM at runtime? Could I just write a small DFU compatible program? Run it then flash over the top of the existing memory and reset with the NVIC?