Skip to the content.

STUSB4500 SW drivers and tools (USB-C Power Delivery)

Autonomous USB-C PD controller for Power Sinks / UFP (i.e. on the device’s side)
Simple solution for barrel connector replacement, by using instead a universal USB connector.
Certified by USB-IF consortium for USB Type-C and USB Power Delivery applications (USB-C & USB PD).

Application summary

By default, a USB Type-C port on your hardware can get only 5V from a USB-PD Power Source (Host / DFP)
This product enables to automatically negotiate a higher voltage from the source (>5V) up to 100W (20V@5A).
For instance, if the power brick can provide 4 power profiles (5V, 9V, 15V and 20V), then the STUSB4500 will request the highest voltage available (20V).
Another example, if the power brick can provide 4 power profiles (5V, 9V, 15V and 20V) but the Application needs 9V to boot, then the STUSB4500 can be programmed to always request 9V.
This part can be easily implemented in a battery charger with USB-C input in the application.

The device doesn’t need any software to run (it is autonomous), but it is possible to connect to this device by I2C to take control over the default device behavior, or to get the power information (Voltage/Current) of the attached power source at the other side of the cable. This is what is shown in the demo source code of the project’s repository (stusb4500_firmware_src).

Info:

Presentation

The STUSB4500 is a USB Power Delivery controller (USB PD) that addresses sink devices. It implements a proprietary algorithm to allow the negotiation of a power delivery contract with a USB PD source without MCU support (auto-run mode). PDO profiles are configured in an integrated non-volatile memory (NVM).

The device supports dead battery mode and is suited for sink devices powered from dead battery state and requiring high power charging profile to be fully operational.

Thanks to its 20 V technology, it implements high voltage features to protect the CC pins against short-circuits to VBUS up to 22 V and to support high voltage on the VBUS pins directly connected to the VBUS power path up to 28 V.

Key Features

Programming

Register Programming

The USB-PD chip has 148 programmable registers (0x94).
To simplify the implementation, Use the firmware example contained in this repository (STSW-STUSB003 Software library for STUSB4500) to control the STUSB4500 with a Micro-controller, and take control over the default behavior of the device. You can for instance with the MCU request any PDO that you want from the DFP (you are no more limited to 3 PDOs).

Link: Source code for this project
Additional information: Firmware readme

NVM programming

The chip can be used in standalone with a custom configuration thanks to its internal memory.
The Non-Volatile Memory (NVM) contains the STUSB4500 configuration which load automatically at power-up.
But the NVM memory is not directly accessible byte per byte. It has to be accessed by block, following a specific sequence.
The NVM size is 40 bytes.

The NVM programming is done through I2C.
You can program the chip during manufacturing flow with any standard programming tool, as long as the tool has access to the I2C interface.

Link: Source code for this project

Here are the steps to program the NVM memory (with your own tools):

  1. Use the STSW-STUSB002 GUI to configure the STUSB4500 parameters according to your application needs (PDO, Voltage, Current, Overvoltage protection, …).
    Note that the GUI can be used offline for the parameters selection (i.e. without being connected physically to STUSB4500).
  2. With the GUI, generate the NVM config file (.h) (or .txt) which contains the binary configuration of STUSB45
  3. Use the NVM_Library source code (which contains the specific I2C sequence) to create an application which writes the binary configuration (.h) into the chip NVM memory
  4. Reset the chip so that it reloads its latest NVM configuration
  5. Now the chip is programmed. Each time it starts up, it will load the configuration from the NVM memory.

Here is a Faster alternative to program the NVM memory (with the GUI and Nucleo board):

  1. Connect the STUSB4500 eval board on top of STM32F072 Nucleo board. And connect the Nucleo board to your computer via USB.
  2. Use the STSW-STUSB002 GUI to configure the STUSB4500 parameters according to your application needs (PDO, Voltage, Current, Overvoltage protection, …).
  3. With the GUI, click the “Write NVM” button to flash the memory
  4. Reset the chip so that it reloads its latest NVM configuration

Block Diagram

Evaluation Boards

There are different boards available to test the product.

More

IMAGE ALT TEXT HERE IMAGE ALT TEXT HERE

IMAGE ALT TEXT HERE

IMAGE ALT TEXT HERE

Notes

The STUSB4500 is a standalone USB-C PD controller for UFP only (Power SINK).
Its counter part for DFP only (Power SOURCE) is STUSB47.
Because these 2 devices have been certified by USB-IF, it means they are interoperable with any USB-C PD application on the market.
Plenty of scenarios are possible, for instance:

Source ctrl USB-C cable Sink ctrl
STUSB47x0 <———-> STUSB4500
STUSB1600 <———-> STUSB4500
STUSB1700 <———-> STUSB4500
STUSB1602 + STM32Fx <———-> STUSB4500
STUSB1702 + SPC58 <———-> STUSB4500
STM32G0xx <———-> STUSB4500
STUSB47x0 <———-> STM32Fx + STUSB4500
STUSB47x0 <———-> STM32MP1 + STUSB4500
STM32MP1 + STUSB1600 <———-> STUSB4500
Any USB-C Source <———-> STUSB4500
Any USB PD Source <———-> STUSB4500