Go Down

Topic: Problema com W5100 Ethernet (Read 6803 times) previous topic - next topic

CristianoRipi

Boa tarde, a todos.

Estou com um problema com uma placa W5100, o exemplo do arduino webserver só funciona quando ligo um cabo de rede direto do computador para ele, porém se eu liga-lo em um roteador, ele não funciona, mas tenho uma outra placa que funciona normal, existem alguns modelos dessa placa, mais antigas por exemplo, que mudou as características delas?

Obrigado.

hugo007

#1
May 19, 2015, 10:48 am Last Edit: May 19, 2015, 10:48 am by HugoPT
Boas existem muitos factores que podem influenciar.Posta o teu codigo, como ligaste isso, que tipo de cabo usas-te (directo ou crossover), fizeste um simples ping à tua placa W5100 quando ligaste ao router para confirmar se tens conectividade?
O teu pc tem ip fixo ou recebe por DHCP?
Podes ter os ips configurados incorrectamente ...
Para ja tenta responder a todas estas questões.
Bons estudos
Debian,Mint,Ubuntu
Arduino Mega 2560
Arduino Nano
Arduino Duemilanove
MAC OS Montain Lion
Raspberry PI Model B

CristianoRipi

Cabo direto, quando dou o ping ele responde mas diz que esta inacessível, mas se ligo direto no pc sem hub ele funciona, o ip de minha rede é fixo, e o programa é igual ao web server, exemplo do arduino. O problema é que tenho duas placas W5100, em uma funciona pela rede normal, e na outra não, enviei e troquei a placa, porém ela veio igual a que não funcionou (mesmo lote), e também não funcionou.

hugo007

Quote
quando dou o ping ele responde mas diz que esta inacessível,
O que quer isto dizer?Falha todos os pacotes de ICMP ou nao?
Quando ligas a tua W5100 ao switch acendem os Leds na ficha RJ45?
Debian,Mint,Ubuntu
Arduino Mega 2560
Arduino Nano
Arduino Duemilanove
MAC OS Montain Lion
Raspberry PI Model B

CristianoRipi

Sim, falha os pacotes. Quando ligo a W5100 acende normal os leds. Vou tentar trocar o Hub, mas acredito que não tenha nada a ver, existe algum histórico de falha nessa comunicação com alguns tipos de hub´s. Li em outro tópico que a HanRun 14/16 da W5100, deu problema com outra pessoa, é exatamente a mesma numeração que esta em meu shield. O que acham?

hugo007

Por acaso ja nao uso hub's à anos.Sabes que o hub é half-duplex certo?
Isto quer dizer que nao consegues comunicar ao mesmo tempo que recebes.Porque nao usas um switch.O switch é full-duplex e evita colisoes.
Debian,Mint,Ubuntu
Arduino Mega 2560
Arduino Nano
Arduino Duemilanove
MAC OS Montain Lion
Raspberry PI Model B

CristianoRipi

O que eu estava chamando de hub, é uma switch mesmo. Mesmo assim desconfiei dela, com isso liguei a placa W5100 em outra switch e depois interliguei com a switch que não estava funcionando, ahí a placa respondeu. Portanto realmente existe diferença nas placas ethernet W5100, pois com uma funciona normalmente e com outra não funciona (é visivel a diferença do ano de fabricaçãp de uma para outra).
Muito obrigado, Hugo, devo instalar o equipamento nessa semana em seu local real, espero não ter problemas, ateh mais, muito obrigado msm.

lcorbi

Estou tendo esse problema tambem, porem quando ligo direto no meu roteador que esta conectado ao modem da operadora de internet ele funciona, ai quando ligo em outro roteador(que esta funcionando como repetidor WDS) ele nao funciona, "nao pega IP", mas se eu ligar o meu notebook nesse segundo roteador(WDS) ele funciona normal. O que pode ser ?

hugo007

