Skip to main content
Tutorials

USB Power Delivery Trigger HAT

Overview

This tutorial builds a USB Power Delivery trigger HAT. The board accepts USB-C input, uses a PD trigger/controller such as a CH224K, FP28XX, or PD2001 to request a fixed voltage, then exposes the negotiated output on terminal blocks.

The example focuses on the control and power-path structure rather than a vendor-specific reference layout. Always compare the final schematic against the datasheet for the exact PD controller and voltage-selection mode you choose.

Circuit Requirements

The HAT includes:

  • USB-C input connector
  • PD trigger/controller for 5V, 9V, 12V, 15V, or 20V negotiation
  • configuration pins for selecting the requested voltage
  • terminal block outputs for the negotiated rail and ground
  • status LED for power-good indication
  • input and output filtering capacitors

Final Circuit Preview

Step 1: Add USB-C Input

USB-C provides VBUS and ground. The PD controller uses the CC pins to negotiate the requested voltage with the charger.

Schematic Circuit Preview

Step 2: Add the PD Trigger Controller

Wire VBUS and ground into the controller. Connect CC1 and CC2 according to the datasheet for your chosen controller package. The output pin provides the negotiated rail after a successful USB PD contract.

Step 3: Configure the Output Voltage

Many trigger controllers use resistor straps or logic pins to choose the target voltage. The example uses three 10k configuration resistors; replace their connections with the exact strap pattern from the controller datasheet for 5V, 9V, 12V, 15V, or 20V.

Bill of Materials

ReferencePartNotes
J1USB-C receptaclePower input
U1CH224K, FP28XX, or PD2001USB PD trigger/controller
J22-pin terminal blockNegotiated output
C110uF capacitorInput bulk/filtering
C222uF capacitorOutput bulk/filtering
D1Green LEDPower-good indicator
R11k resistorLED current limit
R2-R410k resistorsVoltage-selection straps

Testing Procedure

  1. Inspect the board for shorts before plugging in USB-C power.
  2. Connect a USB PD-capable charger with current limiting if available.
  3. Measure the terminal block output with a multimeter before connecting a load.
  4. Confirm the selected voltage matches the strap configuration.
  5. Add load gradually and verify the controller and connector stay cool.

Example Host Code

The HAT does not require software for fixed-voltage negotiation. If you add a GPIO-connected power-good signal, a Raspberry Pi can read it like this:

from gpiozero import Button

power_good = Button(17, pull_up=False)

if power_good.is_pressed:
print("USB PD output is ready")
else:
print("USB PD output is not ready")

Layout Notes

Keep the USB-C connector, controller input pins, and input capacitor close together. Use wide copper for VBUS and VOUT, keep the terminal block output path short, and choose capacitor voltage ratings comfortably above the highest output voltage you plan to request.