2025-06-30 10:53 AM - last edited on 2025-07-01 6:25 AM by Andrew Neil
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.
2025-06-30 3:23 PM
Follow the hardware design guide for this chip family:
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.
2025-07-01 1:02 AM
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 ?
2025-07-01 6:55 AM - edited 2025-07-01 6:56 AM
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.
2025-07-01 7:22 AM
Thanks TDK
So just a potential divider going to a GPIO pin as shown below ?
Should the GPIO pin be analogue or digital ?
2025-07-02 3:19 AM
Hi @freeflyer
The recommended resistor divider values for VBUS detection are the following as per AN4879:
• For VDD in the 3.0-3.6 V range: 82 kΩ (to GND), 33 kΩ (to VBUS).
Resistor values have been assessed assuming a ± 1% tolerance. They are checked against VIL/VIH across the different STM32 families, to guarantee switching when VBUS is between 0.8 and 3.67 V.
If you can monitor GPIO pin in analog mode, you will get more precise results.
To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.
2025-07-02 10:39 AM
Thanks FBL
82 kΩ (to GND), 33 kΩ (to VBUS) gives a voltage of 3.56V when VBUS is 5V.
My VDD is 3.3V, so wont 3.56V be too excessive ?
2025-07-02 11:24 AM
>>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.