Forum: Mikrocontroller und Digitale Elektronik PIC18 + ENC28J60


von L.F. (Gast)


Lesenswert?

Ich möchte einen PIC18F45k22 ans LAN anschließen und möchte über TCP 
Befehle senden und empfangen. Ich habe mit dazu eine Platine mit dem 
ENC28J60 gekauft.

Weiß jemand wo ich einen Beispielcode zu diesem Thema finde?

von Holger W. (holgerw)


Lesenswert?

z.B. bei Microchip
www.microchip.com/mla

Holger

von L.F. (Gast)


Angehängte Dateien:

Lesenswert?

Ist ein Pegelwandler nötig, wenn ich den PIC mit 5V betreibe?
Vom PIC zum ENC brauch es keinen, da der ENC 5V tolerante Eingänge hat. 
Erkennt der PIC die 3.3V noch zuverlässig als high? Bei einer Schaltung 
habe ich es mal bei einem nRF24L01+ ohne Pegelwandler versucht und es 
hat Funktioniert, aber ist es auch zuverlässig?

Falls ich einen Pegelwandler benötige würde ich diesen verwenden. Kann 
mir jemand sagen bis zu welcher Frequenz der Pegelwandler funktioniert? 
Sind 5MHZ ok?

von Frank K. (fchk)


Lesenswert?

L.F. schrieb:
> Ist ein Pegelwandler nötig, wenn ich den PIC mit 5V betreibe?
> Vom PIC zum ENC brauch es keinen, da der ENC 5V tolerante Eingänge hat.
> Erkennt der PIC die 3.3V noch zuverlässig als high?

Diese Frage beantwortet Dir das Datenblatt auf Seite 441, Abschnitt 27.8 
"DC Characteristics:Input/Output Characteristics".

Lerne, die Primärquellen zu benutzen!

fchk

von L.F. (Gast)


Lesenswert?

Also laut Datenblatt brauch ich den Pegelwandler. Es hat zwar ohne 
funktioniert, wird aber wahrscheinlich nicht zuverlässig sein...

Was sagt ihr zu meinem Pegelwandler? Ich werde aber nur 2 Transistoren 
verwenden, da ich nur 2 Signale wandeln muss. Ich würde ungern einen IC 
dafür verwenden, weil ich keinen zu Hause habe und ich nicht für 2 
Signale einen ganzen IC einbauen will. Ich baue nur eine klein 
Adapterpaltine um das gekauft ENC28J60 Board an meine PIC-Testplatine 
anzuschließen.

von Gerd M (Gast)


Lesenswert?

L.F. schrieb:
> Also laut Datenblatt brauch ich den Pegelwandler.

Kannst du den Ausschnitt posten, woher du diese Information entnimmst?
Ich sehe es nämlich anders als du.

Frank hat es dir die Quelle sogar schon rausgesucht, schau bitte genau 
dort nochmal nach.

von Stampede (Gast)


Lesenswert?

Viel einfacher wäre es doch, sowohl den PIC18 als auch den ENC mit 3,3 V 
zu betreiben.

von L.F. (Gast)


Angehängte Dateien:

Lesenswert?

Hier. Und der die SPI Pins sind Schmittigger. Also muss der High Pegel 
mindestens 0.8*Vcc sein.

0.8*5V = 4V

von Jürgen S. (Firma: privat) (jschmied)


Lesenswert?

Der ENC27J60 ist 5V tolerant. Keine Pegelwandler nötig ;).

Code auch unter
http://www.mikrocontroller.net/attachment/187627/PIC-miniweb.zip

vg

Jürgen

von Frank K. (fchk)


Lesenswert?

Die Frage ist auch, warum Du nicht einen PIC18F97J60 verwendest. Der hat 
den ENC28J60 bereits eingebaut und ist dank des fehlenden SPI zwischen 
Prozessor und Ethernet auch noch deutlich schneller (UDP: 113kB/s statt 
63kB/s, TCP: 76kB/s statt 45kB/s).

fchk

von Stampede (Gast)


Lesenswert?

>>Der ENC27J60 ist 5V tolerant. Keine Pegelwandler nötig ;).

