Pages: 1 [2] 3   Go Down
Author Topic: Arduino e ENC28j60 e DHCP non funzionante  (Read 3775 times)
0 Members and 1 Guest are viewing this topic.
Cagliari, Italy
Offline Offline
Tesla Member
***
Karma: 112
Posts: 7077
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hai collegato l'Arduino al Router o al PC? Sicuro che il DHCP sia attivo?
Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

Offline Offline
Newbie
*
Karma: 1
Posts: 23
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ho collegato arduino al Router (ne ho provati due differenti) chiaramente con DHCP attivo ma non viene assegnato nessun IP e anche se provo ad assegnare un IP statico ho lo stesso risultato (ip della stessa classe). Il router rileva la presenza del dispositivo solamente come presenza sulla porta, per intenderci mi si accende il numero di porta relativo sul router, il led arancoine presente sulla porta ethernet dello shield lampeggia dopo un po si spegne e periodicamente lampeggia, quello verde resta chiaramente fisso.
Logged

Bergamo
Offline Offline
God Member
*****
Karma: 1
Posts: 663
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao

prova a reinstallare la libreria seguendo questo tutorial:
http://www.lucadentella.it/2012/02/12/enc28j60-e-arduino-1/

l'errore che ottieni (failed to...) indica quasi sicuramente che devi cambiare il PIN di ChipSelect, probabilmente sul tuo modulo è il 10 e quindi usare il metodo begin() come ti hanno suggerito.

bye
Logged

lucadentella.it

Offline Offline
Newbie
*
Karma: 1
Posts: 23
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

In realtà la prima cosa che ho fatto prima di mettere mani sullo shield è stato quello di documentarmi, avevo già visitato il tuo sito seguendo la guida per scrupolo ho rifatto esattamente la stessa cosa ora.

Ho scaricato da questo link le librerie https://github.com/jcw/ethercard

sistemate nell'apposita directory carico testDHCP ovviamente dopo aver preventivamente modificato:

Quote
  static uint8_t begin (const uint16_t size, const uint8_t* macaddr,
                        uint8_t csPin =8);

in

Quote
  static uint8_t begin (const uint16_t size, const uint8_t* macaddr,
                        uint8_t csPin =10);

monitorizzo con serial ed ottengo:

[testDHCP]
MAC: 74:69:69:2D:30:31
Setting up DHCP
DHCP failed
My IP: 0.0.0.0
Netmask: 0.0.0.0
GW IP: 0.0.0.0
DNS IP: 0.0.0.0

Logged

Bergamo
Offline Offline
God Member
*****
Karma: 1
Posts: 663
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

ciao

volendo puoi anche non modificare la libreria ma chiamare la begin() con il PIN CS corretto (10)...
comunque ora vedo che non ti da più ne l'errore in compilazione, ne il failed sul controller quindi riesce a "parlare" con il chip.

Tra queste due scritte:
Setting up DHCP
DHCP failed

dovrebbero passare circa 30 secondi, la libreria infatti fa 3 tentativi di richiesta DHCP con 10s di timeout... sicuro che ci sia un DHCP server attivo in rete? Prova a compilare lo sketch con l'IP statico e a pingarlo... ricevi risposta?
Logged

lucadentella.it

Offline Offline
Newbie
*
Karma: 1
Posts: 23
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Il pcb è FuturaElettronica ma è stato assemblato e distribuito da una azienda che si occupa di elettronica quindi suppongo si tratti di un dispositivo testato e funzionante



Logged

Bergamo
Offline Offline
God Member
*****
Karma: 1
Posts: 663
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

ciao

infatti il mio dubbio non è che non funzionasse ma che per qualche motivo non riceva un IP dal dhcp server.
Logged

lucadentella.it

Offline Offline
Newbie
*
Karma: 1
Posts: 23
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Allora ho provato ad utilizzare getStaticIp

