X-CUBE-TCPP MCU Firmware Package
X-CUBE-TCPP is an STMicroelectronics original initiative. It uses for USB Type-C and Power Delivery software expansion for STM32Cube (UM2285).
X-CUBE-TCPP is a USB-IF certified Expansion Package (USB Type-C Rev 1.2 and Power Delivery 3.0 with 100 W PPS support) and consists of libraries, drivers, sources, APIs and application examples running on STM32 Series GP microcontrollers embedding Type-C and power delivery management (thanks to the embedded UCPD PHY integrated in STM32G4, STM32G0 and STM32L5).
For the other STM32 GP MCU without embedded UCPD PHY (like STM32L4, STM32F0...), this package demonstrates how to comply with Type-C specification.
All the applications available in this package need to have either the TCPP01-M12 or the TCPP03-M20 integrated.
The TCPP01-M12 (Type-C port protection) is a single chip solution for USB Type-C port protection that facilitates the migration from USB legacy connectors type-A or type-B to USB Type-C connectors. The TCPP03-M20 (Type-C port protection) is a single chip solution for USB Type-C port protection in the context of Dual Role Power applications.
STMicroelectronics package has been certified by USB-IF through the reference TID 3036 and TID 5205.
Check the ST web page : USB Type-C and Power Delivery for more details.
The figure below shows the overall architecture:
Boards available
Applications
Applications | Board | Shield | Short Description |
---|---|---|---|
USBPDM1_Sink_PPS | NUCLEO-G071RB | X-NUCLEO-USBPDM1 | Use of USB Power Delivery (USB-PD) Consumer application (with PPS) running on STM32G0XX devices, with X-NUCLEO-USBPDM1 shield plugged. |
USBPDM1_Sink_LPM | NUCLEO-G071RB | X-NUCLEO-USBPDM1 | Use of USB Power Delivery (USB-PD) Consumer application (with Low Power Mode) running on STM32G0XX devices, with X-NUCLEO-USBPDM1 shield plugged. |
USBPDM1_Sink | NUCLEO-G474RE | X-NUCLEO-USBPDM1 | Use of USB Power Delivery (USB-PD) Consumer application running on STM32G4XX devices, with X-NUCLEO-USBPDM1 shield plugged. |
SNK1M1_Sink | NUCLEO-G071RB | X-NUCLEO-SNK1M1 | Use of USB Power Delivery (USB-PD) Consumer application (with PPS) running on STM32G0XX devices, with X-NUCLEO-SNK1M1 shield plugged. |
SNK1M1_Sink | NUCLEO-G474RE | X-NUCLEO-SNK1M1 | Use of USB Power Delivery (USB-PD) Consumer application (with PPS and USB MSC cohabitation) running on STM32G4XX devices, with X-NUCLEO-SNK1M1 shield plugged. |
SNK1M1_Sink_TypeC_Only | NUCLEO-L412RB-P | X-NUCLEO-SNK1M1 | Use of Type-C Consumer application (with USB MSC enumeration) running on STM32L4XX devices, with X-NUCLEO-SNK1M1 shield plugged. |
DRP1M1_DRP | NUCLEO-G071RB | X-NUCLEO-DRP1M1 | Use of USB Power Delivery (USB-PD) DRP application running on STM32G0XX devices, with X-NUCLEO-DRP1M1 shield plugged. |
DRP1M1_Sink_PPS | NUCLEO-G071RB | X-NUCLEO-DRP1M1 | Use of USB Power Delivery (USB-PD) Consumer application (with PPS) running on STM32G0XX devices, with X-NUCLEO-DRP1M1 shield plugged. |
DRP1M1_DRP | NUCLEO-G474RE | X-NUCLEO-DRP1M1 | Use of USB Power Delivery (USB-PD) DRP application running on STM32G4XX devices, with X-NUCLEO-DRP1M1 shield plugged. |
This Expansion Package is demonstrated on one hardware implementation, but can easily be ported to any STM32 including the UCPD periperal.
Development Toolchains and Compilers
- IAR Embedded Workbench for ARM (EWARM) toolchain V8.50.6 + STLink/V2
- Keil Microcontroller Development Kit (MDK-ARM) toolchain V5.31 + ST-LINK/V2
- STM32CubeIDE V1.7.0 + ST-LINK/V2
Included features
- STM32CubeMonUCPD: Monitoring and configuration software tool for STM32 USB-C and Power Delivery 3.0 applications
Documentation
-
Application Note AN5225 : USB Type-C™ Power Delivery using STM32xx Series MCUs and STM32xxx Series MPUs
-
User manual UM2552 : Managing USB power delivery stack with STM32 microcontrollers
-
An application to create a simple application from STM32CubeMX is available at this link : AN5418
-
Corresponding video here
License and release history
Details about the content of this release are available in the release note here.
Troubleshooting
Caution : The Issues requests are strictly limited to submit problems or suggestions related to the software delivered in this repo
For any question related to this solution, the hardware performance, the hardware characteristics, the tools, the environment, you can submit a topic on the ST Community/STM32 MCUs forum