An Engineer’s Guide to USB Type-C
17 points by dgv
17 points by dgv
Back in the days (14 y/o when I was programming MSP430 microcontrollers) TI's documentation was superb. Looks like that is still true today.
Working with their TMS320 series, their documentation level is superb. The problem is sometimes that they're too detailed. Virtually nobody needs to know how their C6000/C7000 pipeline works, but it's there. When trying to figure out how to do something, the sheer amount of pages is overwhelming sometimes.
I've been wanting to add USB Type-C to my FPGA computer, which currently uses OTG micro-AB.
It seems that Type-C got rid of OTG (which decided host/device roles based on whether you plugged in a physical Type-A or Type-B plug into the Type-AB receptacle?) and replaced it with PD negotiation (makes sense of course, but still annoying that it's not a passive drop-in replacement).
But unfortunately all the PD controllers I found contain a microcontroller with fixed firmware (programmable only with a "power policy configuration tool" that changes some config options) which goes against the spirit of the project...
Any options besides biting the bullet and using the closed firmware, or bit-banging the PD protocol myself in the FPGA?
You can use a "CC controller" like the TUSB321 to switch between host/device depending on what's plugged in, without having a PD controller.
The 321 operates through discrete pins for configuration and reading state, while the 320 uses I2C.