Dovrei aver risolto tutti i problemi...tranne 1..
ogni tanto l'ethernet si pianta e anche se pigio il reset non si sblocca.....
mi sembra di aver letto che devo mettere un condensatore da 0,5uF tra il pin reset e massa, giusto????
in che senso si pianta? Alla mia inizia a lampeggiare impazzito un led e non funziona piu' niente...
esatto...inizia a lampeggiare quello giallo (insomma ne RX ne TX per intenderci) e anche se premo reset l'arduino si resetta ma quello continua a lampeggiare
già.
che cavolo succede?!? :0
mi sembra di aver letto che devo mettere un condensatore da 0,5uF tra il pin reset e massa, giusto????
Il condensatore che ho usato io per risolvere il problema era di 47nF (visto che non lo avevo ne ho messi 2 da 100nF in serie).
Non so se è uguale metterne uno più grande come hai fatto tu (0.5uF sono 500nF quindi l'hai messo 10 volte più grande).
Non sono bravo con i condensatori, però a me quello da 47nF lo ha risolto il problema.
Ho capito la soluzione... ma non ho capito qual è il problema!
Perche' fa cosi'?!?
sisi scusa ho sbagliato a scrivere...volevo dire 0,05 uF ... va messo tra Reset e massa, giusto?
jumpjack:
Ho capito la soluzione... ma non ho capito qual è il problema!
Perche' fa cosi'?!?
Si' ma insomma qualcuno sa perche' fa questo difetto? A me all'inizio non lo faceva.
a me lo ha sempre fatto...anche se ho visto che varia secondo il carico di lavoro....cioè più lavora + è facile che si pianti! per ora non si è bloccata da 3 giorni
ho provato a leggere a giro mi sa che è un problema hw....correggetemi se sbaglio
mi sa che premendo il reset dell'arduino non teniamo per un tempo sufficiente il pin reset della ethernet "basso", quindi è necessario aggiungere quel condensatore per tenerlo a 0 per un tempo + lungo, sufficiente per resettare anche la ethernet
l'ho letto anch'io, quindi non capisco come possa quel condensatore risolvere il problema dell'ethshield che si blocca dopo un po' che funziona, col led giallo che lampeggia.
lo devo mettere o no? non sarà un altro il problema?!?
ciao
attenzione che il W5100 scalda parecchio, e questa potrebbe essere una causa del .. freeze
Io ho risolto i miei problemi con la Eth Shield sacrificando un digital pin dell'Arduino per pilotare il reset dell'Eth shield stesso.
Ho notato infatti che anche se l'Eth Shield si pianta, Arduino continua a funzionare.
Quindi, effettuo un controllo lato sw, e se constato che l'Eth Shield non lavora più, lo resetto.
pitusso:
Quindi, effettuo un controllo lato sw, e se constato che l'Eth Shield non lavora più, lo resetto.
e come si fa?
scusate, ma siete sicuri di avere tutti la stessa versione di ethernet shield?
dallo schema ethernet shield risultano 3 led gialli:
SPDLED
FDXLED
LINKLED
che vanno a finire nel w5100. Quindi datasheet del w5100, e sapendo qual'è il vostro led slampeggiante, dovreste essere in grado di autodiagnosticarvi il problema, sarebbe carino scoprire se avete tutti realmente lo stesso problema
lesto:
scusate, ma siete sicuri di avere tutti la stessa versione di ethernet shield?dallo schema ethernet shield risultano 3 led gialli:
SPDLED
FDXLED
LINKLED
che vanno a finire nel w5100. Quindi datasheet del w5100, e sapendo qual'è il vostro led slampeggiante, dovreste essere in grado di autodiagnosticarvi il problema, sarebbe carino scoprire se avete tutti realmente lo stesso problema
Il mio è "the original" (sopra c'e' scritto Arduino e c'e' disegnata l'italia), e' quello con lettore SD incluso. Quindi?
dell'originale esistono comunque più versioni... a te il divertimento di scoprire qual'è la tua
Ciao
jumpjack:
pitusso:
Quindi, effettuo un controllo lato sw, e se constato che l'Eth Shield non lavora più, lo resetto.e come si fa?
Innanzitutto nel mio sketch utilizzo la libreria metro (http://www.arduino.cc/playground/Code/Metro) per gestire un timer.
Allo scadere del mio timer, resetto l'Eth Shield.
Ho però un sw di monitoring di rete, il quale per verificare l'up di Arduino effettua una GET precisa, ed attende precisa risposta.
Lato Arduino, quando ricevo la GET in questione, resetto il timer.
Quindi: fintanto che ricevo la GET di monitoraggio (che vuol dire che l'Eth Shield è in rete), il timer si resetta.
Se non ricevo la GET di monitoraggio, il timer scade e mi resetta l'Eth Shield.
Sembra laborioso, ma in realtà è molto semplice.
Un'altra alternativa è, nel caso di utilizzo di libreria Time (http://www.arduino.cc/playground/Code/Time), puoi effettuare lo stesso tipo di reset nel caso non riuscisse l'aggiornamento NTP.
O ancora, potresti usare un ping verso il router (che nel 99% dei casi è sempre acceso), per determonare se l'Eth Shield è up.
O altro ancora...
io ho adottato un sistema simile, per ora pare funzionare...(e + drastico)
lavoro con UDP e + o meno ad ogni ciclo (di 200 ms) ricevo un pacchetto da un altro arduino...
se per 100 cicli non ho ricevuto pacchetti (visto che l'arduino cmq continua a girare), resetto TUTTO (Non solo l'ethernet...che effettivamente sarebbe una soluzione migliore)...
ho collegato un relè ad un PIN9 dell'aruino, dopo 100 cicli senza aver ricevuto nulla alzo il PIN, che attrae il relè che mette a massa il PIN RESET dell'arduino.....questa soluzione inizialmente non funzionava, ma col condensatore da 47uf tra pin reset e massa pare funzioni...
la colpa non era del tempo del relè che stava attaccato, perchè anche premendo il tasto reset manualmente la ethernet non si resettava (bisognava staccare e riattaccare l'alimentazione)
l'ho giustificata così: (molto probabilemte sbagliando)
quando premo reset porto basso il pin RESET dell'arduino, una volta resettato l'arduino lo riporta alto..
se lo riporta alto troppo veloce ci sta che la ethernet non si resetti (il pin reset dell'ethernet non sta basso a sufficienza per resettarsi), il condensatore mi aumenta il tempo che me lo tiene basso, quindi ce la fa a resettarsi....ma questa è una idea che mi sono fatto in testa... effettivamente mi converrebbe resettare solo la ethernet, perchè se l'arduino funziona per portare alto il pin non c'è nessun motivo per resettarsi...ma mi piaceva anche che in caso di problemi resettavo tutto e via!
potreste provare ad inviare un pacchetto al vostro stesso IP.
Se il W5100 non è abbastanza "intelligente", il pacchetto arriva al router che lo rispedisce indietro.
Quindi se ti autoinvii il pacchetto e non ricevi il messaggio, allora l'eth è down
Altrimenti si può provare a interrogare il router sulla porta 80, dove di solito risponde con la pagina di configurazione del router.
In questo modo non serve HW/SW oltre al router, arduino e eth shield