Conectando dos hosts "USB C", ¿qué sucede?


12

Hasta el USB C, todos los conectores USB fueron elegidos cuidadosamente para que dos hosts no pudieran conectarse entre sí.

Con USB C, tanto el host como el dispositivo tienen el mismo conector. Con esta configuración, ahora es posible conectar dos hosts entre sí. USB C utiliza un cable activo que supongo que arbitra las conexiones para evitar daños eléctricos.

Supongo que una de las tres cosas podría suceder.

  1. Nada en absoluto
  2. Un error "no hagas esto" o algo así
  3. Se establece una conexión con un host que se envía como dispositivo al otro host. (parece poco probable)

¿Lo que pasa? ¿Es una de mis proposiciones o algo completamente diferente?


Pregunta interesante, desafortunadamente no tengo tiempo para averiguarlo. Sin embargo, plantea otra pregunta; ¿Hay dispositivos que sean USB-C solo de host?
Puffafish

Respuestas:


14

La respuesta depende de si los puertos de host son puertos de host regulares o "Puertos de doble rol" (DRP), al menos uno de ellos.

Si ambos puertos son puertos de host normales, no sucederá nada, por lo que (1) es cierto. (debido a que ambos puertos tendrán pull-ups en el pin CC, y esto no activará ninguna reacción del host, no se confirmará VBUS).

Si uno de los puertos (como en algunas tabletas / teléfonos modernos) es DRP, el puerto DRP alternará su función CC tratando de fingir como host, luego como dispositivo, y así sucesivamente. Dependiendo del otro puerto, se establecerá la conexión correcta. Entonces la respuesta es (3).

Si ambos puertos son DRP, el (3) sigue siendo cierto, solo la función de los dispositivos se determinará al azar, dependiendo del tiempo de conexión del cable en relación con el ciclo CC.

Estas son ESPECIFICACIONES para el conector Tipo-C.


Una enmienda a esto: la mayoría de los DRP están configurados como Try.Source o Try.Sink. Solo cuando son iguales es aleatorio, si uno tiene una preferencia de fuente y uno tiene una preferencia de sumidero, siempre se organizarán de esa manera.
crlanglois

1
@crlanglois, hay dos tipos de "roles" en el marco de Tipo-C, uno es el rol "host-dispositivo", y otro es "" proveedor-consumidor "o" fuente-sumidero ". Estaba hablando de" host- dispositivo "interruptor de doble rol. Aparentemente te refieres a los roles de poder, y obviamente pueden tener diferentes prioridades / preferencias.
Ale..chenski

2

Según aquí , nada malo sucederá siempre que ambos puertos USB Tipo-C funcionen según las especificaciones. Entonces, la opción (1) de su lista.

Para resumir esa publicación de blog en caso de que el enlace falle, él esencialmente explica la sección 2.3.1 de la especificación Tipo-C:

Sección 2.3.1 de la especificación USB tipo C Imagen de la publicación del blog vinculada.

Lo que esto dice es que, a diferencia de los puertos USB anteriores, la especificación USB Tipo-C exige que la alimentación no se aplique al puerto hasta que se complete la detección del pin CC. Básicamente, hay dos pines en el cable USB tipo C que se pueden usar para detectar pasivamente si un dispositivo es un host o un esclavo que usa resistencias sin habilitar el suministro de VBus.

Solo una vez que un host (DFP) detecta que se ha conectado un esclavo (UFP) comenzará la enumeración y habilitará el suministro de VBus.

Como resultado, cuando conecta dos hosts compatibles, nada sucederá, ya que ninguno detecta un esclavo en el otro extremo, por lo que no se aplica alimentación (evitando el cortocircuito de los suministros) y no se realiza señalización (evitando la contención del bus). Esta sería la opción (2) de su lista.


Sin embargo, si el dispositivo es un clon (barato) de algo que no cumple con la especificación, quién sabe qué sucederá. Si, por ejemplo, obtiene un cargador de teléfono USB tipo C y no está diseñado según las especificaciones, siempre puede habilitar el voltaje del bus, lo que podría causar daños. Sin embargo, eso es solo especulación.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.