Forum: Mikrocontroller und Digitale Elektronik SPI zwischen Mikrocontroller+SD-Card+ENC28J60=Pegelwandlung


von Stephan Plaschke (Gast)


Lesenswert?

So mein Problem ist das ich den Atmega32 mit 5V benutze. Um nun eine 
SD-Card und den ENJ28J60 über SPI zu benutzen benötige ich ja einen 
Pegelwandler.
Als erstes dachte ich einfach an einen Spannungsteiler, bin dann aber 
hier im Board auf den MAX3378E gestoßen. Der Baustein wurde je extra für 
diesen Fall entwickelt. Allerdings habe ich 2 Slaves. Meine Idee hierzu 
wäre einfach die zweite CS Leitung über einen Spannungsteiler zu 
realisiern. Mir stellt sich nur insgesammt die Frage ob das ausreichend 
ist oder ob ich gleich zu dem 74LVX245 greifen sollte. Der hat 8 
Eingänge was ja mehr als ausreichend wäre.

So das war meine erste Frage jetzt dann auch gleich die zweite. Um den 
µC in der Schaltung zu prgrammieren nutzt man ja die selben Pins. Kann 
ich nun einfach vor dem Pegelwandler den Anschluss für den Programmer 
setzen? Oder sollte man das Programmieren ganz anders durchführen.

Ich hoffe die Infos reichen aus um mir etwas weiter helfen zu können. 
Auf jeden Fall schon mal vielen Dank im vorraus!

Mfg
Stephan

von holger (Gast)


Angehängte Dateien:

Lesenswert?

Der ENC28J60 hat 5V verträgliche Eingänge.
Die CS Leitung für den ENC28J60 kannst du also
direkt anschliessen. Finger weg vom 74LVX245.
Ich hab mal einen von Fairchild benutzt. Der
taugt nicht die Bohne für 5V-3V Konverter.
Nach lesen des Datenblattes war auch klar wieso.

Im Anhang meine ISP taugliche Schaltung für
MMC/SD und ENC28J60.

von Stephan Plaschke (Gast)


Lesenswert?

Vielen Dank für die schnelle Antwort. Hab grad auch das Handbuch genauer 
angeschaut und das mit den 5V Verträglich gefunden. Bleibt also nur noch 
die Frage mit den programmieren offen. Ich denke du programmierst deinen 
seperat und schließt dann erst das Board an richtig ??

von holger (Gast)


Lesenswert?

>Ich denke du programmierst deinen
>seperat und schließt dann erst das Board an richtig ??

Nein, ich programmiere MIT angeschlossenem Board.

von Kai S. (Firma: ZeuSWarE GmbH) (zeusosc)


Lesenswert?

Hi,
per SPI werden daten und instruktions gesendet,.

grüüße

von Stephan Plaschke (Gast)


Lesenswert?

So das habe ich daraus zusammengeschustert. Über jede Anregung bin ich 
dankbar.


Mfg
Stephan Plaschke

von Stephan Plaschke (Gast)


Angehängte Dateien:

Lesenswert?

so hier das File, habs vergessen sry.

von Andreas K. (a-k)


Lesenswert?

Tristate vom MAXe an Reset wäre besser, erspart Ärger beim ISP. Der oben 
gezeigte HCT125 tut's aber genauso, und spätestens wenn am SPI noch ein 
zweiter Kunde sitzt (z.B. ein Dataflash) ist ein HCT125 sparsamer.

von Stephan Plaschke (Gast)


Angehängte Dateien:

Lesenswert?

Mmmmh den Tristate vom MAX3378E habe ich nun an RST gehängt aber ich 
verstehe nicht genau wieso ich den daran hängen soll. Der TS-Eingang ist 
doch dazu um die Internen Pullups zu trennen. Wieso habe ich denn sonst 
damit Probleme? Oder verstehe ich da was falsch.

mfg
Stephan

von Andreas K. (a-k)


Lesenswert?

Nö, sorry, war ein Schnellschuss (allerdings meinte ich den 
Controller-Reset). Geht bei dem Ding ohne, und der Pullup am CS vom SDCA 
könnte direkt nützlich sein, jedenfalls wenn der SDCA keinen eigenen 
mitbringen sollte.

Aber offen lassen kannst du TS jedenfalls nicht.

von Stephan Plaschke (Gast)


Lesenswert?

SDCA ist ein SD-Kartenslot. Ist es hierfür wirklich notwendig einen 
Pullup zu verwenden? Ist es grundlegend sinnvoll bei SPI den CS mit 
einem Pullup zu versehen?
Das mit dem TS habe ich jetzt geändert, ist mir nach erneuten lesen auch 
aufgefallen das ich den auf keinen Fall frei lassen kann. Also erst mal 
danke!

Mfg
Stephan Plaschke

von Andreas K. (a-k)


Lesenswert?

Pullup ist nötig weil während Controller-Reset (ISP) die CS-Leitungen 
seitens Controller offen sind. Ohne Pullup können sich SPI-Slaves 
aktiviert fühlen und untereinander oder mit ISP kollidieren. Deshalb 
sind Pullups an des CS-Leitungen immer sinnvoll, wenn mehrere Slaves an 
einem Bus hängen, ISP mitgezählt. Der ENC hat den Pullup netterweise 
schon intern.

von Stephan Plaschke (Gast)


Angehängte Dateien:

Lesenswert?

Ah ok verstehe klingt auch sehr einleuchtend. Habe jetzt einen 
Widerstand zugefügt und diesen als Pullup am TS und CS gelegt.

Danke
Stephan

von Andreas K. (a-k)


Lesenswert?

So wird's auch nix, denn nun ist TS aktiv (=offen), wenn SS aktiv.

Ich hab das Datasheet grad nicht parat aber meine mich zu erinnern, dass 
der MAXe Pullups drin hat. Also TS=high und gut.

von Stephan Plaschke (Gast)


Lesenswert?

Oh man hab wohl noch geschlafen wie ich das gemacht hab. Hast natürlich 
Recht ist auch berichtigt. Danke!!
Mach mich jetzt mal ans Layout.

Vielen Dank!!

Stephan

von Stephan Plaschke (Gast)


Angehängte Dateien:

Lesenswert?

So das ist erstmals bei raus gekommen. Vielleicht sieht ja jemand einen 
groben Fehler. Ansonsten kann ich es endlich morgen raus schicken.


Mfg
Stephan

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.