Close
0%
0%

PD Micro - USB-C PD3.0 PPS Trigger

Arduino-compatible ATMega32U4 board with USB-C PD3.0 PPS Trigger

Public Chat
Similar projects worth following
USB PD3.0 introduces a new PPS (Programmable Power Supply) mode. If PD power source support PPS, It allows devices to negotiate precise voltage range from 3.3V to 5.9/11/16/21 V with 20 mV step. Being a programmable power supply, PPS supports a coarse current limit, with the value in 50 mA step.

PD Micro is the first Arduino-compatible board with USB Type-C Power Delivery and PD3.0 PPS support. The output voltage can be easily programmed with Arduino sketches.

The software library is newly-implemented, targeted for sink-only devices. It is compact enough to fit inside the ATmega32U4 controller and consumes less than half of the total memory and flash space.

Introduction:

This project was created with the goal of creating a compact, portable USB PD library for sink only devices. I went through all available open-source or vendor-provided PD libraries, they are enormous and difficult to implement on small projects. 

To tackle this, I study the PD specification, PD PHY chip datasheet, re-write everything without reference to any existing resource. The result is a 3 source file, 3 header library with less than 2000 lines of code in total, consume less than 8k Flash, and 1k RAM in ATmega32U4.

Campaign:

This project is small. Hardware and software codes are ready. I put all details in GitHub. I started a campaign in crowd supply. If you like the project, please support it. I will release all the design files in the last week of the campaign.

Specifications:

  • Power
    • USB PD2.0 Fixed Power of 5, 9, 12, 15, or 20 V at a maximum of 5 A (100 W at 20 V)
    • USB PD3.0 PPS provides 3.3V-21V output in 20mV step
    • USB Type-C port (for power delivery and programming)
      • FUSB302 USB Type-C PHY (USB PD communication on CC pins)
      • ESD protection on D+/D-/CC1/CC2 pins
    • TPS62175 DC-DC for efficient 5-20 V output
    • 3.5 mm, 2 position terminal block for power output
    • Four-layer PCB with ground plane and 3 mm wide VBUS trace
  • Microcontroller: ATmega32U4 running at 5 V and 16 MHz
  • I/O: pin-compatible with Pro Micro
    • 8x 10-bit ADC pins
    • 12x Free Digital I/Os
    • 5x GND pins
    • 3x VBUS pins (USB-C power)
    • 1x 5 V pin (DC-DC output)
  • PD Status LEDs:
    • TX / RX activity
    • 5 LED for power delivery voltage level
    • 3 LED for power delivery current level
  • Reset button
  • Size: 1.6 x 0.7 inches (extra 0.3 inches for power connector pins)
  • Programming: through USB via the Arduino IDE using the default Arduino Leonardo board setting

Adobe Portable Document Format - 84.70 kB - 01/04/2021 at 18:43

Preview
Download

View project log

Enjoy this project?

Share

Discussions

Emre Özkan wrote 9 hours ago point

Hi! Very nice design, I'm just starting to use type c and specs are very good. 

Might be off topic but your KiCad renders are looks very good. When I try to render from top view, the colors are gets brighter and looks bad. Can you share your render settings? 

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates