Go Down

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

giova014

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

Quote
Eu vou desoldar esses resistores que vieram e colocar esses, seguindo a pinagem que voce me passou
Se você está falando em dessoldar a rede resistiva 511, não o faça. Apenas acrescente os de 100 Ohms.

Quote
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 ?
Não vou conseguir elaborar agora pois não estou em casa, mas assim que der lhe mostro.
Arduino!!

lcorbi

Maravilha!!

Muito obrigado por enquanto!!  :)

giova014

Para implementar o "Keep alive", deve alterar a biblioteca do W5100, que normalmente fica na pasta:

"C:\Program Files (x86)\Arduino\libraries\Ethernet\src"

No arquivo "EthernetServer.h" adicione na classe EthernetServer o protótipo do método:
Code: [Select]
static void keepAlive(uint32_t interval = 5000);

E no arquivo "EthernetServer.cpp", adicione a definição:
Code: [Select]
void EthernetServer::keepAlive(uint32_t interval){

static uint32_t lastKeepAlive = 0;

if (millis() - lastKeepAlive > interval) {
lastKeepAlive = millis();

for (int sock = 0; sock < MAX_SOCK_NUM; sock++) {
EthernetClient client(sock);

if (client.status() == SnSR::ESTABLISHED) {
W5100.execCmdSn(sock, Sock_SEND_KEEP);
}
}
}
}


No arquivo "Ethernet.cpp", dentro no método:
Code: [Select]
int EthernetClass::begin(uint8_t *mac_address, unsigned long timeout, unsigned long responseTimeout)
acrescente:
Code: [Select]
// Configurate timeout = 3,22 seconds
  W5100.setRetransmissionTime(512); //miliseconds * 10
  W5100.setRetransmissionCount(5);


Os três arquivos alterados estão em anexo para facilitar.

No seu código, normalmente no loop(), adicione antes de:
Code: [Select]
EthernetClient client = server.available();
A chamada do método:
Code: [Select]
server.keepAlive();

Em meus testes, o W5100 fecha as conexões travadas em dois momentos: quando falha ao enviar algum dado e usando o keep alive.
O problema do keep alive é que se você transmitir algo para os clientes logo após o invocar, o keep alive é "anulado", então são necessário testes.
Arduino!!

lcorbi

Muito obrigado! Tentarei isso e lhe informo.  :)

lcorbi

Opa giova014!!

Tudo bem ?

Comprei ontem os resistores de 100ohms e acabei de soldar. Funcionou perfeitamente!!!  \ :) /

Fiz do jeito que vc disse, foi perfeitamente!! E o legal eh que quando desligo a energia e volto novamente, ele reconecta automatico, sem precisar desplugar e plugar novamente.

Muito obrigado viu!! Vlw mesmo por essa dica!!!

Grande abssss!!!

jamaljamil

Funcionou. Instalei os dois resistores de 100r conforme mencionado acima. :)

leomuniz

Para corroborar: também funcionou comigo soldar os dois resistores de 100ohms.
Muito obrigado pela dica!

Em outros lugares da internet vi algumas pessoas sugerindo dessoldar o resistor de 510ohms - que é minúsculo - e soldar outros resistores no lugar. Se já tive dificuldade em soldar esses de 100ohms porque achei o espaço pequeno, imagina substituir o outro... sem chance.

Importante: esse shield chinês com resistor errado funciona corretamente no meu modem antigo da GVT (de 2011, eu acho). Quando troquei a internet de casa por NET, com um modem bem mais novo, ele parou de funcionar. Ou seja: se o resistor veio errado, vale soldar os resistores mesmo que esteja funcionando atualmente.



Ademilton

#22
Aug 22, 2017, 01:20 am Last Edit: Aug 22, 2017, 02:56 pm by Ademilton
Pra mim não funcionou, coloquei os resistores de 100 ohms e nada.....quando tendo logar o webserver com o IP da minha rede 192.168.0.121 ele antes logava mostravam as entradas analógicas flutuando, depois de 2 minutos aparecia na tela " Esta página Expirou ".
Agora não entra mais só aparece que Expirou.

Com a colocação dos resistores ficou pior ainda os LEDs nem acendem mais como antes......

Há aquele LED amarelo perto do AREF/GND fica aceso direto, na rede do meu vizinho ele só pisca de vez em quando mas não loga .......aparece também " Esta página expirou "


Vejam abaixo o meu relato detalhado da falha...

Ademilton

#23
Aug 22, 2017, 02:45 pm Last Edit: Aug 22, 2017, 03:47 pm by Ademilton
Estou com problemas no meu Shield W5100 + Arduino UNO R3

Carreguei o exemplo de webserver do Arduino, alterando somente o IP, inicialmente funcionou as portas Analógicas flutuando os valores, e após algum tempo ( 2min) as portas analógicas pararam de flutuar.
Consultei um amigo, ele me pediu para filmar os estados da placa e da tela do browser para ver.
Segundo ele há um problema, o LED amarelo próximo ao AREF/GND fica aceso direto, mesmo sem nenhum Sketch gravado nele.
Com um Sketch webserver gravado neles eu não estou conseguindo mais ver no browser da internet as portas Analógicas flutuarem, a mensagem agora é " A página Expirou ".
Comecei a procurar na internet algo para resolver ou que me desse uma luz, e num forum dizia : " se estiver acontecendo isto verifique a ponte resistiva próximo ao RJ45 de 49R9 ohms, se tiver em seu lugar uma ponte de 511 ao invés de 49R9 ou 510 faça o seguinte ( coloque 2 resistores de 100 ohms soldados entre os pinos 1 e 2 e 3 e 6 do conector RJ45 que o problema desaparece……eu fiz…mas não mudou nada piorou…..então retirei tudo novamente…
Em contato com o amigo que identificou a falha, eu mencionei à ele " Como posso saber se o problema está na Shield ou no Arduino" , ele falou: " Teste as portas Analógicas individualmente com um trimpot e veja seu funcionamento" eu testei com um Sketch de teste para portas analógicas e o resultado foi positivo a" as portas Analógicas estão funcionando perfeitamente no Arduino UNO.

Tentei na rede do meu vizinho com modem router da DLink o comportamento dos LEDs na Shield foi diferente mas também expirou a página.....

Os arquivos são:   os resistores de 100 Ohms e o ping no router do meu vizinho

Minha dúvida agora é: " Posso condenar a placa Shield W5100, estaria ela com defeito mesmo ou não?"


Façam contato comigo via Whatsapp (34) 993405248

Por favor me ajudem!!!

Go Up