Das ist wie in dieser Konstellation schlichtweg falsch. Es geht nämlich 
darum, die Pegel vom ENC zum PIC. Und da sind die 3,3V nicht genug um 
die ST Eingänge des SPI zu treiben.
Also braucht man einen Wandler zumindest für das MISO Signal.

von L.F. (Gast)


Lesenswert?

Frank K. schrieb:
> Die Frage ist auch, warum Du nicht einen PIC18F97J60 verwendest

Ich habe bereits eine Testplatine mit dem 18F45k22 zu Hause und viel 
Erfahrung mit diesem PIC. Und es ist einfacher die ENC28J60 Platine mit 
dem Demoboard zu verbinden als eine neue Platine für den 97J60 
herzustellen. Ich habe auch nicht die Möglichkeit eine für den 97J60 
eine Platine zu Ätzen, da mit meinem Belichtungsgerät keine so feinen 
Leiterbahnen möglich sind. Das mit der Geschwindigkeit ist kein Problem, 
da ich das Ganze nur zum Testen verwende und nur Befehle an den PIC 
senden eine kleine Website laufen lassen will.

Wir wissen jetzt dass ich einen Pegelwandler brauche. Jetzt würde ich 
gerne auf die Frage zurückkommen ob mein Pegelwandler geeignet ist. Für 
Interrupt Pin müsste er auf Grund der niedrigen Frequenz passen, es 
bleib aber die Frage ob er die 5 MHz beim MISO Pin Schafft.

von Chris (Gast)


Lesenswert?

Nimm doch einfach einen SN74LVC1G34, so groß wie dein Transistor, muss 
lediglich ein Kondensator dran.

Gruß

von L.F. (Gast)


Lesenswert?

Den habe ich leider nicht zu Hause und ich würde gerne Bauteile 
verwenden die ich schon habe und nicht wegen einem Bauteil irgendwo 
bestellen.

von L.F. (Gast)


Lesenswert?

Und beim SN74LVC1G34 steht in Datenblatt:
High-level input voltage VCC=4.5V to 5.5V : 0.7×VCC

Laut Simulation mit Multisim funktioniert mein Pegelwandler mit dem 
Bs170 anstatt dem BC337 bei 5MHz gut.

von Jürgen S. (Firma: privat) (jschmied)


Lesenswert?

Hallo!


>Das ist wie in dieser Konstellation schlichtweg falsch. Es geht nämlich
>darum, die Pegel vom ENC zum PIC. Und da sind die 3,3V nicht genug um
>die ST Eingänge des SPI zu treiben.

PIC18F Datasheet:
Input High Voltage für 4.5V ≤ VDD ≤ 5.5V:
--> 2.0 V

Das schafft der ENC28J60 mit 3,3 V Betriebsspannung. Der Arduino braucht 
mehr (2,4V), daher haben viele Boards die Level-Shifter.

vg

Jürgen

: Bearbeitet durch User
von L.F. (Gast)


Lesenswert?

PIC18F Datasheet:
Input High Voltage für 4.5V ≤ VDD ≤ 5.5V:
--> 2.0 V

Und wo genaus steht das? Ich habe nur gefunden dass die High Spannung > 
0.8VDD ist.

von Jürgen S. (Firma: privat) (jschmied)


Lesenswert?

Ok, RC4 ist ein Schmitt-Trigger Eingang. Es gilt doch:

Parameter D041
RC3 and RC4       0.8 VDD

Ein Level-Shifter ist besser ...

von L.F. (Gast)


Lesenswert?

Da wir das Problem mit dem Pegelwandler jetzt gelöst haben...
Weiß jemand wo ich z.B. ein Tutorial finde wie ich den ENC28J60 mit 
meinem PIC18F45k22 ansteuere?

von L.F. (Gast)


Lesenswert?

Kennt jemand ein Tutorial?

von Chris B. (dekatz)


Lesenswert?

Ein Turorial welches genau auf deinen Controller zugeschnitten ist, wird 
sich kaum finden. Aber du kannst "Microchip Libraries for Applications 
v2013-06-15" runterladen und installieren. Dort gibt es auch Beispiele 
für PIC18F TCP/IP-Stack und den ENC28J60.

http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2680&dDocName=en547784

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.