USB-C P/D hardware design question
I'm quite lost in the weeds of USB Type-C P/D and alt mode negotiation, so hopefully someone can help me out :)
I'm designing a simple sink, that needs to request power (not picky about voltages at all, but requesting max available would be ideal), and gets the DisplayPort signal out
From what I can see most chips don't use this configuration by default, and need either config/firmware flashing through proprietary tooling (eww), or an external controller, and there's a bunch of different (open source) firmware implementations for stm32/arduino/rp2040, with varying functionality.
What's the easiest way to get power + displayport, with the simplest (none) extra flashing steps or chips?
re: USB-C P/D hardware design question
So far: there's a single standard (TCPC) for port controllers, so you can use a chip from TI/NXP/Infineon that handles the PD protocol, and talk I2C to it from your microcontroller to configure modes etc. Means you have free choice in microcontroller but the only software stack is an adapation of Google's chromebook firmware, and all the others are purely focused on power, not alt modes.
Texas Instruments chips do offer a more all-in-one solution, but require some Windows application to flash configuration values into them
Infineon CCG3 has the "EZ-PD" stack, but also seems to have a specific version that comes pre-programmed for DP dongle applications, but isn't available through JLC SMT nor LCSC, and I'd especially like something JLC SMT has so I don't have to solder 40-QFN etc..
STM32 has 'Cube' software blocks for either doing the entire PD negotiation on chip, or talking the I2C TCPC protocol. Also seems like JLC SMT stocks a bunch of those again.
re: USB-C P/D hardware design question
@f0x hm, that's a tricky one, power and alt-mode are both negotiated over the CC pins, so you'd have to have your firmware negotiate the power requirements but also forward the alt-mode stuff for DP.
i'm honestly quite out of my depth with how it could be made to work. my best guess would be to use a micro with two usb-c peripherals for negotiation so you could cleanly forward negotiations.
something like STM32G081B has two type-c peripherals i think.
or you could do a static negotiation for displayport and make it work like a kinda passive adapter with power out.
but again, i have no idea how the alt-mode negotiation works.
USB-C P/D hardware design question
@f0x What kind of Displayport do you want to negotiate?
USB-C P/D hardware design question
@f0x I'm afraid there's no easy way to get even just DP-Altmode alone. The required lane switching to get it to work properly is pretty ugly.
Except for the Linux kernels USB-C CC negotiation code, there's pretty much no feature complete & properly working OSS implementation.
I think the propritary TI chips might be your best option, but I had trouble getting them to negotiate with some devices like USB powerbanks.
re: USB-C P/D hardware design question
@cmb I think you might have experience with this?