Alimentare prin USB tip C STM32

Introducere
Acest document conține o listă de întrebări frecvente (FAQ) despre STM32 USB Type-C® și Power Delivery.
Alimentare prin USB Type-C®
Can the USB Type-C® PD be used to transmit data? (Not using USB high-speed data transfer features)
Deși adaptorul USB Type-C® PD în sine nu este conceput pentru transfer de date de mare viteză, acesta poate fi utilizat cu alte protocoale și moduri alternative și gestionează transmisia de date de bază.
Care este utilizarea practică a modulului VDM UCPD?
Mesajele definite de furnizor (VDM) în USB Type-C® Power Delivery oferă un mecanism flexibil pentru extinderea funcționalității USB Type-C® PD dincolo de negocierea standard a alimentării. VDM-urile permit identificarea dispozitivelor, moduri alternative, actualizări de firmware, comenzi personalizate și depanare. Prin implementarea VDM-urilor, furnizorii pot crea funcții și protocoale proprietare, menținând în același timp compatibilitatea cu specificația USB Type-C® PD.
STM32CubeMX needs to be configured with specific parameters, where are they available?
Cea mai recentă actualizare a modificat informațiile afișate pentru a fi mai ușor de utilizat, acum interfața solicită pur și simplu volumul.tage și curentul dorit. Totuși, acești parametri pot fi găsiți în documentație, puteți consulta un tabel de referință rapidă în AN5418.
Figura 1. Specification detail (table 6-14 in universal serial bus Power Delivery specification)

Figura 2 explains the applied value 0x02019096.
Figura 2. Decodificare PDO detaliată

