Pages: [1]   Go Down
Author Topic: Problem configurazione DHCP ethernet shield  (Read 907 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 18
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Salve ragazzi,

ho cercato sul forum nei vari post e in rete una soluzione al mio problema, ma senza successo.
Utilizzando l ethertnet shield di arduino con qualsiasi sketch di esempio ottengo sempre "Failed to configure Ethernet using DHCP"
L' ide è l 1.01, la linea è fastweb ed ho un router d-link.
non riesco a venirne a capo.
smiley-sad
Grazie
Logged

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

Il router è configurato per l'assegnazione degli ip dinamici? Hai attivato il Server DHCP del router?

Ti rimando a questo topic simile --> http://arduino.cc/forum/index.php/topic,90196.0.html
Cerca anche "Fastweb" sul forum, ci sono topic che permettono di configurare anche il loro router.
« Last Edit: September 06, 2012, 03:42:01 am by PaoloP » Logged

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

Offline Offline
Newbie
*
Karma: 0
Posts: 18
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Il router è configurato per l'assegnazione degli ip dinamici? Hai attivato il Server DHCP del router?

Ti rimando a questo topic simile --> http://arduino.cc/forum/index.php/topic,90196.0.html
Cerca anche "Fastweb" sul forum, ci sono topic che permettono di configurare anche il loro router.

Intanto ti ringrazio per l'interessamento e l'aiuto.
Il router non è di fastweb ma in d-link ed è attivo sia il dhcp che l'assegnazione auto degli IP.
Ho anche controllato il post al link che hai indicato ma non ho risolto, ho utilizzato lo sketch postato in quella discussione , ma mi da sempre Failed to configure Ethernet using DHCP
 smiley-sad

Ho scoperto che im modello dello shieldha il seguente processore "enc28j60 processor"
Ho scaricato la libreria EtherCard da https://github.com/jcw/ethercard, l'ho installata e ho provato gli sketch ma ho ancora il solito problema .

Lo sketch è il seguente:

Code:
// Ping a remote server, also uses DHCP and DNS.
// 2011-06-12 <jc@wippler.nl> http://opensource.org/licenses/mit-license.php

#include <EtherCard.h>

// ethernet interface mac address, must be unique on the LAN
static byte mymac[] = { 0x74,0x69,0x69,0x2D,0x30,0x31 };

byte Ethernet::buffer[700];
static uint32_t timer;

// called when a ping comes in (replies to it are automatic)
static void gotPinged (byte* ptr) {
  ether.printIp(">>> ping from: ", ptr);
}

void setup () {
  Serial.begin(9600);
  Serial.println("\n[pings]");
 
  if (ether.begin(sizeof Ethernet::buffer, mymac) == 0)
    Serial.println( "Failed to access Ethernet controller");
  if (!ether.dhcpSetup())
    Serial.println("DHCP failed");

  ether.printIp("IP:  ", ether.myip);
  ether.printIp("GW:  ", ether.gwip);

#if 1
  // use DNS to locate the IP address we want to ping
  if (!ether.dnsLookup(PSTR("www.google.com")))
    Serial.println("DNS failed");
#else
  ether.parseIp(ether.hisip, "74.125.77.99");
#endif
  ether.printIp("SRV: ", ether.hisip);
   
  // call this to report others pinging us
  ether.registerPingCallback(gotPinged);
 
  timer = -9999999; // start timing out right away
  Serial.println();
}

void loop () {
  word len = ether.packetReceive(); // go receive new packets
  word pos = ether.packetLoop(len); // respond to incoming pings
 
  // report whenever a reply to our outgoing ping comes back
  if (len > 0 && ether.packetLoopIcmpCheckReply(ether.hisip)) {
    Serial.print("  ");
    Serial.print((micros() - timer) * 0.001, 3);
    Serial.println(" ms");
  }
 
  // ping a remote server once every few seconds
  if (micros() - timer >= 5000000) {
    ether.printIp("Pinging: ", ether.hisip);
    timer = micros();
    ether.clientIcmpRequest(ether.hisip);
  }
}

Ho avuto una serie di problemi:

1)nel codice originale usa come baudrate 57600 , ma con questo valore il serial monitor visualizza caratteri "random".
Ho sostituito il valore con 9600 (l'unico a funzionare)

2)La maggiorparte delle volte(una sola volta non è successo quanto sto per spiegare)i lserial monitor si ferma alla scritta Ping.

3)L'unica volta in cui è andato oltre alla scritta ping ,sul serial monitor è stato visualizzato
Failed to access Ethernet controller
e tutti i valori a 0.0.0.0 ovviamente.

 
« Last Edit: September 06, 2012, 09:09:46 am by Scaurus » Logged

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

Per la Enc28j60 ci sono altri esperti qui sul forum.
Fai una ricerca sul forum ci sono molti post su quella scheda.
Logged

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

Tuscany
Offline Offline
Edison Member
*
Karma: 76
Posts: 2090
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Se ti da' come errore "Failed to access Ethernet controller" e' perche' il Pin Cs ( Chip Select ) e' diverso da quello preimpostato nella libreria. Quindi non ti trova la shield

Ora non ricordo qual'e' il pin di default, ma in genere sono solo due, il pin 8 o 10

Modifica la  riga del setup in modo da assegnargli il valore

if (ether.begin(sizeof Ethernet::buffer, mymac, 10) == 0)
oppure
if (ether.begin(sizeof Ethernet::buffer, mymac, 8 ) == 0)
Logged

Pages: [1]   Go Up
Jump to: