Go Down

Topic: Modulo Eth ENC28J60 (Read 412 times) previous topic - next topic

86ktm

Ciao a tutti, questo è il mio secondo post.

Ho un scheda Arduino Uno rev3 originale(ATmega 328P con microcontrollore lungo con i piedini) e un paio di cinesi con atmega328 smd.

Solitamente faccio le prove con le cinesi e poi riverso sull'italiana per utilizzare i miei progetti.

Per tutti i compenenti/sensori utilizzati finora mai avuto problemi tranne adesso con il modulo eth ENC28J60


sto testanto questo sketch da diversi giorni. (ma anche con altri stesso errore)

http://pietrolodi.altervista.org/arduino-modulo-lan-enc28j60-sistema-di-controllo-luci-da-remoto/


Dopo aver cambiato ponticelli, pin, schede ecc, ho scoperto che:

Con la scheda originale tutto funziona al primo colpo, con quelle cinesi restituisce errore "Failed to access Ethernet controller
"

Non dovrebbero essere identiche? Potrebbe cambiare qualcosa nella libreria? O davvero è colpa dei cinesi? collegato su pin 13 12 11 e 8.

Io utlizzo questa libreria https://github.com/jcw/ethercard

Grazie

brunello22

Devi aggiungere il pin a cui hai collegato il CS

Code: [Select]
if (ether.begin(sizeof Ethernet::buffer, mymac, 8) == 0)





SukkoPera

#2
Apr 20, 2018, 09:17 am Last Edit: Apr 20, 2018, 09:17 am by SukkoPera
Posta anche una foto del modulo che stai usando. L'ENC, come l'ESP8266, va alimentato a 3.3V ma consuma parecchio, più di quanto il regolatore montato su Arduino è in grado di fornire. Probabilmente il regolatore dell'Arduino originale è di qualità migliore e riesce a fornire più corrente degli altri, per cui la scheda "funzionicchia", ma la soluzione vera è una di quelle che si usano sull'ESP, vedi la mia guida in firma, solo per la parte di alimentazione.

Non è invece necessario adattare i segnali, in quanto l'ENC è 5V-tolerant.
Make your Sega MegaDrive/Genesis region-free with Arduino! https://goo.gl/X7zBcq

Guida rapida a ESP8266: https://goo.gl/kzh62E

86ktm

#3
Apr 21, 2018, 04:26 pm Last Edit: Apr 21, 2018, 04:27 pm by 86ktm
Ottima guida...grande!

Penso sia come dici tu. Non basta la corrente. Siccome dovrò aggiungere al progetto anche un lettore RFID in futuro ed essendo tutti e due 3.3volt opterò per un alimentatore esterno.

In allegato i 2 moduli che ho testato. Entrami funzionano con originale e non con cinese.

https://ibb.co/b6dBYc

ti terrò aggiornato...appena avrò alimentatore tra le mani.


grazie

SukkoPera

Ok, non vedo regolatori su nessuno dei due, per cui dovrai pensarci tu.
Make your Sega MegaDrive/Genesis region-free with Arduino! https://goo.gl/X7zBcq

Guida rapida a ESP8266: https://goo.gl/kzh62E

acik

Devi aggiungere il pin a cui hai collegato il CS

Code: [Select]
if (ether.begin(sizeof Ethernet::buffer, mymac, 8) == 0)

Scusate, ma alla fine quell'8  va messo oppure no ?
Alex Limbeck

gpb01

#6
May 14, 2018, 09:00 pm Last Edit: May 14, 2018, 09:00 pm by gpb01
Scusate, ma alla fine quell'8  va messo oppure no ?
... hai letto il post di Brunello ... o hai guardato solo la riga del codice ?

Devi aggiungere il pin a cui hai collegato il CS
Guglielmo
Search is Your friend ... or I am Your enemy !

acik

Caro Guglielmo,
ovviamente ho letto tutto il thread, poi mi sono letto la sua pagina:
http://pietrolodi.altervista.org/arduino-modulo-lan-enc28j60-sistema-di-controllo-luci-da-remoto/

Dove non e' stato coretto il codice come ha detto brunello22.

A questo punto la domanda sorge spontanea... (Visto che molte librerie, se non specificato, prendono i valori di default)

Alex Limbeck

gpb01

#8
May 15, 2018, 08:02 pm Last Edit: May 15, 2018, 08:08 pm by gpb01
... non ho capito che dubbio hai ::)

Se vai alla libreria indicata dal OP, ovvero QUESTA, nel file EtherCard.cpp, alla linea 405 c'è il metodo begin che, appunto, prevede tale pin e NON ha un valore di default:

Code: [Select]
uint8_t EtherCard::begin (const uint16_t size,
                          const uint8_t* macaddr,
                          uint8_t csPin) {

Cosa non ti quadra ?

Guglielmo
Search is Your friend ... or I am Your enemy !

acik

Cosa non ti quadra ?

Non quadra il fatto che funziona anche senza.  ;)

Provato adesso.
Alex Limbeck

SukkoPera

#10
May 15, 2018, 09:10 pm Last Edit: May 15, 2018, 09:10 pm by SukkoPera
Il valore di default è nel file .h.
Make your Sega MegaDrive/Genesis region-free with Arduino! https://goo.gl/X7zBcq

Guida rapida a ESP8266: https://goo.gl/kzh62E

gpb01

#11
May 15, 2018, 09:20 pm Last Edit: May 15, 2018, 09:20 pm by gpb01
Il valore di default è nel file .h.
Aha ... nascosto :D :D :D

Guglielmo
Search is Your friend ... or I am Your enemy !

SukkoPera

#12
May 15, 2018, 09:21 pm Last Edit: May 15, 2018, 09:21 pm by SukkoPera
Veramente il C++ ti obbliga a fare così ;).
Make your Sega MegaDrive/Genesis region-free with Arduino! https://goo.gl/X7zBcq

Guida rapida a ESP8266: https://goo.gl/kzh62E

gpb01

#13
May 15, 2018, 09:22 pm Last Edit: May 15, 2018, 09:22 pm by gpb01
Veramente il C++ ti obbliga s fare così ;).
Sai bene che sono un "purista" del "ANSI C" :D :D :D

Guglielmo
Search is Your friend ... or I am Your enemy !

Go Up