Pentru mai multe detalii despre definiția PDO, consultați secțiunea POWER_IF din UM2552.
Care este curentul maxim de ieșire al interfeței USB?
Curentul maxim de ieșire permis de standardul USB Type-C® PD este de 5 A cu un cablu specific de 5 A. Fără un cablu specific, curentul maxim de ieșire este de 3 A.
Does this ‘Dual-role mode’ mean be able to supply power and charge in reverse?
Da, DRP (port cu rol dublu) poate fi alimentat (receptor) sau poate alimenta (sursă). Este utilizat în mod obișnuit pe dispozitivele alimentate de baterii.
Controler și protecție STM32 Power Delivery
MCU acceptă doar standardul PD sau și QC?
Microcontrolerele STM32 acceptă în principal standardul USB Power Delivery (PD), care este un protocol flexibil și larg utilizat pentru Power Delivery prin conexiuni USB Type-C®. Microcontrolerele STM32 sau stiva USB PD de la STMicroelectronics nu oferă suport nativ pentru Quick Charge (QC). Dacă este necesar suport pentru Quick Charge, trebuie utilizat un circuit integrat dedicat pentru controler QC cu microcontrolerul STM32.
Is it possible to implement a synchronous rectification algorithm in the package? Can it manage multiple outputs and controller roles?
Implementarea unui algoritm de rectificare sincronă cu ieșiri multiple și un rol de controler este fezabilă cu microcontrolerele STM32. Prin configurarea perifericelor PWM și ADC și dezvoltarea unui algoritm de control, este posibil să se obțină o conversie eficientă a puterii și să se gestioneze ieșiri multiple. În plus, utilizarea protocoalelor de comunicație precum I2C sau SPI coordonează funcționarea mai multor dispozitive într-o configurație controler-țintă. De exemplu...ampAdică, STEVAL-2STPD01 cu un singur STM32G071RBT6 care încorporează două controlere UCPD poate gestiona două porturi Power Delivery de tip C de 60 W.
Există TCPP pentru VBUS > 20 V? Aceste produse se aplică și la EPR?
Seria TCPP0 are o tensiune VBUS de până la 20 Vtage SPR (Interval de putere standard).
Ce serie de microcontrolere STM32 acceptă USB Type-C® PD?
Perifericul UCPD pentru gestionarea portului USB Type-C® PD este încorporat în următoarele serii STM32: STM32G0, STM32G4, STM32L5, STM32U5, STM32H5, STM32H7R/S, STM32N6 și STM32MP2. Acesta oferă 961 P/N în momentul scrierii documentului.
How to make the STM32 MCU works as a USB serial device following USB CDC class? Is the same or similar procedure help me go no-code?
Soluția de comunicare prin USB este acceptată de ex-ul realampmai multe instrumente de descoperire sau evaluare, inclusiv biblioteci software gratuite complete și exampȘiere disponibile cu pachetul MCU. Generatorul de cod nu este disponibil.
Is it possible to dynamically change the PD ‘data’ in the software run-time? E.g. voltage and current demands/capabilities, consumer/provider etc.?
It is possible to dynamically change the power role (consumer – SINK or provider – SOURCE), the power demand (power data object) and data role (host or device) thanks USB Type-C® PD. This flexibility is illustrated in STM32H7RS USB Dual Role Data and Power video.
Is it possible to use the USB2.0 standard and the Power Delivery (PD) to receive more than 500 mA?
USB Type-C® PD permite încărcare rapidă și de mare putere pentru dispozitivele USB, independent de transmisia de date. Prin urmare, este posibil să se primească peste 500 mA în timpul transmisiei în USB 2.x, 3.x.
Do we have the possibility to read information on the source or sink device such as the PID/UID of the USB device?
USB PD acceptă schimbul de diverse tipuri de mesaje, inclusiv mesaje extinse care pot conține informații detaliate despre producător. API-ul USBPD_PE_SendExtendedMessage este conceput pentru a facilita această comunicare, permițând dispozitivelor să solicite și să primească date precum numele producătorului, numele produsului, numărul de serie, versiunea de firmware și alte informații personalizate definite de producător.
Când se utilizează un ecranaj X-NUCLEO-SNK1M1 care include un TCPP01-M12, ar trebui utilizat și X-CUBE-TCPP? Sau este X-CUBE-TCPP opțional în acest caz?
Pentru a porni soluția USB Type-C® PD în modul SINK, se recomandă X-CUBE-TCPP pentru a facilita implementarea, deoarece soluția STM32 USB Type-C® PD trebuie gestionată. TCPP01-M12 reprezintă protecția optimă asociată.
Pe plăcile de circuite imprimate USB, liniile de date USB (D+ și D-) sunt rutate ca semnale diferențiale de 90 ohmi. Trebuie ca și traseele CC1 și CC2 să fie semnale de 90 ohmi?
Liniile CC sunt linii cu un singur capăt, cu comunicație de joasă frecvență de 300 kbps. Impedanța caracteristică nu este critică.
Poate TCPP să protejeze D+, D-?
TCPP is not adapted to protect D+/- lines. To protect D+/- lines USBLC6-2 ESD protections are recommended or ECMF2-40A100N6 ESD protections + common-mode filter if radio frequencies on the system.
Este driverul HAL sau registrul încapsulat?
Șoferul este HAL.
Cum mă pot asigura că STM32 gestionează corect negocierea puterii și gestionarea curentului în protocolul PD fără a scrie cod?
A first step can be a series of field interoperability tests using available device available on the market. To understand the solution behavior, STM32CubeMonUCPD allows monitoring and configuration of STM32 USB Type-C® and Power Delivery applications.
A second step can be a certification with the USB-IF (USB implementer forum) compliance program to obtain an official TID (Test Identification) number. It can be performed in a USB-IF sponsored compliance workshop or in an authorized independent test lab.
The code generated by X-CUBE-TCPP is ready to be certified and solutions in the Nucleo/Discovery/Evaluation board have already been certified.
Cum se implementează funcția OVP pentru protecția porturilor de tip C? Poate fi setată marja de eroare în limita a 8%?
Pragul OVP este stabilit de un volumtage divider bridge connected on a comparator with a fixed bandgap value.
Comparator input is VBUS_CTRL on TCPP01-M12 and Vsense on TCPP03-M20. OVP VBUS threshold voltage poate fi modificat hardware-ul în funcție de volumtage divider ratio.
However, it is recommended to use the divider ratio presented on X-NUCLEO-SNK1M1 or X-NUCLEO-DRP1M1 according to the targeted maximum voltage.
Este gradul de deschidere ridicat? Se pot personaliza unele sarcini specifice?
Stiva USB Type-C® PD nu este deschisă. Cu toate acestea, este posibil să personalizați toate intrările sale și interacțiunea cu soluția. De asemenea, puteți consulta manualul de referință al STM32 utilizat pentru a arunca o privire asupra interfeței UCPD.
La ce ar trebui să fim atenți la proiectarea circuitului de protecție a porturilor?
TCPP IC must be placed close to the Type-C connector. Schematic recommendations are listed in user manuals of X-NUCLEO-SNK1M1, X-NUCLEO-SRC1M1, şi X-NUCLEO-DRP1M1. To insure a good ESD robustness, I would recommend having a look on ESD layout tips application note.
În zilele noastre, se introduc o mulțime de circuite integrate cu un singur cip din China. Care sunt avantajele specificetages de utilizare a STM32?
Avantajele cheie ale acestei soluții apar la adăugarea unui conector PD de tip C la o soluție STM32 existentă. Apoi, este rentabilă deoarece tensiunea redusă...tagControlerul UCPD este încorporat pe STM32 și are un volum ridicattagControalele / protecția se realizează prin TCPP.
Există o soluție recomandată de ST cu sursă de alimentare și STM32-UCPD?
Sunt foștiample cu a USB Type-C Power Delivery dual port adapter based on the STPD01 programmable buck converter. STM32G071RBT6 and two TCPP02-M18 are used to support two STPD01PUR programmable buck regulators.
Care este soluția aplicabilă pentru un monitor Sink (clasa de 60 W), cu intrare HDMI sau DP și alimentare?
STM32-UCPD + TCPP01-M12 pot suporta o putere absorbită de până la 60 W. Pentru HDMI sau DP, este necesar un mod alternativ, care poate fi realizat prin software.
Înseamnă că aceste produse au fost testate conform specificațiilor standard de conformitate USB-IF și USB?
Codul generat sau propus pe pachetul de firmware a fost testat și certificat oficial pentru unele configurații hardware cheie. Ca de exempluample, X-NUCLEO-SNK1M1, X-NUCLEO-SRC1M1 și X-NUCLEO-DRP1M1 peste NUCLEO au fost certificate oficial, iar ID-urile de testare USB-IF sunt: TID5205, TID6408 și TID7884.
Configurare și cod de aplicație
Cum pot construi un PDO?
Construirea unui obiect de date privind alimentarea (PDO) în contextul USB Power Delivery (PD) implică definirea capacităților de alimentare ale unei surse sau receptori USB PD. Iată pașii pentru a crea și configura un PDO:
- Identify the type of PDO:
- Fixed supply PDO: Defines a fixed voltage și curent
- Battery supply PDO: Defines a range of voltages and a maximum power
- Variable supply PDO: Defines a range of voltages and a maximum current
- Programmable Power Supply (PPS) APDO: Allows for a programmable voltage și curent.
- Definiți parametrii:
- Voltage: Voltagnivelul pe care PDO îl furnizează sau îl solicită
- Current / power: The current (for fixed and variable PDOs) or power (for battery PDOs) the PDO provide
or request.
- Use the STM32 Cube MonUCPD GUI:
- Pasul 1: Ensure you have the latest version of the STM32 Cube Mon UCPD application
- Pasul 2: Connect your STM32G071-Disco board to your host machine and launch the STM32 Cube Monitor-UCPD application
- Pasul 3: Select your board in the application
- Pasul 4: Navigate to the “port configuration” page and click on the “sink capabilities” tab to see the
current PDO list - Pasul 5: Modify an existing PDO or add a new PDO by following the prompts
- Pasul 6: Click on the “send to target” icon to send the updated PDO list to your board
- Pasul 7: Click on the “save all in target” icon to save the updated PDO list onto your board[*].
Iată un exampUn exemplu de cum ați putea defini un PDO cu aprovizionare fixă în cod:
/* Define a fixed supply PDO */
uint32_t fixed_pdo = 0;
fixed_pdo |= (voltage_in_50mv_units << 10); // Voltage in 50 mV units
fixed_pdo |= (max_current_in_10ma_units << 0); // Max current in 10 mA units
fixed_pdo |= (1 << 31); // fixed supply type
Exampconfigurația fișierului
Pentru un PDO cu alimentare fixă cu 5 V și 3 A:
content_copy
uint32_t fixed_pdo = 0;
fixed_pdo |= (100 << 10); // 5 V (100 * 50 mV)
fixed_pdo |= (30 << 0); // 3A (30 * 10 mA)
fixed_pdo |= (1 << 31); // fixed supply type
Considerații suplimentare:
- Dynamic PDO selection: You can dynamically change the PDO selection method at runtime by modifying the USED_PDO_SEL_METHOD variable in the usbpd_user_services.c file[*] .
- Evaluation of capabilities: Use functions like USBPD_DPM_SNK_EvaluateCapabilities to evaluate received capabilities and prepare the request message[*] .
Construirea unui PDO implică definirea volumuluitagparametrii de curent (sau putere) și configurarea acestora folosind instrumente precum STM32CubeMonUCPD sau direct în cod. Urmând pașii și exempleleampCu ajutorul fișierelor furnizate, puteți crea și gestiona eficient PDO-uri pentru aplicațiile USB PD.
Is there a function for a prioritizing scheme with more than one PD-sink connected?
Da, există o funcție care acceptă o schemă de prioritizare atunci când sunt conectate mai multe surse de alimentare. Acest lucru este util în special în scenariile în care mai multe dispozitive sunt conectate la o singură sursă de alimentare. Distribuția energiei trebuie gestionată în funcție de prioritate.
Schema de prioritizare poate fi gestionată folosind funcția USBPD_DPM_SNK_EvaluateCapabilities. Această funcție evaluează capabilitățile primite de la sursa PD și pregătește mesajul de solicitare pe baza cerințelor și priorităților sink-ului. Atunci când lucrați cu mai multe sink-uri, puteți implementa o schemă de prioritizare prin atribuirea de niveluri de prioritate fiecărui sink și modificarea funcției USBPD_DPM_SNK_EvaluateCapabilities pentru a lua în considerare aceste priorități.
content_copy
uint32_t fixed_pdo = 0;
fixed_pdo |= (100 << 10); // 5V (100 * 50mV)
fixed_pdo |= (30 << 0); // 3A (30 * 10mA)
fixed_pdo |= (1 << 31); // Fixed supply type
/* Define a Fixed Supply PDO */
uint32_t fixed_pdo = 0;
fixed_pdo |= (voltage_in_50mv_units << 10); // Voltage in 50mV units
fixed_pdo |= (max_current_in_10ma_units << 0); // Max current in 10mA units
fixed_pdo |= (1 << 31); // Fixed supply type
Este obligatorie utilizarea DMA cu LPUART pentru GUI?
Da, este obligatorie comunicarea printr-o soluție ST-LINK.
Este corectă setarea LPUART de 7 biți pentru lungimea cuvântului?
Da, este corect.
In the STM32CubeMX tool – there is a check box “save power of non-active UCPD – deactive dead battery pull-up.” What does mean this check box if it is enable?
Când este SURSA, USB Type-C® necesită o rezistență de tracțiune conectată la 3.3 V sau 5.0 V. Aceasta acționează ca un generator de sursă de curent. Această sursă de curent poate fi dezactivată atunci când USB Type-C® PD nu este utilizat pentru a reduce consumul de energie.
Is it necessary to use FreeRTOS for STM32G0 and USB PD applications? Any plans for non-FreeRTOS USB PD examples?
Nu este obligatorie utilizarea FreeRTOS pentru aplicațiile USB Power Delivery (USB PD) pe microcontrolerul STM32G0. Puteți implementa USB PD fără un RTOS prin gestionarea evenimentelor și a mașinilor de stare în bucla principală sau prin întreruperea rutinelor de service. Deși au existat solicitări pentru USB Power Delivery, ex.ampșiere fără RTOS. În prezent, nu există exemple non-RTOSample este disponibil. Dar unele exemple AzureRTOSampsunt disponibile pentru seriile STM32U5 și H5.
In the STM32CubeMX demo building a USB PD application for STM32G0, is HSI accuracy acceptable for USB PD applications? Or the use of external HSE crystal is mandatory?
HSI furnizează ceasul kernelului pentru perifericul UCPD, deci nu există niciun beneficiu în utilizarea HSE. De asemenea, STM32G0 acceptă interfață fără cristal pentru USB 2.0 în modul dispozitiv, deci HSE ar fi necesar doar în modul gazdă USB 2.0.
Figura 3. UCPD reset and clocks

Există vreo documentație la care mă pot referi pentru configurarea CubeMX, așa cum ați explicat mai târziu?
The documentation is available in the following Wiki link.
Is the STM 32 Cube Monitor capable of real-time monitoring? Is real-time monitoring possible by connecting STM32 and ST-LINK?
Da, STM32CubeMonitor poate efectua monitorizare reală prin conectarea STM32 și ST-LINK.
Este volumul VBUStagFuncția de măsurare a curentului electric (e/curent) demonstrată pe ecranul monitorului este disponibilă în modul de bază și implicit pe plăcile compatibile UCPD sau este o caracteristică a plăcii NUCLEO adăugate?
Acurate voltagMăsurarea e este disponibilă nativ deoarece volumul VBUStage is required by USB Type-C®.
Accurate current measurement can be done by TCPP02-M18 / TCPP03-M20 thanks to high side ampLifter și rezistor shunt sunt folosite și pentru a efectua protecția la supracurent.
Generator de cod de aplicație
Can CubeMX generate an Azure RTOS-based project with X-CUBE-TCPP by the same way with FreeRTOS™? Can it generate the code managing the USB PD without using FreeRTOS™? Does this software suite require an RTOS to operate?
STM32CubeMX generates code thanks to the X-CUBE-TCPP package using the RTOS available for the MCU, FreeRTOS™ (for STM32G0 as examp(ex.) sau AzureRTOS (pentru STM32H5, de exemplu)ample).
Can X-CUBE-TCPP generate code for dual Type-C PD port such as STSW-2STPD01 board?
X-CUBE-TCPP can generate code for only a single port. To do it for two ports, two separated projects have to be generated without overlap on STM32 resources and with two I2C addresses for TCPP02-M18 and be merged.
Din fericire, STSW-2STPD01 has a complete firmware package for the two ports. It is then not necessary to generate code.
Acest instrument de proiectare funcționează cu toate microcontrolerele cu USB Type-C®?
Da, X-CUBE-TCPP funcționează cu orice STM32 care încorporează UCPD pentru toate carcase de alimentare (SINK / SOURCE / Dual Role). Funcționează cu orice STM32 pentru SURSA de 5 V Type-C.
Tabelul 1. Istoricul revizuirii documentului
| Data | Revizuire | Schimbări |
| 20-Iun-2025 | 1 | Lansare inițială. |
Important Notice – Read Carefully
STMicroelectronics NV și filialele sale („ST”) își rezervă dreptul de a face modificări, corecții, îmbunătățiri, modificări și îmbunătățiri produselor ST și/sau acestui document în orice moment, fără notificare. Cumpărătorii trebuie să obțină cele mai recente informații relevante despre produsele ST înainte de a plasa comenzi. Produsele ST sunt vândute în conformitate cu termenii și condițiile de vânzare ale ST în vigoare la momentul confirmării comenzii.
Cumpărătorii sunt singurii responsabili pentru alegerea, selecția și utilizarea produselor ST, iar ST nu își asumă nicio responsabilitate pentru asistența la aplicare sau proiectarea produselor cumpărătorilor.
Nicio licență, expresă sau implicită, pentru niciun drept de proprietate intelectuală nu este acordată de către ST prin prezenta.
Revânzarea produselor ST cu prevederi diferite de informațiile prezentate aici va anula orice garanție acordată de ST pentru un astfel de produs.
ST și sigla ST sunt mărci comerciale ale ST. Pentru informații suplimentare despre mărcile comerciale ST, consultați www.st.com/trademarks. Toate celelalte nume de produse sau servicii sunt proprietatea proprietarilor respectivi.
Informațiile din acest document înlocuiesc și înlocuiesc informațiile furnizate anterior în orice versiuni anterioare ale acestui document.
© 2025 STMicroelectronics – Toate drepturile rezervate

Documente/Resurse
![]() |
Alimentare cu USB de tip C ST STM32 [pdfManual de utilizare TN1592, UM2552, STEVAL-2STPD01, Alimentare STM32 USB Tip-C, STM32, Alimentare USB Tip-C, Alimentare Tip-C, Alimentare, Livrare |
