¿Se puede usar un puerto USB A hembra en un host OTG?

Estoy diseñando un dispositivo USB que actuará como host todo el tiempo. En lugar de usar un receptáculo mini-AB OTG, me gustaría usar un receptáculo A hembra clásico en la PCB. ¿Está esto permitido y puede causar problemas?

Aclaración: hago esta pregunta porque tengo un dispositivo en el que me gustaría usar la funcionalidad OTG, es decir, darle al usuario la posibilidad de conectarlo a la computadora O a un periférico, pero no puedo usar el mini/ conectores micro OTG y quiere usar conectores USB A y B clásicos. Idealmente, me gustaría que el puerto OTG pueda comunicarse tanto como un dispositivo como un host, pero eso probablemente sea imposible (?), así que si puedo encontrar una manera de permitir que el usuario conecte el dispositivo como un host o como un dispositivo usando UNO de los dos puertos, eso sería suficiente.

Aclaración #2:Principalmente quiero usar el puerto OTG como puerto host, pero si puedo usarlo también como puerto de dispositivo, esa es una característica adicional en el dispositivo en el que estoy trabajando que lo hará más atractivo. Sin embargo, no quiero usar conectores mini o micro. Entiendo que son la nueva tendencia y todo eso y que son geniales para smartphones y tablets pero para la aplicación en la que estoy trabajando no podemos ni queremos usarlos. Me gustaría agradecer a todos los que ya respondieron si puedo usar un puerto de host tipo A. Cualquier sugerencia sobre cómo podría agregar un puerto B también conectado al mismo puerto OTG, y dejar que el usuario conecte el producto como host o como dispositivo, pero no al mismo tiempo, sino usando un conector tipo A y B. que un solo conector micro o mini USB son bienvenidos. La confusión para el usuario no es un problema aquí, ya que podemos dejarlo perfectamente claro en el manual (por ejemplo, puede usar el puerto del host o del dispositivo, pero no al mismo tiempo; si usa el puerto del host, entonces el puerto del dispositivo no funcionará) O al revés). Espero que esto quede claro.

¿Por qué crees que podría ser un problema? Así es en todos los dispositivos solo de host.
Si su diseño es solo para host, todo el tiempo, ¿por qué menciona OTG en el título?
@AliChen porque el SoC que estoy usando tiene un puerto OTG y quiero asegurarme de no causar ningún problema cuando uso un conector USB-A hembra con el puerto.
Entonces SÍ desea usar su sistema/dispositivo como OTG, como un puerto de doble función. Entonces su aclaración contradice su primera oración, "actuar como anfitrión todo el tiempo". Por favor, tome su decisión y reformule su pregunta sin contradicciones.
@AliChen Agregué una aclaración para aclarar la confusión. Gracias por mencionarlo.

Respuestas (4)

Ciertamente, puede usar hardware OTG en el microcontrolador para hacer solo un host USB. No necesitas usar las extensiones OTG para nada. De hecho, ni siquiera debería mencionar nada sobre OTG. Lo que está haciendo es un host y, por lo tanto, debe usar un conector A hembra. Y si pretendes conectarte a una memoria flash USB, ¿qué otro conector podrías usar? Las memorias flash USB tradicionales generalmente siempre se conectan a conectores A.

Así que siga adelante y use el conector A hembra. Lo estás usando exactamente como se supone que debe usarse. Recuerde que debe proporcionar alimentación de 5V al conector A hembra.

gracias, ¿qué pasa si quiero conectar un conector USB A y B (estilo clásico) al puerto OTG y permitir que el usuario use uno de los dos para conectar el dispositivo a su computadora o conectar un periférico como un ratón al dispositivo? En ese caso, el puerto OTG probablemente solo pueda funcionar como host o dispositivo, pero no al mismo tiempo. ¿Hay alguna manera de hacer esto correctamente eléctricamente? En el SoC, puedo configurar el puerto OTG para que sea un host (es decir, forzarlo). La razón por la que pregunto es que me gusta la funcionalidad OTG pero odio los conectores mini/micro, en nuestra aplicación esos son un problema.
@b20000: para eso está el pin de identificación, por lo que no puede alejarse de los conectores de 5 pines para eso.
@b20000, y ¿cómo planea evitar que sus clientes conecten dos cables, desde un host y a un dispositivo, simultáneamente?
@AliChen quizás usando ti.com/lit/ds/symlink/ts3usb30.pdf ? con esto, debería poder conectar 2 conectores al mismo puerto OTG, y luego quizás usar el VBUS suministrado en el conector tipo B para detectar que algo estaba enchufado, cambiando el D+/D- al puerto tipo B. el valor predeterminado podría ser el puerto tipo A conectado.
@b20000, sí, un mux USB puede ayudar a separar B de A físicamente y reducir la confusión del cliente. Técnicamente puedes hacer lo que quieras. Aquí hay un ejemplo de otro dispositivo más complejo y confuso, superuser.com/questions/1136864/…
@AliChen si uso este mux y logro cambiarlo usando la presencia de VBUS o no, ¿qué hago con el pin de identificación? en el SoC tengo la posibilidad de forzar el puerto OTG a modo host. No estoy seguro de cómo se relaciona eso con el pin de identificación.
@AliChen ese dispositivo confuso al que te refieres es una buena razón para NO usar un conector tipo C o micro/mini OTG :-)
El pin de identificación debe estar correctamente relacionado con la presencia de VBUS en el conector B.
@AliChen, ¿sería suficiente conectar el pin de identificación internamente a través de un menú desplegable a GND cuando VBUS está presente?
@b20000, ??? Debe decidir cómo deben operar sus puertos, preferiblemente de una manera clara y razonable. Dibuje el diagrama de estado del dispositivo para todos los casos de uso y diseñe el control del pin de ID en consecuencia.

