Diagrama do olho pobre, por onde começar a procurar?

10

Estou tentando depurar uma placa Ethernet de 100Mbit e estou enfrentando um problema que estou tendo problemas para tentar resolver.

diagrama de olho de par tx esquemático

Este é o diagrama do olho para o par de transmissão. O par de recebimento é muito semelhante. É um LAN8700 PHY, e eu tenho a interface MII efetivamente desativada, então o PHY está transmitindo seqüências de código IDLE. É forçado a 100Mbit / FDX conforme a folha de dados. 100Mbit / HDX é idêntico.

Correção: O projeto está usando a fonte interna de 1,8V do LAN8700 para alimentar sua rede VDD_CORE; Eu devo ter confundido a fonte lógica de 1,8V com a fonte VDD_CORE na minha descrição anterior. Parece-me que o ruído da fonte de alimentação não é uma probabilidade tão alta, pois os níveis alto, zero e baixo são realmente bastante decentes. Ou seja, o olho não é "esmagado". O fato de todas as violações parecerem muito boas transições, apenas "distorcidas" a tempo, me faz pensar que o problema está no cristal ou no suprimento para o cristal driver / PLL no PHY.

Se eu permitir que o diagrama ocular corra (cerca de 15 minutos), as violações da máscara "preenchem", de modo que as violações brancas que você vê na figura se tornem formas brancas de chevron (>) no lado direito das máscaras azuis. Isso me diria que os erros de temporização são distribuídos mais ou menos aleatoriamente, em vez de algum tipo de ruído discreto, arrancando a temporização de uma quantidade exata.

O cristal que o PHY está usando possui uma especificação de 30ppm, que está dentro da especificação 802.300 de 100ppm e mesmo dentro da especificação recomendada de 50ppm especificada pela PHY. Estou usando capacitores de carregamento que correspondem ao que o cristal está procurando e está bem próximo do que o LAN8700 especifica como sua capacitância nominal.

Antes de desativar a interface MII, eu via erros de enquadramento (conforme relatado no programa ifconfig do meu Linux). Não há erros se eu forçar o link para 10Mbit.

Uma das coisas muito estranhas que notei é que, se eu configurar o escopo para disparar no sinal RX_ER (receber erro) do PHY para o MAC, ele nunca sinaliza um erro, mesmo que os erros de quadro se acumulem nos relatórios do MAC. Agora, ao ler a folha de dados do PHY, fica claro que existem realmente muito poucas situações em que o RX_ER afirmaria, mas acho muito difícil acreditar que, com um diagrama ocular como o que estou vendo, os erros estão realmente entre o PHY e o MAC.

Entendo o básico dos diagramas oculares, mas estou olhando para alguns dos pôsteres mais experientes, esperando que eles possam compartilhar algumas de suas experiências na tradução de violações específicas da máscara de padrão ocular a fontes prováveis.

(editar: adicionada fonte de fornecimento esquemática e corrigida do VDD_CORE)

akohlsmith
fonte
O que você está desencadeando? Como você sabe que o gatilho não tem instabilidade ou falta ocasional, não sinal?
Olin Lathrop
Estou usando o software de aplicativo de teste de conformidade Ethernet no escopo. Testei o aplicativo de teste de conformidade em uma placa de desenvolvimento que passa com cores vivas.
akohlsmith
Eu precisaria de esquemas para dizer qualquer coisa com certeza. No momento, meus suspeitos são: fontes de alimentação PLL, problemas XTAL, terminação e não manuseio correto das derivações do centro do transformador. Naquela ordem. Com os esquemas, eu poderia restringir parte disso.
Pergunta atualizada para incluir o esquema
akohlsmith
Parece-me "engraçado" que o toque central de um transformador esteja ligado à mesma fonte isolada por indutor que termina as linhas de sinal do outro transformador. E vice versa. Mas eu nunca fiz nenhum trabalho de Ethernet como esse antes, então não sei se não é exatamente o que você deveria fazer.
The Photon

Respostas:

8

Vejo muitas coisas que potencialmente poderiam causar problemas no diagrama ocular que você vê. Não há "arma de fumar", mas algumas coisas que podem potencialmente atrapalhar as coisas.

Você possui tampas de 0,01 uF (C211, C212, C214 e C217) nos pinos não utilizados do RJ-45 e nas derivações centrais do transformador. Eu recomendo colocar em curto esses limites. O uso de tampas aqui é incomum e pode causar problemas mais tarde, embora seja improvável que eles estejam causando os problemas do diagrama de olho que você está tendo. Quase como eu posso dizer, a única razão para ter esses limites é como um esquema de bloqueio de DC para quando alguém estiver usando um esquema não padrão de energia sobre Ethernet. O POE padrão não precisa dessa proteção e, como o padrão do POE agora é "antigo", é improvável que você encontre equipamento padrão que não seja do POE.