Quote
// ethernet interface mac address
static byte mymac[] = { 0x74,0x69,0x69,0x2D,0x30,0x31 };
// ethernet interface ip address
static byte myip[] = { 192,168,0,200 };
// gateway ip address
static byte gwip[] = { 192,168,0,1 };
// remote website ip address and port
static byte hisip[] = { 74,125,79,99 };
// remote website name
char website[] PROGMEM = "google.com";

gli ip specificati sono in linea con la classe della mia rete ma ottengo dal ping:

PING 192.168.0.200
PING 192.168.0.200 (192.168.0.200): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
Request timeout for icmp_seq 2
Request timeout for icmp_seq 3

mentre dall'output serial:

[getStaticIP]
Failed to access Ethernet controller
Server: 74.125.79.99


In modalità DHCP sono sicuro che è attivo perchè la mia rete attualmente funziona solo in DHCP sono certo che l'ip 192.168.0.200 non è stato assegnato a nessuno.





Logged

Bergamo
Offline Offline
God Member
*****
Karma: 1
Posts: 663
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

stranissimo... se riepilogo bene:

- con lo sketch in DCHP non ti da Failed to access Ethernet controller ma non prende l'IP
- con lo sketch in IP statico invece ti da Failed to access Ethernet controller e quindi non riesce a parlare con il chip enc28j60...
Logged

lucadentella.it

Offline Offline
Newbie
*
Karma: 1
Posts: 23
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

si esatto... e sono sicuro che il pin è il numero 10...che rompicapo!
Logged

Offline Offline
Newbie
*
Karma: 1
Posts: 23
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

In allegato ti invio la libreria che il venditore mi ha inviato via mail:


https://folders.io/get/xX3ayN


Questo invece è quello che il venditore mi ha scritto via email:

La scheda che sta impiegando è un progetto di futura elettronica. Sul loro sito sono pubblicate le librerie relative a questo progetto. A bordo è installato il chip enj2060. Su questi link può leggere
Notizie a tal riguardo :
http://www.lucadentella.it/2012/02/12/enc28j60-e-arduino-1/
http://www.futurashop.it/allegato/8190-ETHSHIELDKIT.asp?L2=CORRELATI&L1=7300-ARDUINOMEGAREV3&L3=&cd=8190-ETHSHIELDKIT&nVt=&d=24,00
https://github.com/jcw/ethercard
 
Allego le librerie impiegate per questo tipo di chip,anche se installato su una scheda analoga.


Logged

Offline Offline
Newbie
*
Karma: 1
Posts: 23
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Non va... potrebbe essere un problema hardware? Cosa potrei cominciare a controllare?
Logged

Cagliari, Italy
Offline Offline
Tesla Member
***
Karma: 112
Posts: 7077
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Controlla se nella scheda, fronte e retro, si vedono le piste che arrivano ai pin 10, 11, 12 e 13 di Arduino e anche se sono collegate le piste ai i pin ICSP.
Visto che, dalla foto, il connettore ICSP non c'è, non vorrei che la connessione avvenisse proprio con quello.
Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

Bergamo
Offline Offline
God Member
*****
Karma: 1
Posts: 663
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao

prova a compilare entrambi gli esempi (statico e dhcp) dal mio sito e posta cosa ottieni... è stranissimo che con una chiamata ti dia errore nell'accesso allo shield e con l'altra no...
Logged

lucadentella.it

Offline Offline
Newbie
*
Karma: 1
Posts: 23
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Controlla se nella scheda, fronte e retro, si vedono le piste che arrivano ai pin 10, 11, 12 e 13 di Arduino e anche se sono collegate le piste ai i pin ICSP.
Visto che, dalla foto, il connettore ICSP non c'è, non vorrei che la connessione avvenisse proprio con quello.

I pin attualmente "utilizzati"su arduino con lo shield sono:



Logged

Pages: 1 [2] 3   Go Up
Jump to: