Problema con Ethernet autocostruita con ENC28J60

Ho realizzato questa scheda Ethernet:

http://hacknmod.com/hack/add-internet-to-your-arduino-on-the-same-circuit-board/

L'ho realizzata su millefori con un ATmega328 sulla stessa scheda.

La sola ENC28J60 assorbe più di 100 mA, mi sembrano tanti però
se si osserva lo schema le uscite pin 16 e 17 verso il connettore RJ45 hanno
una resistenza di pullUP di 51 ohm verso il 3v3, se le uscite sono basse è
chiaro che la corrente può essere alta.
Che ne dite?

Ho utilizzato sull'ATmega328 questa libreria:

ed ho caricato l'esempio "Hello Word".

Allindirizzo 192.168.1.15 visualizza "Hello Word" quindi OK.

Poi provo con ping 192.168.1.15 esegue molti cicli e poi si blocca,
per ripartire devo resettare l'ATmega328

Il problema potrebbe essere nell'ENC28J60 oppure sul Mega328p?

Qualche idea?

Carletto

La corrente assorbita corrisponde a quella scritta nel datasheet.
Ci sono 3 cose che non mi quadrano in quel progetto:
*l' uso di TTl della serie LS e non HC

  • la mancanza del trasformatore tra il ENC e la presa RJ45 come http://www.nuelectronics.com/estore/index.php?main_page=project_eth.
    Esistono prese RJ45 col trasformatore integrato come la presa HR911105A.
  • la mancanza di condensatori verso massa sul quarzo (presenti sullo schema ma non sulla scheda.
  • l' uso del 78L33 per portare la tensione da 5V a 3,3V. avendo una tensione di dropout tipica di 1,7V lavora al limite delle specifiche. userei un altro medello con un dropout minore.

Ciao Uwe

Ma 51 ohm non sono pochi per una resistenza di pullup?

Pelletta:
Ma 51 ohm non sono pochi per una resistenza di pullup?

Sono resistenze di terminazione. Visto che lavoriamo con frequenze di 10MHz devono essere bloccate delle riflessioni alla fine del cavo.

vedi FIGURE 2-4: a pagina 9 di http://ww1.microchip.com/downloads/en/devicedoc/39662b.pdf

Ciao Uwe

Ci sono 3 cose che non mi quadrano in quel progetto:
*l' uso di TTl della serie LS e non HC

  • la mancanza di condensatori verso massa sul quarzo (presenti sullo schema ma non sulla scheda.

nel progetto originale hanno usato un 74HC08 smd montato lato rame
idem per i condensatori sui quarzi

Parlo della pagina http://www.instructables.com/id/A-credit-card-sized-Ethernet-Arduino-compatable-co/ linkata dalla pagina http://hacknmod.com/hack/add-internet-to-your-arduino-on-the-same-circuit-board/ che aveva indicata carletto. Se altri fanno meno cose strane non so dirti.

Ciao Uwe

Quindi l'assorbimento è OK.

  1. Le 2 porte AND che ho montato sono M74HC08B1
  2. Per quanto riguarda la presa RJ45 ha i trasformatori interni
    Allego datasheet
  3. L'alimentatore 78L33 è al limite, dovrei sostituirlo con un 7833.
    Non ce l'ho in casa, lo farò.
    Alla scheda arrivo con 12V quindi alimenterò il 7833 con 12V.

Carletto.

ENG_CD_6605834_E.pdf (150 KB)

Ma di quanta corrente necessiti a 3,3V? Se non molta, puoi usare l'MCP1700-330, è un regolatore che ha un basso dropout ma fornisce solo 250 mA di corrente.

leo72:
Ma di quanta corrente necessiti a 3,3V? Se non molta, puoi usare l'MCP1700-330, è un regolatore che ha un basso dropout ma fornisce solo 250 mA di corrente.

Visto che la sola ENC28J60 assorbe più di 100mA
e la corrente massima del 78L33 è di soli 100mA pensavo di sostituirlo.
Ma secondo voi il 7833 non va bene?
Per questo non ho problemi a reperirlo, mentre per l'MCP1700-330 dovrei
vedere dove acquistarlo.

Carletto

Ho dato un misurata al consumo del ENC28j60.

73 mA

brunello:
Ho dato un misurata al consumo del ENC28j60.

73 mA

Come ho detto la mia ENC28J60 con relativa circuitteria assorbe 103mA.

Potrebbe essere l'alimentatore a portarmi quell'assorbimento?

Come l'hai fatta tu l'alimentazione?
Che alimentatore hai utilizzato?

Adesso stò sostituendo l'alimentatore 78L33 con un LM317
con partitore e con l'entrata all'ingresso della scheda cioè 10- 12V.

Carletto.

Sul datasheet non ci sono collegamenti GND alla presa RJ45.

Sarà utile collegare l'involucro in lamiera della presa al GND?
Potrebbe provocare danni?

Allego il datasheet, come si vede non ci sono indicazioni
in tal senso.

Carletto

ENG_CD_6605834_E.pdf (150 KB)

Certo che lo schermo va' collegato a massa.

e non guardare il datasheet del connettore, guarda sempre lo schema elettrico del progetto

Allego lo schema che ho utilizzato ricavato dall'originale.
http://hacknmod.com/hack/add-internet-to-your-arduino-on-the-same-circuit-board/

Da indicazione di uwefed ho sostituito l'alim. 78L33
con un BA033 basso drop out che ho trovato su una scheda di recupero.

La libreria che ho caricato:

Senza cavo inserito i 2 LED lampeggiano 2 volte.
Con cavo inserito il LED sul pin 27 rimane acceso fisso
il LED sul pin 26 lampeggia.

Visualizza "Hello World"

L'assorbimento è intorno ai 110mA, normale secondo il datasheet a pag 80.

Il mio problema lo vedo con il ping:
allego i risultati del ping, chiedo se quei valori sono normali:
Il Time incomincia con un valore basso 6, 7 mS e sale fino a 200mS per poi
ricominciare da 6, 7mS poi come si vede dal file che allego ogni tanto
fa un time molto alto 300, 400 e più mS.

Oltre a questo ogni tanto si blocca e resettando riparte.

Ho messo un LED sull'ATmega328 questo continua a lampeggiare anche quando si
blocca, quindi il problema è dovuto all'ENC28J60.

Come può essere definito questo problema?
Può dipendere dalla libreria che ho utilizzato?

Carletto.

Ping 240612.txt (30.2 KB)

Ecco lo schema in allegato.

ENC28J60 schema_D.pdf (22.1 KB)

ENC28J60_V.pdf (33.9 KB)

Ho cambiato libreria con la etherShield e con il ping il time
oscilla tra 1,13 mS e 1,17 mS e per il momento non si è
ancora bloccato.

Carletto