Skip to main content
Graduate II
June 30, 2025
Question

STM32L433RCT VDDUSB and BOOT0 pin for firmware updates via USB

  • June 30, 2025
  • 2 replies
  • 651 views

I am using the NUCLEO-L433RC-P development board and in the process of designing my own PCB.

I would like to be able to update firmware via USB, but need to make sure my PCB design allows for this.

Currently I have VDDUSB connected to 3.3V, but thinking this is now incorrect.

The VDDUSB pin is not rated to 5V, so I can't connect the 5V from the USB-C connector to the VDDUSB pin.

Presumably the VDDUSB is used to indicate to the MCU that the USB cable is connected ?  Is VDDUSB used as a signal or for power ?

Should I just use a linear regulator to convert the USB 5V to 3.3V for the VDDUSB pin ?

Also, the BOOT0 pin has to be pulled high to put the STM32 into bootloader mode.

Can BOOT0 be connected to a pin on the USB-C connector ?

Otherwise I would need an external connector to pull up the BOOT0 pin which does not seem user friendly.

 

freeflyer_0-1751305339478.png

freeflyer_0-1751309545469.png

 

    This topic has been closed for replies.

    2 replies

    Super User
    June 30, 2025

    Follow the hardware design guide for this chip family:

    https://www.st.com/resource/en/application_note/an4555-getting-started-with-stm32l4-series-and-stm32l4-series-hardware-development-stmicroelectronics.pdf

    TDK_0-1751322004770.png

    Since VDD = 3.3 V in your design, just use that, as you have.

     

    If your device is bus-powered, no need to check for VBUS voltage. Otherwise, you need to keep USB uninitialized if VBUS is not present.

     

    BOOT0 cannot be connected to the USB-C connector in any functionally useful manner.

    The pullup on D+ is not necessary and could cause problems.

     

    If USB is only used for firmware updates, jump to the system bootloader if VBUS is detected.

    https://community.st.com/t5/stm32-mcus/how-to-jump-to-system-bootloader-from-application-code-on-stm32/ta-p/49424

     

    freeflyerAuthor
    Graduate II
    July 1, 2025

    Thanks TDK

    My device is not USB powered, it's battery powered.

    USB will only be used for two things:

    1. Charging the battery

    2. Flashing new firmware

    Does this mean I have to take 5V from the USB-C and use a linear regulator to drop it to 3.3V for the VDDUSB pin ?

    Super User
    July 1, 2025

    I would use the 3.3 V rail you already have on the board, as you have done.

    You will, however, need to monitor VBUS.

    Graduate II
    July 2, 2025

    >>Presumably the VDDUSB is used to indicate to the MCU that the USB cable is connected ? Is VDDUSB used as a signal or for power ?

     

    It's to power the D+/D- pin driver and keep USB Compliance. It allows the rest of the chip to use a 1.8V supply, and have a separate 3.3V for the USB pins. Or the whole thing can run at 3.3V

    I think there are separate pull-up/pull-down on the D+/D- pins, check the Data Sheet.