Tengo una placa bastante compleja que tiene algunos conversores de medios (fibra a cobre), también algunos enlaces de alta velocidad como 1000BASE-TX, SGMII, etc. (muchos circuitos integrados diferentes), y algunas veces tengo problemas para depurarla (los enlaces no parecen funcionar y tengo problemas para encontrar la causa raíz). Tengo un osciloscopio bastante simple (sólo 100 MHz, 1 Gsps). Me pregunto si valdría la pena comprar un osciloscopio más sofisticado u otro equipo para depurar algunos casos complejos. ¿Qué funcionalidades pueden ser útiles para depurar este tipo de enlaces? Sé que hay algunos osciloscopios que pueden leer tramas Ethernet, construir diagramas oculares, etc. ¿Es útil para depurar nuevos diseños? ¿Qué otra funcionalidad puede ser útil? Gracias. También es posible distinguir los datos reales de inactividad en 100BASE-TX, parece como scrambler mezclar todos los datos ...
Respuesta
¿Demasiados anuncios?No es fácil. No se llega tan lejos con un osciloscopio porque la codificación de la línea es muy difícil de observar. Sin embargo, puedes buscar actividad básica. Ten en cuenta que en 1000BaseT (según mi experiencia) a menudo ves actividad continua de la portadora, mientras que en velocidades más bajas sólo ves actividad cuando envías algunos datos. Esto al menos te permite saber si realmente está saliendo algo.
La mejor técnica que he encontrado en el pasado (en pequeñas placas embebidas) era hacer un cable de bucle de retorno (sólo cortar y tropezar un cable estándar y torcer los pares apropiados juntos), y luego enviar paquetes UDP cortos (es decir, cadenas de prueba) y mirar para ver los datos que regresan. Primero intenta que funcione a velocidades bajas, luego mira cómo te va a velocidades más altas. Hice esto recientemente y descubrí que el diseñador del hardware hizo una placa que sólo funcionaba a 10 y 100T, no a 1000, debido a un mal enrutamiento de la señal. (Por suerte eso no importó mucho en este caso).
Si no lo consigues, lo más probable es que el siguiente paso sea poner algún tipo de analizador lógico en los pines entre el uC y el PHY, típicamente MDIO, y mirar las transferencias a bajo nivel para ver si la configuración es correcta.
No hay duda de que otros pueden tener otras y mejores maneras, pero esto funcionó para mí.