¿Cómo probar las caídas de USB en el STM32F?

4

Tengo un dispositivo que es realmente extraño, cae USB periódicamente. Periódicamente me refiero a una base semanal (o quincenal). Al abandonar, me refiero a que Windows pierde el asa del conductor. Los abandonos no son bien tolerados por quienes usan los dispositivos. Lo extraño es que uso un diseño similar en la mayoría de los productos que tenemos (más sobre esto más adelante), por alguna razón, este no quiere jugar bien, algunos de los otros dispositivos funcionan durante meses o años (con el mismo diseño pero diferente diseño) con cero problemas.

Solo está en algunos de los dispositivos , por lo que probablemente descarte el firmware / software.

El USB es 2.0 FS, se ejecuta en un STM32, con un chip de diodo ESD en el medio.

El esquema (D + y D- y OSC_IN y OSC_OUT (se heredó el diseño del oscilador) van a sus pines correspondientes)

Una mejor pregunta sería, ¿cómo hago pruebas para estos abandonos? ¿Hay algún método que pueda monitorear un dispositivo durante largos períodos de tiempo con millones de paquetes y encontrar la fuente del error?

    
pregunta laptop2d

3 respuestas

11
  

¿Existe algún método que pueda monitorear un dispositivo durante largos períodos de tiempo?   de tiempo con millones de paquetes pasando y encontrar la fuente de la   error?

Sí. El dispositivo se llama "analizador de protocolo USB".

Si solo supervisa el lado del software del host, lo máximo que puede ver es que hubo un "error de transacción" y que el puerto puede o no puede recuperarse después de la caída. El protocolo USB tiene medios asistidos por hardware para volver a intentar las transacciones fallidas y el software no tiene ninguna visibilidad del "recuento de errores". Por lo tanto, debe identificar la causa raíz del error a nivel físico, en los cables D + / D-.

Hay analizadores USB asequibles, especialmente para la tasa de USB 1.1 (FS 12 Mbps). Se puede configurar un buen analizador para un disparador sofisticado mientras se monitorea el tráfico en un bucle largo, o incluso se registra el tráfico completo hasta la capacidad de su disco duro. Recomendaría un pequeño modelo de Mercury T2 de Teledyne / Lecroy , pero otros tipos como Ellisys y Totalphase Beagle están mejorando y mejorando.

Sin embargo, debe tener cuidado, ya que los analizadores son algo invasivos y sus conectores / internos tienen algún efecto sobre la integridad de la señal. En caso de una conexión defectuosa y un índice de error raro, el analizador puede mejorar la señal (y es posible que nunca vea el problema) o puede anular la funcionalidad del enlace (lo que será útil para identificar el problema).

En resumen, debe identificar quién tiene la culpa cuando ocurre la caída del dispositivo. Podría ser (a) que el dispositivo responda incorrectamente a un protocolo USB válido, (b) problema de integridad de la señal del canal o (c) el hardware del host tenga un error al manejar algunas peculiaridades del protocolo USB.

Comenzaría con (b) y verificaría si todas las señales en el bus cumplen con las especificaciones básicas de la señal USB: frecuencia de patrón dentro de 2000 ppm, jitter dentro de la norma, los bordes de la señal son monotónicos, y el ojo de la señal cumple con la máscara del diagrama, todo Sus cables, dispositivos y hosts específicos. Hay procedimientos estándar descritos en el sitio web de USB-IF sobre cómo realizar las pruebas eléctricas dentro del programa de cumplimiento de USB .

Si las señales cumplen con las especificaciones básicas de la señal del FS, el analizador de protocolo sería lo siguiente a implementar. Si pudiera ser difícil configurar el desencadenante adecuado y tener una interpretación correcta de los eventos del bus que llevan a un error. Si no tienes experiencia con los analizadores USB, es posible que necesites un poco de capacitación u obtener un asesor.

    
respondido por el Ale..chenski
4

Tuve un problema similar con algo en lo que estaba trabajando. Parece que los niveles de señal fueron más bien marginales y todo se volvió sensible a la calidad o longitud del cable USB. Podría comenzar a observar los niveles de señal, y tal vez probar un cable más corto y ver si eso mejora las cosas. Todos los cables USB no son iguales: algunos tienen conductores más gruesos para las líneas de datos que otros.

    
respondido por el Dirk Bruere
1

Tuvimos problemas similares en el pasado. El dispositivo USB en serie estaría bien en algunas PC durante meses y en algunas perderíamos la comunicación todas las semanas. Comenzamos con la ejecución de tres dispositivos en dos PC con Windows idénticas (combinación que a veces tendría problemas) y una caja de Ubuntu con un sencillo software de registro en disco. Después de un tiempo, una ventana de Windows lo perdió, el puerto simplemente desapareció. La pila de controladores USB de Windows (este fue Win7) es un montón de cosas heredadas que aparentemente no pueden manejar las peculiaridades de los chips FTDI. Así que mi sugerencia es ejecutar la prueba en dos configuraciones idénticas + una tercera diferente. Si deja de responder, tiene un problema con la combinación de dispositivo + controlador usb + controlador. Si no es así, es probable que se trate de un problema de señal: el monitor USB podría ayudarlo.

    
respondido por el nighthawk

Lea otras preguntas en las etiquetas