Remova as tampas C19 e C25, 10 pF dos resistores de terminação Ethernet. Eles são muito pequenos e muito distantes de qualquer coisa crítica para serem úteis.

Altere os limites C18 e C24, 0,01 uF nos resistores de terminação Ethernet, para pelo menos 0,1 uF. Você pode até tentar 4.7 uF. O "trilho de força" que essas tampas estão desacoplando precisa ser razoavelmente estável e pode haver uma quantidade surpreendente de corrente fluindo através dos resistores de terminação. Se L4 / L5 estiver restringindo muito o fluxo de corrente e as tampas não estiverem dando folga, você poderá ter erros de dados.

Remova C16, C17, C22 e C23 - todos os 10 pF caps nas linhas de dados Ethernet. A única razão para isso é a filtragem EMI e não é necessária para depuração. Remova-os para garantir que não estejam causando outros problemas. Você sempre pode devolvê-los mais tarde, se precisar.

Altere as tampas C20 e C21, 0,022 uF nas derivações centrais do transformador, para pelo menos 0,1 uF. 1.0 uF também pode ser bom para tentar. Essa linha pode estar caindo demais, considerando o resistor de 10 ohm e o L4 / L5. Você pode até fazer um curto-circuito no VCC para depuração. A única razão para o resistor (e em menor grau a tampa) é a filtragem EMI. Ao girar novamente a PCB, você deve conectar os resistores de 10 ohms diretamente ao VDD33 em vez de passar por L4 / L5. O resistor de 10 ohm e L4 / L5 são redundantes. Ao ir direto para o VDD33, você pode impedir a injeção de ruído nos resistores de terminação e também facilita a otimização da filtragem nessa área.

Você precisará de mais tampas no pino do VDDIO, ou diminuirá o comprimento do cordão. Esse pino está fornecendo energia para muitos pinos de E / S e terá muita corrente nele. Se houver falta de corrente por causa do filtro LC (cordão + 0,4 uF), haverá muito ruído de comutação simultâneo nos pinos de E / S. Isso realmente causará mais ruído do que o que você está filtrando com essa conta. É até possível que esse ruído chegue às saídas Ethernet.

Verifique se as pinagens do seu transformador estão corretas. Embora improvável, é possível trocar a torneira central e outro pino. Vale a pena gastar 5 minutos verificando as coisas. Para esse assunto, verifique também as pinagens do LAN8700.

Se nada disso melhorar, obtenha um oscilador de metal de 25 MHz e substitua seu cristal. Eu já vi circuitos de cristal fazendo coisas estranhas, então, se for para ficar tranquilo, vale a pena invadir sua placa protótipo para garantir que seu clk esteja estável.

É tudo o que vejo no momento. Espero que isto ajude!


fonte
2
Muito obrigado pela sua resposta! Era realmente um suprimento fraco para as torneiras do centro magnético. Eu adicionei um 2.2uF X5R logo na torneira central e (depois de usar um aterramento CC e não um CA próximo), ele foi limpo! - Examinarei mais de perto os indutores, mas por curiosidade, você pensou no suprimento de TC devido aos olhos ou apenas por experiência de trabalhar com ethernet?
akohlsmith
@AndrewKohlsmith Eu descobri isso principalmente por experiência própria. Perdi a conta dos PCBs que projetei com Ethernet. Em algum lugar na faixa de 20 a 30. É bastante difícil atrapalhar um projeto Ethernet, mas parece que na maioria das vezes ele é atrapalhado com os toques centrais dos transformadores.
Francamente, ainda me surpreendo que ele apareça nos olhos como um desvio horizontal (tempo) e não como uma violação vertical (amplitude). É por isso que eu amo este site ... aprendo o tempo todo.
akohlsmith
@AndrewKohlsmith Sim, não é tão intuitivo que erro de tensão = erro de tempo. Mas pense da seguinte maneira: se você tiver um sinal com uma taxa de borda lenta no seu osciloscópio, pequenas alterações no nível de disparo do osciloscópio moverão a forma de onda para a esquerda ou direita. Isso é especialmente verdadeiro se você aumentar o zoom na forma de onda vários relógios após a borda em que está ativando. Se as bordas do sinal são geralmente rápidas, mas às vezes lentas ou distorcidas, você verá diagramas oculares exatamente como o que encontrou.
1

Meus 2 centavos: concordo com sua recomendação de escolher o oscilador de cristal certo para 25 MHz. Usei o DP83865DVH da NSC no modo de 1 Gbit e, quando ficou em um estado instável em um cabo de teste longo (qualidade "especial" de baixa qualidade, 5 gatos e perto de 110 m), a substituição do XTAL fez uma grande diferença. O circuito se tornou muito estável e o preço dessa "melhoria" é de apenas 10 centavos.

Konstantin
fonte