Estas a reniciar a placa quando mudas o cabo?
Tens DHCP a fluir nesse repetidor do teu router principal?
Que ip ganha o arduino quando ligas no repetir(Faz um serial.print ...)
Debian,Mint,Ubuntu
Arduino Mega 2560
Arduino Nano
Arduino Duemilanove
MAC OS Montain Lion
Raspberry PI Model B

giova014

#9
Mar 07, 2017, 09:23 pm Last Edit: Mar 07, 2017, 09:24 pm by giova014
Verifique a seguinte rede resistiva que esta na sua placa W5100:



Se o valor dela for 511 (510 ohms) está errada. Se for 510 (51 ohms) está correto.
Esta rede é responsável pelo sinal diferencial do Ethernet.

Caso esteja errada, nos diga que indicarei uma solução simples.
Arduino!!

lcorbi

Opa Pessoal, obrigado pela atencao:

Entao,

o roteador principal esta distribuindo DHCP normalmente. Eu setei o arduino manualmente para receber um IP na minha faixa de rede 192.168.0.20 por exemplo. Ja havia tentado resetar(tirando a energia dele e colocando de volta) e nada.

Ontem fiz um teste e consegui colocar ele na rede atraves do roteador (WDS repetidor), porem,quando a energia acaba o arduino nao reconecta novamente sozinho, eu tenho que ficar tirando e colocando o cabo nas portas LAN do roteador repetidor ate ele conectar.

Irei verificar hoje o caso do resistor, mas acredito que como eu consegui colocar ele na rede, provavelmente deva estar com o valor correto, mas verei e informarei voces.

O que pode ser isso a respeito da falta de energia e nao reconectar sozinho tambem ?

Muito obrigado pessoal pela ajuda por enquanto!

giova014

Quote
Irei verificar hoje o caso do resistor, mas acredito que como eu consegui colocar ele na rede, provavelmente deva estar com o valor correto, mas verei e informarei voces.
No meu caso, com o resistor incorreto ele funcionava diretamente no PC e não funcionava em um roteador ou switch (ou ao contrário, não lembro).
Corrigindo o resistor, funcionou em ambos.

Quote
O que pode ser isso a respeito da falta de energia e nao reconectar sozinho tambem ?
Alterando a biblioteca do W5100, acrescentei um comando de Keep Alive que fecha as conexões, pois quando tirava o cabo, a conexão travava pra sempre.
Caso necessário, posso fornecer.
Arduino!!

lcorbi

#12
Mar 08, 2017, 06:21 pm Last Edit: Mar 08, 2017, 06:31 pm by lcorbi
Legal!!

giova014, eu vi aqui, o meu resistor e' 511.

Achei uma foto no meu celular aqui no qual anexei aqui, que eu havia tirado do shield e por sorte eu consigo ver o 511 marcado.

Voce poderia por favor me passar a solucao, como alterar ? Qual os passos ?

Muito Obrigado!

giova014

A solução é soldar dois resistor de 100 Ohms no lado de baixo da placa, de modo que fiquem em paralelo com cada 510 Ohms.

De acordo com a numeração dos pinos abaixo:


Soldar um resistor de 100 Ohms entre os pinos 1 e o 2
e soldar um resistor de 100 Ohms entre o pinos 3 e 6.

No final fica assim:



Depois, vai funcionar normalmente.
Arduino!!

lcorbi

Tem que ser 100ohms ? Se usar 120ohms nao funciona ? Pq tenho de 120ohms, senao vou comprar de 100ohms amanha.

Eu vou desoldar esses resistores que vieram e colocar esses, seguindo a pinagem que voce me passou.

E outra coisa, como funciona o negocio do "keep alive" ??  Eh ele que resolve o problema de quando eu reinicio a energia ele reconecta automaticamente o arduino ?  Porque eh foda toda vez quando desligo e ligo a energia, eu tenho que ficar espetando o cabo em cada porta LAN do router ate ele ligar.

Tem alguma solucao isso ?

Obrigadao!

Go Up