I want to explore more USB-C PD, in particular Programmable Power Supply (PPS), to supply my projects with power. There are some good projects1 using some standard communication (e.g. SPI or I2C) to communicate to as dedicated IC (e.g. STUSB4500, FUSB302, or AP33772), that then communicates via the CC pins to the PSU (USB-C PD PHY).
However, that means extra cost and extra space for the dedicated communication chip. I guess that's ok for most applications, but I'm curious; from reading a presentation explaining the details of the USB-C PHY layer I would think that it should be rather doable to implement the same logic directly into any better micro-controller (like an ESP32). I say that because the link speed is spec'ed at 300kbps at low impedance at 1.125V (shiftable to and from 3.3V e.g. with PCA9306) via two pins. Sure, then a lot of processing is happening on the logical data to the physical, but that should not be "too hard"TM to implement, right? Or am I missing any good reason/complication not to do that?
1 To name a few:
- SparkFun Power Delivery Board - USB-C (Qwiic) (STUSB4500)
- Mike Rakin's Board + Github (STUSB4500)
- Ryan Ma's "PD Micro" board + Github (FUSB302)
- Reclaimer Lab's USB-C Power Delivery PHY Breakout Board or USB-C Explorer board (both FUSB302)
- AP33772 Validation Platform Setup (AP33772)
Addition: Apparently there are a few micro-controllers with built-in capabilities (thanks @Justme), like the STM32G071. There is even an official discovery kit (STM32G071B-DISCO) and wiki entry.