scheda ethernet ENC28J60

Salve a tutti

Mi sto cimentando per la prima volta con i collegamenti ethernet basati su ENC28j60 di una schedina acquistata a pochi euri su ebay.

Ebbene, seguendo le indicazioni sul sito di luca dentella non sono riuscito ad eseguire nemmeno il ping descritto nel suo primo tutorial (http://www.lucadentella.it/2012/02/12/enc28j60-e-arduino-1/2/).

Essendo assolutamente novizio di indirizzi IP codici MAC ecc.ecc. vi espongo i passi che ho fatto e che non hanno sortito alcun effetto.

  1. ho caricato nell IDE di arduino la libreria scaricata da github che si chiama “ethercard-master”.
  2. ho collegato i pin 11-12-13 dell’arduino uno ( pin 8 per CS) alla scheda come indicato da github
  3. ho caricato il primo sketch proposto come di seguito senza rilevare errori:
#include <EtherCard.h>
static byte mymac[] = {0xDD,0xDD,0xDD,0x00,0x00,0x01};
static byte myip[] = {192,168,1,10};
byte Ethernet::buffer[700];
 
void setup () {
 
  Serial.begin(57600);
  Serial.println("PING Demo");
 
  if (ether.begin(sizeof Ethernet::buffer, mymac, 8) == 0) 
    Serial.println( "Failed to access Ethernet controller");
 
  if (!ether.staticSetup(myip))
    Serial.println("Failed to set IP address");
}
 
void loop() {
 
  ether.packetLoop(ether.packetReceive());  
}
  1. ho collegato un cavo eternet dal mio portatile alla scheda arduino e provato a pingare l’indirizzo
    inserito nello sketch da pannello dos ( ping 192,168,1,10)

risultato:

nessuna risposta…

prima di inondarvi di domande stupide, in cosa sto sbagliando?

ringrazio e saluto

Hai usato un cavo dritto o crossover? Hai modo di frapporre un hub/switch tra PC e scheda?

Scusami Sukkopera

non conosco la differenza fra cavo dritto e cavo crossover!!! ne ho trovato uno nella scatola di un modem e ho usato quello......

anche relativamente all'uso dell'hub/swich ( :o ) non so di cosa si stia parlando , se puoi specificare meglio te ne sarei grato.....

Sono un po' novizio, pazienta...

Dai un'occhiata qua: Ethernet - Wikipedia

Ma se non sai nemmeno cos'è uno switch, cosa vorresti fare con Arduino e scheda Ethernet?

PS: Crossover = Incrociato, è questo che ti serve se vuoi collegare direttamente due dispositivi. Il tuo modem quante porte Ethernet ha?

Scusa ancora l'ignoranza ma di collegamenti internet e/o ethernet non me ne sono mai occupato, lo so l'ignoranza è brutta.... :confused:

Ho due compiuter in casa collegati wireless con un modem netgear 300 ma il collegamento l'ho fatto
direttamente tra il portatile e la scheda di arduino ma per adesso.....nulla!!!

P.S. Vorrei realizzare un termostato ambiente per poter accendere e spengere il riscaldamento da web!

Saluti
Luca

Se il modem che hai è quello che vedo su Google, ha 4 porte Ethernet (arancioni). Se è così, collega Arduino lì, con quel cavo, e prova a pingarlo dal PC.

Perchè devo passare dal modem? se mi collego direttamente al compiuter e costituisco una rete LAN fra arduino e portatile non è la stessa cosa?

Una volta collegato al modem quale IP uso?

Grazie

Perché non hai il cavo giusto per collegare Arduino direttamente al PC, ad esempio.

Ma poi la LAN è una unica, anche se lo colleghi al modem è comunque in rete col PC (Il modem ha uno switch integrato). Collegalo lì e usa lo stesso IP che stai usando ora.

ho il modem lontano dal Pc , mi tocca prendere un cavo di 20m.

Ok, per ora va bene così poi, magari ti disturberò ancora...

ti è stato detto cosa fare ma per te va bene così....
Comunque per fare un ping e testare il tuo hardware e software va bene anche mettere un momento arduino a 20 Mt ... fai il ping verifichi che tutto funziona e poi ti attrezzi di cavo cross.
Hai preso una ENC ed hai già fatto una pessima scelta a mio parere, forse non hai fatto caso ma siamo su un forum Arduino e dovremmo (teoricamente) giocare con prodotti Arduino

ti è stato detto cosa fare ma per te va bene così....

forse mi sono spiegato male......

ho scritto "va bene così" proprio perchè per adesso mi basta veder funzionare qualcosa dopo svariati tentativi andati a vuoto, poi come dici tu, mi attrezzo con cavo cross;... se basta.......perchè ancora non lo ho chiaro.

Pessima scelta perchè? Se la vendono da tutte le parti in qualche modo dovrà funzionare!! Ripeto voglio comandare un relè via web, per adesso, niente di più!

Forse ricordo male, ma mi sembra che alcune schede ENC28J60 hanno un MAC address fisso, per cui devi vedere se nella targhetta del modulo è indicato un MAC, in tal caso DEVI usare quello nello sketch. Posta anche un link alla esatta scheda ENC che hai.
Facci sapere.
EDIT: dimenticavo, se non hai una scheda con MAC fisso, devi usare un MAC valido, e mi sembra che quello che hai messo è "troppo generico" e forse viene scartato perché considerato non valido o insicuro. Non credo sia in conflitto con altra periferica, comunque in genere si consiglia un MAC che inizi con 0xDE.
Quindi usa questo (sempre SE la scheda non ha MAC fisso) e facci sapere:
0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xEE

su quella schedina non è scritto nulla, almeno a prima vista,stasera ricontrollo anche la busta in cui era contenuta;tuttavia nei vari tutorial si indica sempre di lasciare il MAC dello sketch.

L'argomento, comunque, è alquanto fumoso, sembra che valga tutto e il contrario di tutto , almeno per chi come me non conosce l'argomento.

Farò sapere quanto prima,
Grazie per ora.

Grazie DocDoc

Proverò anche il tuo mac address se non dovesse funzionare quello di default.
Luca

rullo:
Pessima scelta perchè? Se la vendono da tutte le parti in qualche modo dovrà funzionare!! Ripeto voglio comandare un relè via web, per adesso, niente di più!

Perchè quella scheda è una versione "economica" della shield Arduino che usa invece il chip WIZ5100.
Quella scheda ENC usa librerie sue e NON standard. Quelle che vengono fornite nell'IDE di Arduino sono per il WIZ5100 ufficiale. Inoltre quella ENC non fa alcuni "calcoli" (chiamiamoli così) internamente come fa la WIZ quindi "appesantisce" Arduino che già non è un fulmine (Arduino è pensato per fare da controllore di circuiti, metterci sopra un Web Server si fa non si deve pretendere troppo, non è un PC con sistema operativo).
Certo che la vendono in ogni dove la ENC, è la versione cinessissima economica. Funziona, basta usare le librerie giuste.

rullo:
su quella schedina non è scritto nulla, almeno a prima vista,stasera ricontrollo anche la busta in cui era contenuta;tuttavia nei vari tutorial si indica sempre di lasciare il MAC dello sketch.

Non esattamente, se la scheda ha già un MAC assegnato, tu DEVI impostare quel MAC nello sketch.
Se invece è la cinese (come la mia) prova con quel mac, oppure con questo che a me ha funzionato:
// ethernet interface mac address, must be unique on the LAN
static byte mymac = { 0x74,0x69,0x69,0x2D,0x30,0x31 };

Mai sentito di ENC28J60 con MAC fisso, ma non importa. Difficile che sia il MAC il problema, ci sono solo due requisiti: che sia unico (e mettendone uno a caso la vedo improbabile beccarne uno già utilizzato sulla propria rete) e che sia unicast (per questo basta che il LSB del primo byte sia 0).

Ribadisco che il problema è il cavo, e che un test collegando solo Arduino al modem (serve solo l'alimentazione, non ti serve collegarlo al PC) sia facilmente fattibile in ogni caso. Una volta appurato che funziona ci si attrezza di conseguenza.

Comunque ci sono anche modi per collegare Arduino al wireless, se ti torna più comodo.

PS: Vero che l'ENC è più economico del WIZ per i motivi citati, però alla fine dei conti non funziona malaccio. Anzi, per qualche strana ragione usa pure meno flash, sebbene pesi come un macigno sulla già scarsa RAM di Arduino.

rullo:
Proverò anche il tuo mac address se non dovesse funzionare quello di default.

Altra cosa: hai usato la libreria EtherCard come la mia, ma hai provato a far girare l'esempio RBBB webserver incluso nella libreria? Se neanche quello funziona e non è problema di MAC, allora o è il cavo come suggerisce Sukko o qualche problema di cablaggio o è guasta....

PS: la ENC anche se cinese non è una shield full size quindi in alcuni casi permette di interfacciare Arduino in modo più agevole. Fermo restando che la Ehternet shield "vera" costa poco di più ma ha anche il lettore di SD...

docdoc:
PS: la ENC anche se cinese non è una shield full size quindi in alcuni casi permette di interfacciare Arduino in modo più agevole. Fermo restando che la Ehternet shield "vera" costa poco di più ma ha anche il lettore di SD...

Su ebay dai cinesi trovi diversi modelli di ENC, c'e' sia in versione shield che versione modulino. C'e' pure una versione piccola da agganciare alla nano.

Test effettuato con successo....evviva...

non ho trovato un cavo di 20m ma ho trovato un cavo incrociato, quindi:

1 - Ho collegato direttamente il pc alla scheda .
2 - Il Pc ha rilevato una connessione LAN ma il ping ancora non da risposta.
3 - sono entrato nelle proprietà delle scheda di rete del PC, ho tolto il servizio di Assegnazione IP automatica,e ho assegnato un IP diverso da quello di arduino al compiuter.

Adesso funziona tutto, sia il ping che i vari esempi, con l'uno o con l'altro MAC ADDRESS. Anche la libreria ufficiale EtherCard di arduino sembra funzionare; l'unico dubbio è che se digito il comando IPCONFIG vedo solo gli indirizzi impostati delle schede del compiuter e non quello della scheda di arduino, come mai secondo voi?

Tengo a precisare che ho già acquistato una scheda ufficiale Arduino ma, nel frattempo continuo ad eseguire i vari tutorial ed esempi disponibili in rete.

P.S. Anche oggi ho imparato qualcosa

Saluti a tutti
Luca