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 los usuarios para no enchufar ambos lados a la vez. ¿Cómo protegerse contra esto?
Ideas que se me ocurrieron:
- Simplemente conéctelos "tal cual" y espere que el host pueda lidiar con los pines D + / D- unidos
- Puerta NAND con pines separados de 5 V como entrada, salida a un MOSFET que desconecta Vcc cuando ambos están enchufados.
¿La segunda opción suena razonable o se requiere una solución más compleja?
protection
usb-device
monty
fuente
fuente
Respuestas:
Como se señaló, no puede conectar directamente dos hosts a un dispositivo, por lo que si solo los conectó y alguien los conectó en ambos extremos, tendría un problema.
Sin embargo, también tiene un problema si solo hay un extremo conectado. USB, especialmente el modo de alta velocidad (480 Mbps) 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, desea un IC multiplexor. Puede comprar multiplexores USB2.0 dedicados diseñados específicamente para este tipo de aplicación, algo así como el TS3USB30 . Eso le permitiría conectar las líneas de datos de ambos puertos a las entradas de mux y conectar la salida a su dispositivo internamente. El mux desconectará el conector no utilizado que desconectará los terminales de la línea de transmisión.
Para la alimentación, 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.
fuente
El multiplexor sugerido por Tom Carpenter es una buena solución.
Pero para USB de alta velocidad (12 Mbps), los trozos en las señales no son particularmente importantes. Si la distancia entre los extremos del trozo permanece por debajo de 1/10 de la longitud de onda, es decir, por debajo de ~ 2 metros, los reflejos no distorsionarán demasiado la forma de onda.
Además, los niveles de voltaje en los pines D + y D- permanecerá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 si conecta los pines de + 5V de ambos hosts juntos, podría haber grandes corrientes involucradas. Puede usar un diodo de cada pin de + 5V del conector USB para permitir que la corriente entre, nunca salga.
fuente
La forma de diseño electrónico diferido sería simplemente usar un interruptor físico multiconector para elegir cuál se usa.
Tenga en cuenta que esto tendría el beneficio adicional de poder dejarlos enchufados y usar el interruptor para seleccionar qué entrada se utilizará.
fuente
No hay una forma compatible con USB para hacer esto. USB no está diseñado para ser compartido entre dos hosts e intentar hacerlo conducirá 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 pueden conectarse a su interfaz USB al mismo tiempo.
O mira alternativas. Haga que una computadora se comunique con la otra. O use Bluetooth o use Wi-Fi o un tipo de conexión diferente.
fuente
Tengo una tableta Wacom con esta función. Manejan el problema que está describiendo utilizando un enclavamiento mecánico.
Hay un control deslizante de plástico que bloquea un puerto u otro, dependiendo de su posición.
fuente
Quizás sería más fácil dejar el conector USB a un lado del gabinete y duplicar y / o reubicar todos los demás elementos orientados al usuario de forma simétrica. Luego, el gabinete se puede girar para que el puerto USB esté orientado hacia el conector, mientras que todos los demás elementos aún están convenientemente accesibles.
Otra opción es ubicar ambos puertos en un lado del gabinete (en los extremos opuestos) y agregar un trozo deslizante dentro del gabinete que el usuario puede mover para abrir uno u otro puerto. El USB de 12 MHz tiene una buena posibilidad de funcionar con un puerto extra desconectado conectado a él.
fuente