11
\$\begingroup\$

Up until USB C all the USB connectors were carefully chosen so that two hosts could not be plugged into each other.

With USB C both the host and device have the same connector. With this setup it is now possible to plug two hosts into each other. USB C does use an active cable which I assume arbitrates connections preventing any electrical damage.

I assume one of three things could happens.

  1. Nothing at all
  2. An error "don't do this" or something like that
  3. A connection is established with one host submitting as a device to the other host. (seems unlikely)

What happens? Is it one of my propositions or something completely different?

\$\endgroup\$
  • \$\begingroup\$ Interesting question, unfortunately I haven't got the time to find out. It does raise another question though; are there any devices that are host-only USB-C? \$\endgroup\$ – Puffafish Sep 2 '16 at 13:19
12
\$\begingroup\$

The answer depends on whether the host ports are regular host ports, or "Dual-Role Ports" (DRP), at least one of them.

If both ports are regular host ports, nothing will happen, so (1) is true. (because both ports will have pull-ups on CC pin, and this will not trigger any host reaction, VBUS will not be asserted).

If one of the ports (like in some modern tablets/phones) is DRP, the DRP port will alternate its CC function trying to pretend as host, then as device, and so forth. Depending on the other port, right connection will be established. So the answer is (3).

If both ports are DRP, the (3) is still true, just the role of devices will be determined at random, depending on cable plug-in time relative to CC cycle.

These are SPECIFICATIONS for the Type-C connector.

\$\endgroup\$
  • \$\begingroup\$ One amendment to this: Most DRPs are configured as Try.Source or Try.Sink. Only when they are the same is it random, if one has a source preference and one has a sink preference they will always arrange themselves in that manner. \$\endgroup\$ – crlanglois Dec 4 '17 at 18:43
  • 1
    \$\begingroup\$ @crlanglois, there are two kind of "roles" in Type-C framework, one is "host-device" role, and another is ""provider-consumer", or "source-sink". I was talking about "host-device" dual role switch. You apparently mean power roles, and they obviously can have different priorities/preferences. \$\endgroup\$ – Ale..chenski Dec 5 '17 at 0:09
2
\$\begingroup\$

According to here, nothing bad will happen as long as both USB Type-C ports work to the specification. So option (1) of your list.

To summarise that blog post in case the link ever dies, he essentially explains section 2.3.1 of the Type-C specification:

Section 2.3.1 of USB Type-C Spec Image from the linked blog post.

What this says is that unlike earlier USB ports, the USB Type-C specification mandates that power is not applied to the port until CC pin detection is complete. There are basically two pins in the USB Type-C cable which can be used to passively detect whether a device is a host or a slave using resistors without enabling the VBus supply.

Only once a host (DFP) detects that a slave (UFP) has been attached will it start enumeration and enable the VBus supply.

As a result, when you plug two compliant hosts together, nothing at all will happen as neither detects a slave on the other end, so power is not applied (preventing shorting of supplies) and no signalling is performed (preventing bus contention). This would be option (2) from your list.


If however the device is a (cheap) clone of something which is non-compliant to the specification, who knows what will happen. If for example you get a USB Type-C phone charger and it isn't designed to spec, it may always enable the bus voltage, which could cause damage. That is just speculation though.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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