Dispositivo USB con 2 puertos: cómo protegerse contra la conexión del usuario en ambos

12

Tengo un dispositivo USB de velocidad completa para el que quiero proporcionar 2 puertos, uno en cada extremo opuesto del gabinete. Esto es para que el cable se pueda conectar donde sea más conveniente. Mi MCU (atmega32u4) solo tiene una interfaz, por lo que los puertos físicos se compartirán, pero solo se debe conectar uno a la vez.

Por supuesto, no se puede confiar en que los usuarios no conecten ambos lados a la vez. ¿Cómo protegerme contra esto?

Ideas que he encontrado:

  • Solo cabléelos "tal como están" y espero que el anfitrión pueda tratar con los pines D + / D unidos
  • Puerta NAND con pines de 5 V separados como entrada, salida a un MOSFET que desconecta Vcc cuando ambos están conectados.

¿Suena razonable la segunda opción o se requiere una solución más compleja?

    
pregunta monty

6 respuestas

23

Como se ha señalado, no puede conectar directamente dos hosts a un dispositivo, por lo tanto, si simplemente los conectara y alguien lo conectara en ambos extremos, tendría un problema.

Sin embargo, también tiene un problema si solo hay un extremo enchufado. El modo USB, especialmente el modo de alta velocidad (480Mbps) es la impedancia controlada. Si conecta ambas líneas de datos de conectores, terminará con lo que se conoce como un trozo en el diseño de alta frecuencia. El cable que va al conector no utilizado degradará el rendimiento del conector activo.

Para hacer esto correctamente, quieres un multiplexor IC. Puede comprar multiplexores USB 2.0 dedicados diseñados específicamente para este tipo de aplicación, algo como TS3USB30 . Eso le permitiría conectar las líneas de datos de ambos puertos a las entradas mux, y conectar la salida a su dispositivo internamente. El mux desconectará el conector no utilizado que desconectará los talones de la línea de transmisión.

Para la potencia, probablemente usaría un multiplexor de potencia como un circuito de diodo OR. La línea VBUS de uno de los puertos (antes del multiplexor de potencia) se puede usar como entrada al multiplexor de datos.

La conexión a tierra sería común (conectada) entre los dos puertos USB y su dispositivo.

    
respondido por el Tom Carpenter
9

El multiplexor sugerido por Tom Carpenter es una buena solución.

Pero para USB a toda velocidad (12 Mbps), los apéndices en las señales no son particularmente importantes. Si la distancia entre los extremos del talón permanece por debajo de 1/10 de la longitud de onda, es decir, por debajo de ~ 2 metros, los reflejos no distorsionarán mucho la forma de onda.

Además, los niveles de voltaje en los pines D + y D se mantendrán dentro del rango aceptable, por lo que no hay mucho riesgo de daño electrónico en ninguno de los hosts.

El principal problema que queda es que si conectas los pines + 5V de ambos hosts juntos, podría haber grandes corrientes involucradas. Podría usar un diodo de cada pin + 5V del conector USB para permitir que solo ingrese la corriente, nunca se apague.

    
respondido por el jpa
4

La forma de diseño electrónico perezoso sería utilizar un interruptor de conector múltiple físico para elegir cuál se usa.

Tenga en cuenta que esto tendría la ventaja adicional de poder dejarlos conectados y usar el interruptor para seleccionar qué entrada se va a usar.

    
respondido por el Lassi Kinnunen
2

No hay una forma compatible con USB de hacer esto. El USB no está diseñado para ser compartido entre dos hosts y el intento de hacerlo llevará a situaciones potencialmente desastrosas.

En el mejor de los casos, puede usar un multiplexor USB o un interruptor IC, con GPIO para determinar qué conector está conectado. Tendrá que decidir qué conexión USB tiene prioridad, ya que ambas no se pueden conectar a su interfaz USB al mismo tiempo.

O busca alternativas. Haga que una computadora se comunique con la otra. O usa Bluetooth o usa Wi-Fi o un tipo de conexión diferente.

    
respondido por el Passerby
2

Tengo una tableta Wacom con esta función. Manejan el problema que está describiendo mediante un bloqueo mecánico.

Hay un control deslizante de plástico que bloquea un puerto u otro, dependiendo de su posición.

    
respondido por el Drew
1

Quizás sería más fácil dejar el conector USB a un lado del gabinete y duplicar y / o reubicar simétricamente todos los demás elementos que se enfrentan al usuario. Luego, el gabinete se puede girar de manera que el puerto USB esté orientado hacia el conector, mientras que todos los demás elementos aún son accesibles.

Otra opción es ubicar ambos puertos en un lado del gabinete (en los extremos opuestos) y agregar un talón deslizante dentro del gabinete que el usuario puede mover para abrir un puerto o el otro. El USB de 12 MHz tiene una buena posibilidad de trabajar con un puerto extra desconectado conectado a él.

    
respondido por el Dmitry Grigoryev

Lea otras preguntas en las etiquetas