Project update 2 of 7
USB PD 3.0 has introduced a new PPS (Programmable Power Supply) mode. If your PD power source supports PPS, it allows devices to negotiate precise voltage range from 3.3 V 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.
Initially, the PD Micro library and hardware were designed for USB PD 2.0 with fixed power output. Now, however, more and more PPS-supported adapters are available in the market. We purchased a USB PD PPS power adapter and did some quick code modifications to PD Micro. Excitingly, we’ve verified that PD Micro can run the PPS protocol without issues.
Although FUSB302 hardware specifications only support PD 2.0, it can realize most USB PD 3.0 features with some limitations and workarounds. We list some that we found.
Limitations | Workarounds and Solutions |
---|---|
FUSB302 do not have enough FIFO for unchunked message | Use chunked message compatible with PD 2.0 |
FUSB302 VBUS senses low threshold at 4 V | disable vbus_sense if device is working in PPS mode |
TPS62175 input voltage range 4.75 - 28 V | USB-C always outputs 5 V before entering PPS mode, TPS62175 UVLO threshold is 2.9 V |
ATmega32U4 safe operation area is 8 MHz @ < 4.5 V | When requesting PPS below 4.5 V, use clock_prescale_set(clock_div_2) to slow down working frequency |
We updated the library with all workarounds implemented. To trigger PPS from the power adapter, please use another set of procedures to request PPS.
Please find more details in our GitHub repository.