6
\$\begingroup\$

As the heading states, I would like to semi-passively detect the orientation of both ends of a USB-C connection. I understand that it is possible for the UFP and DFP devices to infer their own plug orientations, but how would the UFP device itself infer the overall cable arrangement?

I'd like to avoid having to introduce or use a high level protocol (ie USB 2.0 or something else). Low level manipulation of the CC pins or some other method would be acceptable.

\$\endgroup\$
5
  • 1
    \$\begingroup\$ And what do USB Type-C Specifications tell with this respect? \$\endgroup\$ Commented Aug 30, 2019 at 1:33
  • 1
    \$\begingroup\$ @Ale..chenski The spec provides guidance on detecting the orientation of the plug in one device or another, since that is all that is needed to orient the SS pairs correctly. This process uses the CC1 and CC2 pins. I am looking for a way to identify the overall orientation of the cable from the UFP. The problem, I suspect, is that the DFP is attached to both CC pins identically and thus there is no way to identify orientation of the whole cable from just one end. \$\endgroup\$ Commented Aug 30, 2019 at 13:59
  • \$\begingroup\$ Could you provide some context? That is, why do you care about the cable arrangement at all? \$\endgroup\$ Commented Sep 5, 2019 at 6:54
  • 3
    \$\begingroup\$ @DmitryGrigoryev I am exploring the possibility of using the USB C connector and cabling for a proprietary link. I would like to retain USB 2.0 compliance when connected to legitimate USB devices, but then use the SS pairs for other signals when connected device to device. \$\endgroup\$ Commented Sep 5, 2019 at 16:13
  • 2
    \$\begingroup\$ @BrendanSimpson You may need to look into whether it is actually legal to do that. You almost certainly wouldn't be able to call it USB-C (or say that it uses a USB-C cable), and it will be confusing to customers to have a product with a USB-C port that doesn't actually support USB-C. \$\endgroup\$ Commented Sep 5, 2019 at 17:36

1 Answer 1

2
\$\begingroup\$

The CC pins are used for this but you can only know the state of the connector nearest to the device you have, not the total orientation of the cable.

enter image description here

Only one CC pin is connected through the cable to establish signal orientation and the other CC pin is repurposed as VCONN for powering electronics in the USB Type-C plug.

To establish the proper routing of the active USB data bus from host to device, the standard USB Type-C cable is wired such that a single CC wire is position aligned with the first USB SuperSpeed signal pairs (SSTXp1/SSTXn1 and SSRXp1/SSRXn1) – in this way, the CC wire and USB SuperSpeed data bus wires that are used for signaling within the cable track with regard to the orientation and twist of the cable.

Source: https://www.silabs.com/community/mcu/8-bit/knowledge-base.entry.html/2016/09/26/what_s_the_role_ofc-kQYe

enter image description here

You won't be able to determine both sides of the configuration with passive methods, without some communication between the DFP and UFP, because the USB C connection is made to be symmetrical The devices can determine if they are flipped or not with the CC pins. But because of the symmetry the UFP can only determine if the cable on the UFP end is flipped or not. Likewise the DFP can only determine if the DFP is flipped or not.

Here are the ocnfi

With a controller however, the DFP can be determined from the UFP, but you'll have to get the configuration from the controller through the USB interface.

enter image description here
Source: https://www.richtek.com/assets/product_file/RT1730/DS1730-01.pdf

\$\endgroup\$
2
  • 2
    \$\begingroup\$ Since Rp are both the same, the voltage at (UFP's) CC1 would be the same in both cases of the DFP being flipped. This doesn't provide a way to identify what the DFP orientation is from the UFP device. \$\endgroup\$ Commented Sep 3, 2019 at 15:26
  • 1
    \$\begingroup\$ I apologize, I thought you wanted to detect the orientation on one side only. The only way to find the orientation of the cable on the other side is to find the state through the controller (the designers of USB 3.0 figured that since you have a data link you might as well use it). You can use the TCPC interface of USB 3.0 (an I2C bus) to read the state of the DFP controller, in some controllers (like the one listed above the register is called ROLE_CONTROL and it reads the state of the DFP cable \$\endgroup\$
    – Voltage Spike
    Commented Sep 4, 2019 at 17:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.