EEVblog Electronics Community Forum

Electronics => Projects, Designs, and Technical Stuff => Topic started by: ebastler on October 18, 2021, 07:14:13 am

Title: Minimal wiring for USB-C jack
Post by: ebastler on October 18, 2021, 07:14:13 am
I have used mini or micro USB jacks in various PCB designs, for power supply and/or serial communication via a CDC device. All purely for hobby purposes; the CDC device is typically implemented in an FPGA, and the D+/D- pins are directly wired to the FPGA (with the appropriate termination resistors of course).

With USB-C gradually taking over, I was wondering whether I can simply use the same wiring with USB-C jacks: Connect the data pins A6/B6 and A7/B7 in parallel, respectively, and likewise connect all GND pins and all VBUS pins. Is it as simple as that, and USB-C is backwards compatible with the older USB 2.0 that way, or is there something else I need to consider?

Thanks for your help!

(https://www.allaboutcircuits.com/uploads/articles/Fig1m11292018.png)
Title: Re: Minimal wiring for USB-C jack
Post by: ebastler on October 18, 2021, 09:21:12 am
Ah, I think I can largely answer my own question. The connections in the post above are correct, but in addition CC1 and CC2 will each need to be connected to GND via 5.1 kOhm resistors, to ensure that power is delivered from the host. Does that sound right?

https://community.cypress.com/t5/Knowledge-Base-Articles/Termination-Resistors-Required-for-the-USB-Type-C-Connector/ta-p/253544
Title: Re: Minimal wiring for USB-C jack
Post by: cowana on October 18, 2021, 10:01:43 am
That sounds right. Wiring the two D+/D- signals in parallel is correct for a slave device. Personally I've only used that with up to Full Speed (12Mbps); potentially if you're trying to use High Speed (480Mbps) you could run into SI issues and require a mux.

The first few designs I made with USB C connectors just connected the VCC/D+/D-/GND lines; while that works fine with a USB A to USB C cable, anything host which tries to do power negotiation via a USB C to USB C cable won't supply any power.

Adding the two 5k1 resistors to GND fixes this, and the system will work with both (legacy) USB A -> C and USB C -> C cables.
Title: Re: Minimal wiring for USB-C jack
Post by: ebastler on October 18, 2021, 12:13:30 pm
One more addition: Just found out that USB-C connectors with only the signals required for USB 2.0 are commonly available. Most have 16 pins  in a single row (4*GND, 4*VBUS, 4*DATA, 2*CC, 2*SBU), with the GND and VUS pins already grouped in pairs. That makes for a simpler footprint which is easier to connect. I am not sure when the SBU (side band use) pins would be used in such simplified connections -- analog audio in alternate mode maybe?

Here's an example connector from Molex: https://www.molex.com/pdm_docs/sd/2171790001_sd.pdf (https://www.molex.com/pdm_docs/sd/2171790001_sd.pdf)
Title: Re: Minimal wiring for USB-C jack
Post by: voltsandjolts on October 18, 2021, 01:35:51 pm
the CDC device is typically implemented in an FPGA, and the D+/D- pins are directly wired to the FPGA
What code/library/IP do you use for this usb implementation?
Title: Re: Minimal wiring for USB-C jack
Post by: ebastler on October 18, 2021, 04:20:49 pm
What code/library/IP do you use for this usb implementation?

The serial communications layer is by Joris van Rantwijk, http://jorisvr.nl/article/usb-serial (http://jorisvr.nl/article/usb-serial). I have combined this with a physical layer (USB 1.1 only) which also resides in the FPGA, by Rudolf Usselmann: https://opencores.org/projects/usb_phy (https://opencores.org/projects/usb_phy). I actually used this VHDL translation of Rudolf's original Verilog PHY layer: https://opencores.org/projects/usb11_phy_translation (https://opencores.org/projects/usb11_phy_translation).

I used these with Spartan-6 FPGAs mostly (or exclusively? Don't recall whether I got this to work on the -3A before migrating to the -6.)

Edit: Corrected the URLs (moved the stupid '.' outside of the URLs.)
Title: Re: Minimal wiring for USB-C jack
Post by: voltsandjolts on October 18, 2021, 04:38:36 pm
Interesting, thanks.
I wish only one of vhdl or verilog existed, don't care which :P
Title: Re: Minimal wiring for USB-C jack
Post by: Detzi on October 18, 2021, 05:38:09 pm
One more addition: Just found out that USB-C connectors with only the signals required for USB 2.0 are commonly available. Most have 16 pins  in a single row (4*GND, 4*VBUS, 4*DATA, 2*CC, 2*SBU), with the GND and VUS pins already grouped in pairs. That makes for a simpler footprint which is easier to connect. I am not sure when the SBU (side band use) pins would be used in such simplified connections -- analog audio in alternate mode maybe?

Here's an example connector from Molex: https://www.molex.com/pdm_docs/sd/2171790001_sd.pdf (https://www.molex.com/pdm_docs/sd/2171790001_sd.pdf)

With USB2 they are reserved for "alternate uses" like audio adapters and power delivery handshakes. Have a look at:
https://www.usb.org/sites/default/files/USB%20Type-C%20Spec%20R2.0%20-%20August%202019.pdf#%5B%7B%22num%22%3A595%2C%22gen%22%3A0%7D%2C%7B%22name%22%3A%22XYZ%22%7D%2C87%2C720%2C0%5D (https://www.usb.org/sites/default/files/USB%20Type-C%20Spec%20R2.0%20-%20August%202019.pdf#%5B%7B%22num%22%3A595%2C%22gen%22%3A0%7D%2C%7B%22name%22%3A%22XYZ%22%7D%2C87%2C720%2C0%5D)

eg https://www.usb.org/sites/default/files/USB%20Type-C%20Spec%20R2.0%20-%20August%202019.pdf (https://www.usb.org/sites/default/files/USB%20Type-C%20Spec%20R2.0%20-%20August%202019.pdf) Chapter 4.3