El conector físico no es obligatorio para que funcione. Es obligatorio cumplir y, francamente, no confundir al usuario final. Si su dispositivo va a ser un host de tiempo completo, independientemente de sus capacidades OTG, continúe y use el conector hembra USB A de tamaño completo. Ese es un uso perfectamente legítimo. En este caso, el pin de identificación de su microcontrolador debe estar permanentemente conectado a su PCB para el modo host, si no puede hacerlo en su código.

El USB tipo A no tiene pin de identificación :-)
Para aclarar, el microcontrolador con capacidad OTG puede tener un pin de identificación que debería vincularse, si no se maneja en el código.
Además, uno no puede estar "en cumplimiento" cuando se utilizan conectores no estándar que no cumplen. Por lo tanto, es un receptáculo micro-AB (los miniconectores están retirados) o tipo A. O tipo-C.
ok, veo que el OP tiene "OTG" en el título, lo que podría significar que la principal confusión es sobre qué hacer con la funcionalidad OTG adicional. Entonces su comentario sobre el pin de identificación está bien en su lugar.
¿Qué hay de tener dos conectores y una pieza deslizante de plástico que solo expone uno a la vez? ¿Permitirían los estándares que una pieza de equipo sea un host conforme cuando el deslizador está en una posición que solo expone un conector tipo A, y un dispositivo conforme cuando el deslizador está en una posición que solo expone el conector tipo B? He visto computadoras hacer eso con un puerto de teclado estilo PS/2 y DIN de 5 pines.
@supercat que parece un caso de borde extrañamente específico y dudo del usb, si se ha decidido por eso. Sin embargo, no puedo ver por qué no cumpliría con los estándares si los conectores solo se usan de manera compatible en un momento dado.

Sí, el receptáculo tipo A estándar sigue siendo una forma estándar de tener el diseño de host USB.

Sin embargo, la industria se está moviendo hacia los conectores tipo C. El Type-C puede parecer demasiado complicado al principio, pero puede optar por utilizar una configuración mínima de Type-C (solo USB 2.0, pullup de 56k de pines CC) para proporcionar la funcionalidad de host básica, pero aún así debe ser totalmente compatible con USB.

Pero si desea utilizar la funcionalidad OTG (según la aclaración de la pregunta), no es posible lograrlo con el receptáculo tipo A, porque el conector A no tiene el pin de identificación necesario para cambiar la función.

El puerto OTG tiene solo dos cables de datos físicos, D+ y D-. ¡El bus NO PUEDE SER DISPOSITIVO Y HOST SIMULTÁNEAMENTE! Es uno u otro. Dentro de su MCU hay dos funciones/controladores lógicos diferentes, un controlador de host y un controlador de dispositivo. COMPARTEN un solo USB PHY, mediante multiplexor interno de dos rutas de datos diferentes.

Sin embargo, puede colocar dos conectores USB, un receptáculo tipo B y un receptáculo tipo A, conectar D+/D- eléctricamente en paralelo, pero usar el VBUS del conector B como señal de interruptor OTG. Esto constituirá un feo kluge, contradice todas las especificaciones USB y causará una gran confusión entre los usuarios.

Por supuesto, será un gran inconveniente para el usuario durante un tiempo, pero Type-C hará que su diseño se vea genial y contemporáneo (y más costoso de hacer para usted :-( )

Cualquier sugerencia sobre cómo podría agregar un puerto B también conectado al mismo puerto OTG, y dejar que el usuario conecte el producto como host o como dispositivo, pero no al mismo tiempo, sino usando un conector tipo A y B. que un solo conector micro o mini USB son bienvenidos.

Afaicto lo que quieres hacer en este caso es

  1. Utilice un chip mux USB.
  2. utilice la línea VBUS del conector B como línea de control.

Cuando Vbus está presente en el conector B, cambia el MUX al conector B y le indica al procesador que entre en modo de dispositivo (por ejemplo, colocando su pin de ID en alto*).

Cuando Vbus no está presente en el conector B, cambia el MUX al conector A y envía una señal al procesador para que entre en modo host (por ejemplo, colocando su pin de identificación bajo*).

Si los dos enchufes están muy juntos, no le importa el cumplimiento de los estándares y confía en que sus usuarios no conecten ambos cables al mismo tiempo, es posible que pueda omitir el chip mux.

* Sin embargo, observe las especificaciones de nivel de voltaje para el pin de entrada ID, probablemente no desee conectarlo directamente a Vbus.