AN4879 · Application noteIntroduction to USB hardware and PCB guidelines using STM32 MCUs
Download .pdfOpen in the full document

FAQs (frequently asked questions)

FAQs (frequently asked questions)

Q: What is the minimum operating voltage for USB?

A: The USB, including its internal transceiver, is functional only for VDD/VDDUSB ≥ 2.7‑V. However, to be compliant with the USB specification, a minimum of 3.0 V is needed. Below 2.7‑V, the functionality of the internal transceiver is not ensured over the whole temperature range.

 

Q: The datasheet says that the USB transceiver functionality is ensured down to 2.7 V, but the full-speed electrical characteristics are degraded in 2.7 to 3.0 V voltage range. What is the meaning of this sentence?

A: When the USB operating voltage is below 3.0 V, STMicroelectronics guarantees that the PLL generates correctly the 48 MHz, and that the analog transceivers are functional: the USB is correctly operating.

However, the electrical signals are not compliant with the USB2.0 full-speed specification, and, consequently, some tests needed to get the USB certification (such as the eye diagram test) do not pass. In other words, the USB is operational, but the customer cannot get the USB certification.

Refer to www.usb.org for more details about the electrical requirements needed to be compliant with the USB specification.

 

Q: The pull-up resistor on a D+ line must always be added for the STM32 acting as a full speed device?

A: A full-speed device uses a pull-up resistor attached to D+ to specify itself as a full-speed device (and to indicate its speed). The pull-up resistor at the device end is also used by the host or hub to detect the presence of a device connected to its port. Without a pull-up resistor, the USB assumes that there is nothing connected to the bus.

On some STM32 microcontrollers, the pull-up resistor is already embedded. Otherwise, the customer needs to add it. Refer to Embedded pull-up resistor on USB_DP line in AN4879_USB-on-STM32-products.html#id_3644__table_irq_4n2_5fb to know if this resistor is integrated on the used STM32 MCU.

 

Q: In order to manage the VBUS sensing for USB device, are there any recommendations for the resistor bridge values?

A: Resistor bridge values must be chosen with respect to the following conditions:
  • Voltage must be lower than 4 V.
  • Voltage must be higher than 0.7×VDD.
  • A 200 μA typical current consumption is tolerated.

Refer to "Management of VBUS sensing for USB device design" shared on http://community.st.com.

 

Q: Can the external clock source (HSE bypass mode) be used for the USB clock source?

A: Yes, this is possible. HSE ON with an external crystal or HSE in bypass mode are required, but HSI cannot be used.

 

Q: Can we use two USB ports simultaneously (when they are available)?

A: Yes, this is feasible.

 

Q: Is it possible to connect more than one device to the same USB port configured as a host?

A: No, hub operation is not supported.

 

Q: Can the STM32 USB FS peripheral be used to make a USB LS device?

A: No, only full-speed transfers are supported in device mode. Refer to Supported USB speeds for more details.

 

Q: According to the USB specification (FS driver characteristics), when the full-speed driver is/is not part of a high‑speed capable transceiver, the impedance of each of the drivers must be in the range 40.5 to 49.5 Ω/28 to 44 Ω, respectively. Are the STM32 devices embedding these matching resistors?

A: Yes. On the internal USB PHYs, the matching output impedance is already embedded in the pad transceiver and is in line with the USB specification. No external resistors are needed.

 

Q: Is it possible to use the USB peripheral when the operating voltage VDD on the MCU is below 2.7 V?

A: This is possible only if a VDDUSB pin is available to power the USB block. In this case, the microcontroller can be powered with the minimum specified supply voltage, while an independent 3.3 V power supply can be connected to VDDUSB.

Conclusion

This application note helps STM32 MCUs users to correctly design their USB applications.

All aspects described inside this document, and specifically the requirements described in Hardware guidelines for USB implementation, are mandatory for correct operation of the USB peripheral on STM32 MCUs, and for ensuring its electrical compliance with the USB standard.

Revision history

Table 14. Document revision history
DateVersionChanges
10-Aug-20161Initial release.
24-Nov-20162Document classification updated from public to ST Restricted.
27-Apr-20183
  • Document classification changed from ST Restricted to Public.
  • Scope extended to all STM32 microcontrollers.
  • Updated Introduction and Section 3: Hardware guidelines for USB implementation and its subsections.
  • Added Section 1: List of abbreviations and acronyms, Section 2: USB on STM32 products and its subsections, Section 4: FAQs and Section 6: Conclusion.
  • Updated all figures in Section 3: Hardware guidelines for USB implementation.
  • Removed former Table 1: Applicable products, Section 1: Layout guidelines for USB FS devices, Section 1.1: PCB track impedance and routing on FS data lines, Section 4: Hardware guideline for OTG product implementation and Section 5: OTG USB high speed PHY connected to STM32 through the ULPI link.
18-Dec-20184

Added Table 1. Applicable products

Updated:
  • Section 1 General information
  • Table 3. USB implementation in STM32 devices
  • Section 2.1 USB implementation on STM32 products and all its tables
  • Section 2.4 Clock
  • Section 3.1.1 USB FS upstream port in self-powered applications
  • Section 3.1.2 USB FS upstream port in bus-powered applications
  • Section 3.2 USB FS downstream port
  • Section 4 FAQs (frequently asked questions)
  • Section 6 Conclusion
  • All figures in the document
30-May-20225Updated:
17-Apr-20236Updated:
06-May-20247Updated:
26-Sep-20248Updated:
20-Nov-20249

Updated:

Added:

29-Jan-202510Updated:
09-Mar-202611Updated:
24-Jun-202612Updated Introduction to add the STM32C5 series, and USB on STM32 products.
1 Check the product datasheet for supported part numbers.
2 STM32F410 is not supported.
3 STM32F030, STM32F0x1, STM32F038, STM32F098, and STM32F058 are not supported.
4 STM32F100 and STM32F101 are not supported.
5 STM32L0x0 is not supported.
6 STM32L4x1 is not supported.
7 Check the product datasheet for supported part numbers.
8 STM32F410 is not supported.
9 STM32F030, STM32F0x1, STM32F038, STM32F098, and STM32F058 are not supported.
10 STM32F100 and STM32F101 are not supported.
11 STM32L0x0 is not supported.
12 STM32L4x1 is not supported.
13 Check the product datasheet for supported part numbers.
14 STM32F410 is not supported.
15 STM32F030, STM32F0x1, STM32F038, STM32F098, and STM32F058 are not supported.
16 STM32F100 and STM32F101 are not supported.
17 STM32L0x0 is not supported.
18 STM32L4x1 is not supported.
19 Check the product datasheet for supported part numbers.
20 STM32F410 is not supported.
21 STM32F030, STM32F0x1, STM32F038, STM32F098, and STM32F058 are not supported.
22 STM32F100 and STM32F101 are not supported.
23 STM32L0x0 is not supported.
24 STM32L4x1 is not supported.
25 Check the product datasheet for supported part numbers.
26 STM32F410 is not supported.
27 STM32F030, STM32F0x1, STM32F038, STM32F098, and STM32F058 are not supported.
28 STM32F100 and STM32F101 are not supported.
29 STM32L0x0 is not supported.
30 STM32L4x1 is not supported.