J'essaie de déboguer une carte Ethernet 100Mbit et je rencontre un problème que j'ai du mal à résoudre.
Il s'agit du diagramme de l'œil pour la paire d'émission. La paire de réception est très similaire. C'est un LAN8700 PHY, et j'ai l'interface MII effectivement désactivée, donc le PHY transmet des séquences de code IDLE. Il est forcé en 100Mbit / FDX selon la fiche technique. 100Mbit / HDX est identique.
Correction: la conception utilise l'alimentation interne de 1,8 V du LAN8700 pour alimenter son réseau VDD_CORE; J'ai dû confondre l'alimentation logique 1,8 V avec l'alimentation VDD_CORE dans ma description précédente. Il me semble que le bruit de l'alimentation n'est pas si probable, car les niveaux haut, zéro et bas sont en fait assez décents. Autrement dit, l'œil n'est pas «écrasé». Le fait que les violations ressemblent toutes à de très bonnes transitions, juste "faussées" dans le temps, me fait penser que le problème réside dans le cristal ou l'approvisionnement pour le pilote de cristal / PLL dans le PHY.
Si je laisse le diagramme des yeux s'exécuter (environ 15 minutes), les violations dans le masque "se remplissent" de telle sorte que les violations blanches que vous voyez dans l'image deviennent des formes de chevrons blancs (>) dans les côtés droits des masques bleus. Cela me dirait que les erreurs de synchronisation sont plus ou moins distribuées de manière aléatoire plutôt que d'une sorte de bruit discret tirant la synchronisation d'une quantité exacte.
Le cristal que le PHY utilise a une spécification de 30 ppm qui se situe bien dans la spécification 802.3 100 ppm, et même dans la spécification recommandée de 50 ppm spécifiée par la PHY. J'utilise des condensateurs de chargement qui correspondent à ce que le cristal recherche et qui sont assez proches de ce que le LAN8700 spécifie comme sa capacité nominale.
Avant de désactiver l'interface MII, je voyais des erreurs de cadrage (comme indiqué dans le programme ifconfig de mon Linux). Il n'y a aucune erreur si je force le lien vers 10Mbit.
L'une des choses très étranges que j'ai remarquées est que si je configure la portée pour qu'elle se déclenche sur le signal RX_ER (erreur de réception) du PHY vers le MAC, elle ne signale jamais une erreur même si les erreurs de trame s'accumulent dans les rapports MAC. Maintenant, en lisant la fiche technique de la PHY, il est clair qu'il y a en fait très peu de situations où RX_ER affirmerait, mais je trouve très difficile de croire qu'avec un diagramme de l'œil comme ce que je vois, les erreurs se situent en fait entre la PHY et le MAC.
Je comprends les bases des diagrammes oculaires, mais je regarde certaines des affiches les plus expérimentées, en espérant qu'elles seraient en mesure de partager certaines de leurs expériences dans la traduction de violations spécifiques du masque oculaire vers des sources probables.
(modifier: schéma ajouté, source d'approvisionnement VDD_CORE corrigée)