# X-CUBE-USB-PD
**Repository Path**: plainsailinges/X-CUBE-USB-PD
## Basic Information
- **Project Name**: X-CUBE-USB-PD
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2021-03-10
- **Last Updated**: 2021-03-10
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# X-CUBE-USB-PD
"X-Cube-USB-PD" is the open source Firmware for STM32Fx microcontrollers. It support USB Type-C and USB PD up to 100W.
* The FW can be tested with the following Evaluation Kit:
* P-NUCLEO-USB002 (based on STUSB1602 controller + STM32F0)
* P-NUCLEO-USB001 (based on Discrete components + STM32F0)
* STM32G071B-DISCO discovery kit (based on STM32G0)
* STM32G081B-EVAL Evaluation board (contains 2 USB-C ports)
(The FW sources are located in the folder: STM32CubeExpansion_USBPD_F0)
Purpose:
--------
USB type-C (USB-C) and USB Power Delivery (USB-PD) controller based on STM32.
Work in any mode: DFP, UFP, and DRP (Dual Role Power)
Specifiation: Compliant with USB PD v2.0 & v3.0, and USB Type-C v1.2
Description:
--------
This is the firmware to use with either :
1. STM32 and a dedicated USB PD controller
2. or STM32 and GPIO/ADC pins to simulate a USB Type-C + PD controller.
- Case 1: Optimised PCB solution. No external components needed.
- Case 2: No specific USB-PD IC is required. Everything is managed by software. Making this discrete solution a low cost USB-PD controller. Just few external component are required like resitors, capacitors, and Mosfets.
These solutions from the silicon provider (STMicroelectronics) has been certified by the official USB organisation (USB-IF: USB implementer forum).
It only works on STM32 microcontroller (ARM Cortex-M based). But may be ported on other devices.
Hardware:
--------
Several boards are available to implement and test the USB-C PD firmware.
* Provider: STMicroelectronics
* Development board: __P-NUCLEO-USB002__ (contains NUCLEO-F072RB Board + MB1303 expansion board)
Onboard Devices:
* Embedded Controller: STM32F072 (runs the USB-PD stack in software)
* Analog Front End: STUSB1602 USB-PD controller (high voltage tolerant 28V)
* Note: NUCLEO-F072RB is the Nucleo board.
MB1303 is the Xpansion board containing STUSB1602, to connect on top of the Nucleo board.
* Development board: __P-NUCLEO-USB001__ (contains NUCLEO-F072RB Board + MB1257 expansion board)
Onboard Devices:
* Embedded Controller: STM32F072 (runs the USB-PD stack in software)
* Analog Front End: Discrete implementation with several external components
* warning: STM32F0 is not 5V compatible, but 3.6V max --> needs external components.
* Development board: __STM32G071B-DISCO__ (USB-C Discovery kit for STM32G071RB MCU)
Onboard Devices:
* Embedded Controller: STM32G071 with UCPD feature (runs the USB-PD stack in software)
* Analog Front End: Discrete implementation (warning: STM32G0 is not 5V compatible --> needs external components).
* warning: STM32G0 is not 5V tolerant, but 3.6V max --> needs external components.
* Development board: __STM32G081B-EVAL__ Evaluation board (the daughterboard features 2 independent USB-C ports controlled)
Onboard Devices:
* Embedded Controller: STM32G081RBT6 with UCPD feature (runs the USB-PD stack in software)
* Analog Front End: Discrete implementation
* warning: STM32G0 is not 5V tolerant, but 3.6V max --> needs external components.
--------
X Cube USB PD
STUSB1602 solution or Discrete solution
STM32G0 world 1st general purpose MCU with USB-C support