puedo ser host usb sin OTG y USB-A en stm32

0

Bien, hola a todos!

¡Estoy un poco confundido con la posibilidad de USB y stm32 MCU!

Tengo un stm32l433rb y solo tiene una capacidad de dispositivo (velocidad) de usb. Por otro lado, en mi hardware, quería agregar un conector tipo A USB.

Así que no soy OTG, ¿entonces mi STM32 puede ser anfitrión de todos modos para leer algunos datos de un conector de llave USB en el USB-A? O simplemente puedo ser dispositivo? En la guía para la implementación de hardware: enlace , me muestran cómo implementar una línea descendente sin OTG Entonces, en este modo, soy el host y leo datos de un dispositivo, pero ... ¿no entiendo cómo hacerlo sin OTG?

Y si uso el stm32l475RC, con un puerto OTG, creo que puedo obligar a la MCU a ser host con un conector USB de tipo A (poner el pin de identificación a tierra, ¿no?) para que pueda leer una clave USB, pero si ¿Desea transferir datos de mi MCU a una PC? ¿Me pueden ver como un dispositivo o mi ID de pin puesta a tierra bloqueará esto? (¿Tal vez un anfitrión puede hablar con un anfitrión ...?).

¡Gracias por leer!

    
pregunta user1568445

2 respuestas

0

El host USB no puede hablar con otro host USB.

Parece que tienes una restricción de diseño para tener un receptáculo Tipo-A. Comprensible, para leer una llave USB. Pero cambiar el rol de los datos en tu diseño será problemático entonces.

Puede comenzar con su diseño con receptáculo Tipo A y establecer el OTG_FS_ID bajo. Será un host USB legítimo.

Sin embargo, para que su diseño sea un dispositivo USB, no puede usar un receptáculo Tipo A, debe ser un receptáculo Tipo B.

Lo que puede hacer es agregar otro conector Tipo B y des-multiplexar los datos USB utilizando un interruptor USB IC dedicado, porque las líneas de datos D + / D- ya están mezcladas dentro de la MCU.

Dado que los conectores tipo A o tipo B no tienen un pin de ID, el interruptor se puede hacer seleccionando manualmente el modo (establecer OTG_FS_ID bajo o alto). La dirección del interruptor de datos debe corresponder a la posición del interruptor OTG manual.

Alternativamente, puede usar VBUS = señal alta en el puerto Tipo B para hacer este cambio por usted. Entonces tendrá una prioridad de la función del dispositivo sobre la función del host si un cable B - A está conectado a un host de PC. Todo esto puede ser una gran confusión para los clientes, pero este es el precio que deben pagar los viejos conectores USB.

    
respondido por el Ale..chenski
2

El STM32L433 solo puede funcionar como un dispositivo USB. No puede actuar como anfitrión.

El STM32L475 se puede utilizar como host USB. Use un zócalo USB Micro-AB y conecte el pin de ID a OTG_FS_ID (PA10). El periférico USB realizará la detección de la línea de identificación y los roles de conmutación según corresponda; si un adaptador USB OTG está conectado, por ejemplo, detectará el pin de identificación conectado a tierra y cambiará las funciones a un host. Consulte el manual de referencia para más detalles.

    
respondido por el duskwuff

Lea otras preguntas en las etiquetas