Pages: [1] 2 3   Go Down
Author Topic: Arduino e ENC28j60 e DHCP non funzionante  (Read 3947 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 1
Posts: 23
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Salve,

ho preso da poco lo shield Ethernet ENC28J60 per arduino che è praticamente identico a quello presente in foto



con l'unica differenza che sulla mia scheda non è presente il ponte R1 ma posso con certezza sostenere che il PCB è Futura Elettronica. Ho effettuato tutte le ricerche del caso sul forum purtroppo però in nessun caso sono riuscito a risolvere. Ho utilizzato le library:

https://github.com/jcw/ethercard

ho provato ad utilizzare nello specifico lo sketch testDHCP ma il risultato è sempre lo stesso:

Code:
[testDHCP]
MAC: 74:69:69:2D:30:31
Failed to access Ethernet controller
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

premesso che ho il DHCP attivo quale potrebbe essere il problema?? Ho sentito parlare di pin 8 - pin 10...

Grazie





« Last Edit: December 27, 2012, 05:50:14 pm by bonavoglias » Logged

Tuscany
Offline Offline
Edison Member
*
Karma: 77
Posts: 2110
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

gia'.. potrebbe essere il chip select.
di default quella libreria mia pare sia sul pin8 e quella scheda pare sia sul pin 10

quindi cambierei la riga

 if (ether.begin(sizeof Ethernet::buffer, mymac) == 0)

con

  if (!ether.begin(sizeof Ethernet::buffer, mymac, 10))
 



Logged

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

Grazie per la risposta ma con questo codice:

Code:
// Arduino demo sketch for testing the DHCP client code
//
// Original author: Andrew Lindsay
// Major rewrite and API overhaul by jcw, 2011-06-07
//
// Copyright: GPL V2
// See http://www.gnu.org/licenses/gpl.html

#include <EtherCard.h>

static byte mymac[] = { 0x74,0x69,0x69,0x2D,0x30,0x31 };

byte Ethernet::buffer[700];

void setup () {
  Serial.begin(57600);
  Serial.println("\n[testDHCP]");

  Serial.print("MAC: ");
  for (byte i = 0; i < 6; ++i) {
    Serial.print(mymac[i], HEX);
    if (i < 5)
      Serial.print(':');
  }
  Serial.println();
  
  if (ether.begin(sizeof Ethernet::buffer, mymac) == 0)
    Serial.println( "Failed to access Ethernet controller");

  Serial.println("Setting up DHCP");
  if (!ether.dhcpSetup())
    Serial.println( "DHCP failed");
  
  ether.printIp("My IP: ", ether.myip);
  ether.printIp("Netmask: ", ether.mymask);
  ether.printIp("GW IP: ", ether.gwip);
  ether.printIp("DNS IP: ", ether.dnsip);
}

void loop () {}

se vado a modificare

Code:
 if (ether.begin(sizeof Ethernet::buffer, mymac, 10) == 0)
    Serial.println( "Failed to access Ethernet controller");

ottengo questo errore:

testDHCP.ino: In function 'void setup()':
testDHCP:27: error: no matching function for call to 'EtherCard::begin(unsigned int, byte [6], int)'
/Users/bonavoglias/Documents/Arduino/libraries/EtherCard/EtherCard.h:131: note: candidates are: static uint8_t EtherCard::begin(uint16_t, const uint8_t*)
Logged

Tuscany
Offline Offline
Edison Member
*
Karma: 77
Posts: 2110
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

stranissimo..
ho verificato e a me non da' errore.
e la libreria pare la stessa
Logged

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

Non so magari sbaglio qualcosa, considera che é il mio primo giorno con arduino. Che shield usi?
Logged

Tuscany
Offline Offline
Edison Member
*
Karma: 77
Posts: 2110
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

non shield, ma moduli esterni, come questo http://www.hobbycomponents.com/image/cache/data/800px/HCARDU0028_800-800x600.JPG

ma qui non e' un problema di shield o scheda, dato che nemmeno ti compila

Logged

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

Il problema é che il codice viene compilato ma non viene assegnato l'iP in Dhcp e se provo a modificare il pin aggiungendo 10 caccia fuori l'errore citato.
Logged

Tuscany
Offline Offline
Edison Member
*
Karma: 77
Posts: 2110
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

e' quello lo strano... l'errore

domanda:

Che IDE e che Board usi ?
Logged

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

Ho provato sia con la 023 che con l'ultima versione. Arduino invece é UNO R3.
Logged

Tuscany
Offline Offline
Edison Member
*
Karma: 77
Posts: 2110
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

mah... sembra quasi che ci sia un'asegnazione in piu'...

pero'  l'errore dovrebbe darlo sulla riga137...  invece dice sulla 131. e ho reinstallato la libreria che dici tu.




Logged

Tuscany
Offline Offline
Edison Member
*
Karma: 77
Posts: 2110
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

che data hanno i file della libreria ?
Logged

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

Io utilizzo questa:

https://github.com/jcw/ethercard

puoi dirmi che libreria stai utilizzando? E che IDE?
Logged

Tuscany
Offline Offline
Edison Member
*
Karma: 77
Posts: 2110
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

secondo me stai usando una libreria diversa.
Se apri il file EtherCard.h della libreria, le righe 137 e 138 sono cosi' :

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



                 
Logged

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

Buon Anno!

La libreria corrisponde è la stessa, ho provato lo sketch testDHCP ma:

[testDHCP]
MAC: 74:69:69:2D:30:31
Failed to access Ethernet controller
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

ho contattato il venditore e mi ha confermato le libreria. Dove sbaglio??
Logged

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

Se invece uso le librerie sempre consigliate dal venditore ENC28J60 e ad esempio provo uno degli examples il risultato è sempre lo stesso:

Webserver

In file included from /Users/bonavoglias/Documents/Arduino/libraries/ENC28J60/Ethernet.h:5,

from WebServer.pde:7:
/Users/bonavoglias/Documents/Arduino/libraries/ENC28J60/Client.h:22: error: conflicting return type specified for 'virtual void Client::write(uint8_t)'
/Users/bonavoglias/Downloads/Arduino.app/Contents/Resources/Java/hardware/arduino/cores/arduino/Print.h:48: error:   overriding 'virtual size_t Print::write(uint8_t)'
/Users/bonavoglias/Documents/Arduino/libraries/ENC28J60/Client.h:24: error: conflicting return type specified for 'virtual void Client::write(const uint8_t*, size_t)'
/Users/bonavoglias/Downloads/Arduino.app/Contents/Resources/Java/hardware/arduino/cores/arduino/Print.h:53: error:   overriding 'virtual size_t Print::write(const uint8_t*, size_t)'
In file included from /Users/bonavoglias/Documents/Arduino/libraries/ENC28J60/Ethernet.h:6,
                 from WebServer.pde:7:
/Users/bonavoglias/Documents/Arduino/libraries/ENC28J60/Server.h:16: error: conflicting return type specified for 'virtual void Server::write(uint8_t)'
/Users/bonavoglias/Downloads/Arduino.app/Contents/Resources/Java/hardware/arduino/cores/arduino/Print.h:48: error:   overriding 'virtual size_t Print::write(uint8_t)'
/Users/bonavoglias/Documents/Arduino/libraries/ENC28J60/Server.h:18: error: conflicting return type specified for 'virtual void Server::write(const uint8_t*, size_t)'
/Users/bonavoglias/Downloads/Arduino.app/Contents/Resources/Java/hardware/arduino/cores/arduino/Print.h:53: error:   overriding 'virtual size_t Print::write(const uint8_t*, size_t)'


Secondo me sbaglio qualcosa.

Logged

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