Estoy tratando de depurar una placa ethernet de 100Mbit y me encuentro con un problema que tengo problemas para resolver.
Este es el diagrama del ojo para el par de transmisión. El par de recepción es muy similar. Es un LAN8700 PHY, y tengo la interfaz MII efectivamente desactivada, por lo que el PHY está transmitiendo secuencias de código IDLE. Es forzado a 100Mbit / FDX según la hoja de datos. 100Mbit / HDX es idéntico.
Corrección: El diseño está utilizando el suministro interno de 1.8V del LAN8700 para alimentar su red VDD_CORE; Debo haber confundido el suministro lógico de 1.8V con el suministro VDD_CORE en mi descripción anterior. Me parece que el ruido de la fuente de alimentación no es una probabilidad tan alta, ya que los niveles alto, cero y bajo son realmente bastante decentes. Es decir, el ojo no está "aplastado". El hecho de que todas las violaciones se vean como muy buenas transiciones, simplemente "sesgadas" a tiempo me hace pensar que el problema radica en el cristal o el suministro del controlador de cristal / PLL en el PHY.
Si dejo que el diagrama del ojo se ejecute (aproximadamente 15 minutos), las infracciones en la máscara se "completan" de tal manera que las infracciones blancas que ve en la imagen se convierten en formas de galón blanco (>) en los lados derechos de las máscaras azules. Esto me diría que los errores de temporización se distribuyen más o menos al azar en lugar de algún tipo de ruido discreto que separa la temporización de una cantidad exacta.
El cristal que utiliza PHY tiene una especificación de 30 ppm que está dentro de la especificación 802.3 de 100 ppm e incluso dentro de la especificación recomendada de 50 ppm que especifica PHY. Estoy usando condensadores de carga que coinciden con lo que el cristal está buscando, y está bastante cerca de lo que LAN8700 especifica como su capacidad nominal.
Antes de deshabilitar la interfaz MII, vería errores de trama (como se informó en mi programa ifconfig de Linux). No hay errores si fuerzo el enlace a 10Mbit.
Una de las cosas más extrañas que he notado es que si configuro el alcance para que se active en la señal RX_ER (error de recepción) del PHY al MAC, nunca señala un error a pesar de que los errores de trama se acumulan en los informes MAC. Ahora, al leer la hoja de datos del PHY, está claro que en realidad hay muy pocas situaciones en las que RX_ER se afirmaría, pero me resulta muy difícil creer que con un diagrama de ojo como el que estoy viendo, los errores están realmente entre el PHY y el MAC
Entiendo los conceptos básicos de los diagramas oculares, pero estoy mirando algunos de los carteles más experimentados, con la esperanza de que puedan compartir algunas de sus experiencias en la traducción de violaciones específicas de las máscaras de patrones oculares a fuentes probables.
(editar: esquema agregado, fuente de suministro VDD_CORE corregida)