Buona sera a tutti.
Premetto che prima di scrivere questo post ho cercato veramente dappertutto e da nessuna parte ho trovato la soluzione al problema smiley-confuse smiley-confuse smiley-confuse che si è presentato con la mia ethernet shield W5100. Vado subito al dunque:
Ho sia una ethernet shield descritta sopra, sia un modulo ENC28J60. Mentre con quest'ultima sono riuscito quasi subito (ma solo tramite la libreria ethercard) a comunicare con il router e portare avanti diversi progetti, con la shield sono ormai più di due settimane che proprio non ci riesco. Mi spiego meglio:
la shield credo che funzioni poichè tutte le luci si accendono ed il modulo SD integrato funziona perfettamente. Il router inoltre ( Technicolor TG582n ) riconosce la shield assegnandole anche un indirizzo ip. Tutto sembra funzionare, ma di comunicare in rete proprio non ne vuole sapere. Basta pensare che sono più di due settimane che non riesco a farlo pingare.
Per ora sto provando a farla partire sull'arduino UNO per poi montarla sul mega.
Di seguito riporto lo sketch che utilizzo per fare il ping di prova:
#include <EtherCard.h>
byte Ethernet::buffer[300];
static byte myMAC[6] = {0x00,0xAA,0xBB,0xCC,0xDE,0x02};
static byte myIPv4[4] = {192,168,1,68};
#define ENC28J60_CS 10
void setup ()
{
// ....
// codice di setup del nostro programma
if (ether.begin(sizeof Ethernet::buffer, myMAC, ENC28J60_CS) == 0)
{
// Gestione dell'errore
// ...
}
ether.staticSetup(myIPv4);
}
void loop ()
{
int PacketLen = ether.packetReceive ();
if (PacketLen)
ether.packetLoop (PacketLen);
}
Comincio col ringraziarvi per la disponibilità,
Ferdinando Coletta
P.S. altra cosa strana è che dalla pagina del router l'interfaccia della wiznet è una etherport "sconosciuta", come se il router non riuscisse a capire con quale ingresso è collegato (1, 2, 3 oppure 4)