Estoy tratando de depurar una placa ethernet de 100 Mbit y me encuentro con un problema que no puedo resolver.
Este es el diagrama de ojo para el par de transmisión. El par de recepción es muy similar. Es un LAN8700 PHY, y tengo la interfaz MII deshabilitada efectivamente, por lo que el PHY está transmitiendo secuencias de código INACTIVO. Está forzado a 100 Mbit/FDX según la hoja de datos. 100Mbit/HDX es idéntico.
Corrección: el diseño utiliza el suministro interno de 1,8 V del LAN8700 para alimentar su red VDD_CORE; Debo haber estado confundiendo el suministro lógico de 1,8 V con el suministro VDD_CORE en mi descripción anterior. Me parece que el ruido de la fuente de alimentación no es tan probable, ya que los niveles alto, cero y bajo son bastante decentes. Es decir, el ojo no está "aplastado". El hecho de que todas las violaciones parezcan transiciones muy buenas, simplemente "sesgadas" en el tiempo me hace pensar que el problema radica en el cristal o el suministro para el controlador de cristal/PLL en el PHY.
Si dejo que el diagrama del ojo se ejecute (alrededor de 15 minutos), las infracciones en la máscara se "rellenan" de modo que las infracciones blancas que ve en la imagen se convierten en formas de chevron blancas (>) en los lados derechos de las máscaras azules. Esto me diría que los errores de tiempo se distribuyen más o menos aleatoriamente en lugar de algún tipo de ruido discreto que quita el tiempo en una cantidad exacta.
El cristal que utiliza el PHY tiene una especificación de 30 ppm que se encuentra dentro de la especificación 802.3 de 100 ppm, e incluso dentro de la especificación recomendada de 50 ppm que especifica el PHY. Estoy usando condensadores de carga que coinciden con lo que busca el cristal, y está bastante cerca de lo que el LAN8700 especifica como su capacitancia nominal.
Antes de desactivar la interfaz MII, veía errores de trama (como informó el programa ifconfig de mi Linux). No hay errores si fuerzo el enlace a 10Mbit.
Una de las cosas muy extrañas que he notado es que si configuro el osciloscopio para que se dispare en la señal RX_ER (error de recepción) del PHY al MAC, nunca indica un error aunque los errores de trama se acumulen en los informes MAC. Ahora, al leer la hoja de datos para el PHY, está claro que en realidad hay muy pocas situaciones en las que RX_ER 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 CAM.
Entiendo los conceptos básicos de los diagramas de ojos, pero estoy mirando a 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 máscaras de patrones de ojos a fuentes probables.
(editar: esquema agregado, fuente de suministro VDD_CORE corregida)
Veo muchas cosas que podrían causar los problemas del diagrama de ojo que ves. No hay "pistola humeante", pero algunas cosas que podrían estropear las cosas.
Tiene tapas de 0,01 uF (C211, C212, C214 y C217) en los pines no utilizados del RJ-45 y las derivaciones centrales del transformador. Recomiendo acortar esas tapas. Su uso de mayúsculas aquí es inusual y podría causar problemas más adelante, aunque es poco probable que causen los problemas de diagrama de ojo que está teniendo. Por lo que puedo decir, la única razón para tener estos límites es como un esquema de bloqueo de CC para cuando alguien está usando un esquema de alimentación a través de Ethernet no estándar. El POE estándar no necesita esta protección y, dado que el estándar POE ahora es "antiguo", es poco probable que encuentre equipos estándar que no sean POE.
Retire C19 y C25, tapas de 10 pF en las resistencias de terminación de Ethernet. Estos son demasiado pequeños y están demasiado lejos de cualquier cosa crítica para ser de alguna utilidad.
Cambie C18 y C24, límites de 0,01 uF en las resistencias de terminación de Ethernet, a al menos 0,1 uF. Incluso podrías probar 4.7 uF. El "riel de alimentación" que estas tapas están desacoplando debe ser bastante estable, y podría haber una cantidad sorprendente de corriente fluyendo a través de las resistencias de terminación. Si L4/L5 está restringiendo demasiado el flujo de corriente y las tapas no están tomando el relevo, entonces podría tener errores de datos.
Retire C16, C17, C22 y C23, todos los límites de 10 pF en las líneas de datos Ethernet. La única razón para esto es el filtrado EMI y no son necesarios para la depuración. Quítelos para asegurarse de que no estén causando otros problemas. Siempre puede volver a colocarlos más tarde si es necesario.
Cambie C20 y C21, tapas de 0.022 uF en las tomas del centro del transformador, a por lo menos 0.1 uF. 1.0 uF también podría ser bueno para probar. Esta línea podría estar cayendo demasiado dada la resistencia de 10 ohmios y L4/L5. Incluso podría acortar esto a VCC para la depuración. La única razón para la resistencia (y en menor medida la tapa) es el filtrado EMI. Cuando vuelva a girar la PCB, debe conectar las resistencias de 10 ohmios directamente a VDD33 en lugar de pasar por L4/L5. La resistencia de 10 ohmios y L4/L5 son redundantes. Al ir directamente a VDD33, puede evitar inyectar ruido en sus resistencias de terminación y también facilita la optimización del filtrado en esta área.
Necesitará más tapas en el pin VDDIO o cortocircuite el cordón. Este pin proporciona energía a muchos pines de E/S y tendrá mucha corriente. Si no tiene corriente debido al filtro LC (perla + 0,4 uF), entonces tendrá mucho ruido de conmutación simultánea en los pines de E/S. Eso en realidad causará más ruido que el que estás filtrando con esa perla. Incluso es posible que este ruido llegue a las salidas de Ethernet.
Verifique que tenga los pines en su transformador correctos. Si bien es poco probable, es posible cambiar el toque central y otro pin. Vale la pena pasar 5 minutos verificando cosas. Para el caso, verifique también los pines de salida del LAN8700.
Si nada de eso mejora las cosas, obtenga un oscilador de lata de metal de 25 MHz y reemplace su cristal. He visto circuitos de cristal hacer cosas raras, así que aunque solo sea por tu tranquilidad, vale la pena modificar tu placa prototipo para asegurarte de que tu clk sea estable.
Eso es todo lo que veo en este momento. ¡Espero que esto ayude!
Mis 2 centavos: estoy de acuerdo con su recomendación de elegir el oscilador de cristal adecuado para 25 MHz. Utilicé el DP83865DVH de NSC en modo de 1 Gbit y cuando entró en un estado inestable en un cable de prueba largo ("especial" de mala calidad 5 cat y cerca de 110 m), reemplazar el XTAL marcó una gran diferencia. El circuito se volvió muy estable y el precio de tal "mejora" es de ~10 centavos solamente.
olin lathrop
akohlsmith
usuario3624
akohlsmith
el fotón
akohlsmith
usuario3624