Skip to content

STM32 expansion package providing an integrated solution for a robust protection of MCU-based USB Type-C applications

License

Notifications You must be signed in to change notification settings

STMicroelectronics/x-cube-tcpp

Repository files navigation

X-CUBE-TCPP Firmware Package

latest tag

Important

This repository has been created using the git submodule command. Please refer to the "How to use" section for more details.

Description

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 2.0 and Power Delivery 3.1) 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, STM32L5 and STM32U5).

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, the TCPP02-M18 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 TCPP02-M18 (Type-C port protection) is a single chip solution for USB Type-C port protection in the context of Source applications.

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 5205, TID 6408, TID 3036, TID 7884 and TID 8088.

Check the ST web page : USB Type-C and Power Delivery for more details.

The figure below shows the overall architecture:

How to use

This repository has been created using the git submodule command. Please check the instructions below for proper use. Please check also the notes at the end of this section for further information.

  1. To clone this repository along with the linked submodules, option --recursive has to be specified as shown below.
git clone --recursive https://github.com/STMicroelectronics/x-cube-tcpp.git
  1. To get the latest updates, in case this repository is already on your local machine, issue the following two commands (with this repository as the current working directory).
git pull
git submodule update --init --recursive
  1. To use the same package version as the one available on st.com, issue the command below after specifying the targeted vX.Y.Z version. This should be done after the command(s) indicated in instruction (1) or in instruction (2) above have been successfully executed.
git checkout vX.Y.Z # Specify the targeted vX.Y.Z version
  1. To avoid going through the above instructions and directly clone the same firmware version as the one available on st.com, issue the command below after specifying the targeted vX.Y.Z version.
git clone --recursive  --depth 1 --branch vX.Y.Z https://github.com/STMicroelectronics/x-cube-tcpp.git

Note

  • The latest version of this firmware available on GitHub may be ahead of the one available on st.com or via STM32CubeMX. This is due to the rolling release process deployed on GitHub. Please refer to this post for more details.
  • Option --depth 1 specified in instruction (4) above is not mandatory. It may be useful to skip downloading all previous commits up to the one corresponding to the targeted version.
  • If GitHub "Download ZIP" option is used instead of the git clone command, then the different submodules have to be collected and added manually.

Boards available

X-NUCLEO-SNK1M1_NUCLEO-G071

X-NUCLEO-SRC1M1_NUCLEO-G071

X-NUCLEO-DRP1M1_NUCLEO-G071

Applications

| Applications | Board | Expansion board | Format | Short Description | |--------------------|---------------|------------------------------------|--------|------------------------------|� | SNK1M1_Sink| NUCLEO-G071RB | X-NUCLEO-SNK1M1 | MX + SW pack | USBPD Sink application running on STM32G0XX devices, with X-NUCLEO-SNK1M1 expansion board. | | SNK1M1_Sink_PPS| NUCLEO-G071RB | X-NUCLEO-SNK1M1 | MX | USBPD Sink application (with PPS) running on STM32G0XX devices, with X-NUCLEO-SNK1M1 expansion board. | | SNK1M1_Sink_LPM| NUCLEO-G071RB | X-NUCLEO-SNK1M1 | | USBPD Sink application (with Low Power Mode) running on STM32G0XX devices, with X-NUCLEO-SNK1M1 expansion board. | | SNK1M1_Sink| NUCLEO-G474RE | X-NUCLEO-SNK1M1 | MX + SW pack | USBPD Sink application (with PPS and USB MSC cohabitation) running on STM32G4XX devices, with X-NUCLEO-SNK1M1 expansion board. | | SNK1M1_Sink_TypeC_Only| NUCLEO-L412RB-P | X-NUCLEO-SNK1M1 | | Type-C Sink application (with USB MSC enumeration) running on STM32L4XX devices, with X-NUCLEO-SNK1M1 expansion board. | | SRC1M1_Source_TypeC_Only| NUCLEO-F446RE | X-NUCLEO-SRC1M1 | MX + SW pack | Type-C Source application running on STM32F4XX devices, with X-NUCLEO-SRC1M1 expansion board. | | DRP1M1_DRP| NUCLEO-G071RB | X-NUCLEO-DRP1M1 | MX + SW pack | USBPD DRP application running on STM32G0XX devices, with X-NUCLEO-DRP1M1 expansion board. | | DRP1M1_DRP_LPM| NUCLEO-G071RB | X-NUCLEO-DRP1M1 | | USBPD DRP application (with Low Power Mode) running on STM32G0XX devices, with X-NUCLEO-DRP1M1 expansion board. | | DRP1M1_DRP| NUCLEO-G474RE | X-NUCLEO-DRP1M1 | MX + SW pack | USBPD DRP application running on STM32G4XX devices, with X-NUCLEO-DRP1M1 expansion board. | | SRC1M1_Source| NUCLEO-G071RB | X-NUCLEO-SRC1M1 | MX + SW pack | USBPD Source application running on STM32G0XX devices, with X-NUCLEO-SRC1M1 expansion board. | | SRC1M1_Source| NUCLEO-G474RE | X-NUCLEO-DRP1M1 | MX + SW pack | USBPD Source application running on STM32G4XX devices, with X-NUCLEO-SRC1M1 expansion board. |

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.11.0 + ST-LINK/V2

Included features

  • STM32CubeMonUCPD: Monitoring and configuration software tool for STM32 USB-C and Power Delivery 3.1 applications

Documentation

Tests

STMicroelectronics package has been certified by USB-IF through the reference TID 3036 and TID 5205.

Contributing

STM32 customers and users who want to contribute to this component can follow instructions provided in the CONTRIBUTING guide.

Keywords

USB-PD, Power Delivery, USB Type-C, TCPP01, TCPP02, TCPP03, STM32, STM32G0, STM32G4, STM32F4, STM32L4

Release note

Details about the content of this release are available in the release note here.