STM32 "Dispositivo USB" frente a "USB OTG HS": ¿cuál es la diferencia?

10

Recientemente descargué la aplicación stm32 para la búsqueda de MCU y descubrí que, por ejemplo, STM32F429 tiene "NO" en el periférico "Dispositivo USB", mientras que dice "SÍ" en "USB OTG FS" y "USB OTG HS". Lo cual es bastante sorprendente ya que STM32F429 es completamente funcional como dispositivo USB, es decir, es compatible con todas las bibliotecas y clases de USB.
Algunas otras MCU tienen "Dispositivo USB" indicado, por ejemplo. STM32L052 ingrese la descripción de la imagen aquí

Luego traté de verificar CubeMX y descubrí que hay un periférico USB_Device en su búsqueda (y nuevamente STM32F429 no lo incluye, el material USB se realiza a través de OTG).

Puede ser una pregunta bastante fácil ya que sospecho que Dispositivo USB simplemente significa el que no es compatible con OTG, pero no estoy seguro, por lo general, las MCU usan OTG de todos modos (y, además, solo hay una biblioteca, entonces, ¿por qué decir "NO" en USB periférico). No pude encontrar información al respecto en google o en la documentación de CubeMX.

Realmente no me preocupa mucho ya que USB OTG HS parece funcionar bien con la biblioteca, pero me pregunto sobre la terminología.

Entiendo que probablemente el foro ST es un lugar mejor para esta pregunta, pero muchos temas simplemente no son respondidos o respondidos después de 2 años. :)

Gracias.

ScienceSamovar
fuente
1
He tenido esa experiencia con los foros ST, así que comprendo ...
dim
Con respecto a que el foro ST tiene una mala contribución, aparentemente no es solo el foro, sino también por correo electrónico, abrí un ticket sobre un posible error en uno de sus documentos y ejemplos de USB, pero nadie (todavía) se molestó en escribirme. Lo cual es realmente molesto.
Mohammed Noureldin

Respuestas:

16

Su pensamiento es correcto: los dispositivos que están marcados como "Sí" en la columna de dispositivos USB solo pueden actuar como dispositivos USB. No son compatibles con la especificación OTG, y tampoco pueden actuar como host.

Pero, por supuesto, cualquier dispositivo capaz de USB OTG puede, por otro lado, actuar como un dispositivo simple. El que puede hacer más puede hacer menos.

Los identifican de esta manera porque el "dispositivo USB", "OTG FS" y "OTG HS" son tres núcleos IP diferentes en los chips. Todos tienen sus capacidades / especificaciones particulares, y pueden requerir diferentes controladores (como notó).

Para resumir:

  • Dispositivo USB: solo puede actuar como dispositivo, a toda velocidad (12 Mbps)
  • USB OTG FS: capaz de actuar como dispositivo / host / periférico OTG, a toda velocidad (12 Mbps)
  • USB OTG HS: capaz de actuar como dispositivo / host / periférico OTG, a toda velocidad (12 Mbps) o alta velocidad (480 Mbps). Tenga en cuenta que el núcleo HS para [la gran mayoría de] MCU ST requiere un chip externo ULPI PHY para admitir realmente alta velocidad. El PHY en chip solo puede funcionar a toda velocidad. ... Sí, es muy confuso.

* Editar : Parece que ST finalmente hizo algunos esfuerzos para integrar un PHY de alta velocidad en chip en algunas de sus MCU más nuevas (más específicamente: algunas de las versiones STM32F7x3 y STM32F730, en este momento). Sin embargo, no hay una columna específica que indique claramente esta característica en su tabla de selección de dispositivos, lo que nuevamente aumenta la confusión. Debe mirar los detalles de la hoja de datos.

oscuro
fuente
Ok, gracias, solo quería escucharlo no desde mi propia cabeza :)
ScienceSamovar
1
En relación con esto tengo un sistema iMX que tiene tanto "CONEXION USB" y "FS" OTG, dándole dos puertos USB utilizables - pero requieren diferentes conductores! Algo similar puede aplicarse a ST: la misma funcionalidad que requiere un software diferente.
pjc50
De hecho, estoy seguro de que tienen, o tuvieron en el pasado, dispositivos que tenían múltiples puertos periféricos con diferentes niveles de características. Esta es una forma inequívoca de enumerar las características de una variedad de partes (o lo hubiera parecido en el pasado)
Sean Houlihane
¡Oye! ¿Podrías expandirte un poco? Si un microcontrolador admite USB OTG, ¿podría teóricamente tener dos puertos USB conectados al chip: 1 para actuar como un host USB OTG (por ejemplo, conectar un teclado) y el otro USB para actuar como dispositivo? ¿Hay un término para describir este comportamiento?
NessDan
1
@Ness Si el chip solo incrusta el bloque USB OTG, no, no puede. Pero muchos MCU de alta gama incluyen tanto el dispositivo USB como los bloques USB OTG. Entonces puede usar ambos simultáneamente y tener dos puertos independientes en su MCU: uno que actúa como dispositivo y el otro como host, sí. Revisa las hojas de datos.
tenue