Forum: Mikrocontroller und Digitale Elektronik SD | SDO durch Diode schützen | *Wichtig*


von Julius F. (xeno)


Lesenswert?

Hallo

Ich möchte eine SD-Karte betreiben. Für die CS, SDI und SCLK Leitung 
habe ich einen 4050 verwendet um die 5V auf 3,3V zubringen. Aber jetzt 
meine Frage wenn ich z.B. einen weiteren Baustein am SPI anschließe mit 
5V oder den Chip(Meage32) Programmiere. Dann würde auf der SDO Leitung 
5V anliegen wenn ich mit dem Baustein Kommuniziere und so somit die 
SD-Karte beschädigen. Darum wollte ich an der SDO Leitung (von der 
SD-Karte) eine Diode (1N4001) einbauen um dies zu unterbinden.
Ist dies möglich oder zerreisen mir da die Flaken?

Ich sage schon mal danke für hilfreiche Antworten!

von Andreas K. (a-k)


Lesenswert?

Eine 1N400x ist in solchem Kontext sowieso immer falsch, egal wozu, weil 
als Gleichrichterdiode viel zu langsam. Schaltdioden sind 1N4148 oder 
BAT42.

Den Controller mit 3,3V zu betreiben kommt weshalb nicht un Frage?

von Julius F. (xeno)


Lesenswert?

Andreas Kaiser wrote:
> Eine 1N400x ist in solchem Kontext sowieso immer falsch, egal wozu, weil
> als Gleichrichterdiode viel zu langsam. Schaltdioden sind 1N4148 oder
> BAT42.

Mh schade habe nur 1N400x im Hause.

> Den Controller mit 3,3V zu betreiben kommt weshalb nicht un Frage?

Ich hab mir ein Entwichklungsboard zustammen gebaut und da ist alles auf 
5V abgestimmt. Ich habe auch noch andere Bausteine am Controller die mit 
5V betrieben werden müssen.


Angenommen ich betreibe die SPI Leitung nur mit 3,3V Geräten dann ist 
das ja kein Problem aber wenn ich meinen Controller Programmiere dann 
Laufen doch 5V durch oder und so mit werden meine Bausteine zerstört?

von Andreas K. (a-k)


Lesenswert?

Ja, das kann die Bauteile zerstören wenn direkt angeschlossen.

Oft verwendet man einen Serienwiderstand 1-10K an der Leitung des 3,3V 
Bausteins um die 5V über die Schutzdioden abzuleiten. Besser noch eine 
BAT42 nach 3,3V um mögliche Nebenwirkungen durch die Verwendung der 
internen Schutzdiode zu vermeiden.

Allerdings ist das nur dann machbar, wenn sichergestellt ist, dass der 
Stromverbrauch auf der 3,3V-Versorgung immer grösser ist als der so 
dahin abgeleitete Strom, sonst fährt die 3,3V-Versorgung hoch und man 
hat wieder verloren. Notfalls mit mit zusäzlichem garantiertem 
Verbraucher nachhelfen, z.B. LED.

Die ganz korrekte Version verwendet allerdings ein 74HCT125 Gatter an 
SDO als Pegelwandler 3,3=>5, denn das ist am Eingang ganz offiziell mit 
3,3V-Pegel zufrieden und liefert am Ausgang einen korrekten Pegel für 
den Controller. Dessen Enable-Anschluss hängt dann an CS-Ausgang des 
Controllers - und an einem Pullup-Widerstand 10-100K um sicherzustellen, 
dass es während ISP inaktiv ist.

von Andreas K. (a-k)


Lesenswert?

Julius Fischer wrote:

> Mh schade habe nur 1N400x im Hause.

1N4148 und BAT42 (oder BAT43) solltest du dir mal ein paar beschaffen, 
das ist Standardkram der immer mal gebraucht wird. Und die 1N4148 sind 
ohnehin fast umsonst zu haben.

von Julius F. (xeno)


Lesenswert?

Ok erstmal danke.

Hätte ich nur mal 2 tage ehr gefragt habe mir vorgestern erst was bei 
Reichelt gekauft. Da werde ich morgen mal zu Conrad dackeln.^^

Hab mal meine Schaltung hinzugefügt. So funktioniert das dann?

Danke für die schnellen antworten.

von Julius F. (xeno)


Angehängte Dateien:

Lesenswert?

Ach misst Schlatplan vergessen sorry.

von Benedikt K. (benedikt)


Lesenswert?

So funktioniert das nicht, denn der MISO Pin wird nie einen Low Pegel 
sehen. Bau also zumindest mal einen Pulldown an die Kathode.

Dann hast du allerdings das Problem, dass der Highpegel nicht ausreichen 
wird.

Eine wirklich gute Lösung fällt mir momentan aber auch nicht ein, außer 
vielleicht einen 74HCT125 der als 3,3V -> 5V Wandler arbeitet und mit 
OE\ an CS\ der Karte auch auf tristate schaltbar ist.

von Andreas K. (a-k)


Lesenswert?

Die 4050er sind ok, aber SDO nicht. Da kommen gut 3V raus, minus 0,6V 
für die Diode sind ca. 2,5V, und das erkennt der AVR nicht als 1. Nö, da 
solltest statt dessen in den erwähnten 74HCT125 investieren (vergiss das 
"T" darin nicht).

von Julius F. (xeno)


Angehängte Dateien:

Lesenswert?

Ah ok

Mal nee frage wie ich den schalten muss, hab mal mein Schaltplan 
hinzugefügt.

Was muss ich mit der G Leitung machen?

von Andreas K. (a-k)


Lesenswert?

G kommt erstens an PB0 und zweitens mit 10-100K an +5V.

An deiner Stelle würde ich die SD-Card allerdings nicht an Vcc hängen. 
Jedenfalls nicht an das gleiche Vcc wie die 5V vom AVR.

von Julius F. (xeno)


Angehängte Dateien:

Lesenswert?

Ah ok ich hab das mal gemacht. Ist das so in Ordnung.

Mal ne dumme frage wie so kann ich den 125 nicht dauerhaft auf high 
halten?

//EDIT

Ha ja die Chip ist ja aktiv wenn die leitung low ist.

von Andreas K. (a-k)


Lesenswert?

Ja, ist ok so.

Wenn der '125 dauerhaft eingeschaltet ist, dann ist Essig mit ISP.

PS: Wenn man mit SS nichts besseres vor hat, liegt es nahe, diese 
Leitung an Stelle von PB0 als SPI-SS/CS zu verwenden. Vielleicht willst 
du T0 ja mal für irgendwas verwenden.

von Julius F. (xeno)


Lesenswert?

Ha gut danke!

Hab noch eine frage: muss ich die anderen anschlüße auf GND ziehen?

Oder auch zwei: gibt es ein Baustein der 3,3 <-> 5V kann in DIP?

von Andreas K. (a-k)


Lesenswert?

Offene Eingänge von ICs immer auf einen definierten Pegel legen. Ob Vcc 
oder GND ist egal.

Ein bidirektionaler Pegelwandler in DIP ist mir leider auch nicht 
bekannt.

von Benedikt K. (benedikt)


Lesenswert?

Andreas Kaiser wrote:
> Offene Eingänge von ICs immer auf einen definierten Pegel legen. Ob Vcc
> oder GND ist egal.

Wobei man dies nicht per Hardware machen sollte, sondern besser die 
Pullups aktivieren oder den Port auf Ausgang schalten. So vermeidet man 
Fehler: Besser einen offenen Port als einen der 5V treibt aber mit GND 
verbunden ist...

von Andreas K. (a-k)


Lesenswert?

Beim AVR hast du recht.

Ich nahm allerdings an, dass die offenen Eingänge vom 4050 und '125 
gemeint waren, und die dürfen auf GND.

von Benedikt K. (benedikt)


Lesenswert?

Stimmt, da hast du wieder recht.

von Julius F. (xeno)


Angehängte Dateien:

Lesenswert?

Ok habe jetzt alle Eingänge und G Leitungen auf GND gelegt.

Der 125 ist doch aktiv wenn die G Leitung auf GND ist. Wieso muss ich 
dort ein 50k Widerstand an VCC legen?

von Andreas K. (a-k)


Lesenswert?

Was passiert, wenn der AVR grad per ISP programmiert wird? Der hängt in 
dem Zeitraum im Reset und PB0 ist offen. Ohne Widerstand hängt also auch 
der HCT125 am G-Eingang offen und macht was er will. Wenn das heisst, 
dass er einschaltet (G=0), dann kollidiert er mit dem ISP, was grad die 
MISO-Leitung verwendet. Mit Widerstand stellst du sicher, dass in diesem 
Zeitraum G=1 gilt, der HCT125 also abgeschaltet ist.

von Julius F. (xeno)


Lesenswert?

Andreas Kaiser wrote:
> Was passiert, wenn der AVR grad per ISP programmiert wird? Der hängt in
> dem Zeitraum im Reset und PB0 ist offen. Ohne Widerstand hängt also auch
> der HCT125 am G-Eingang offen und macht was er will. Wenn das heisst,
> dass er einschaltet (G=0), dann kollidiert er mit dem ISP, was grad die
> MISO-Leitung verwendet. Mit Widerstand stellst du sicher, dass in diesem
> Zeitraum G=1 gilt, der HCT125 also abgeschaltet ist.

Ahso alles klar danke für die ganzen Info's.


>Ein bidirektionaler Pegelwandler in DIP ist mir leider auch nicht
>bekannt.

Welche gibt es den SMD Bauform?

von Andreas K. (a-k)


Lesenswert?

http://www.mikrocontroller.net/articles/Pegelwandler#BIDIREKTIONAL

Da gibt's auch noch ein paar Tips für bidirektionale Pegelwandler ohne 
IC: 
http://www.mikrocontroller.net/articles/Pegelwandler#I2C-Bus:_gemeinsam_3.3V_und_5V. 
Ist zwar für I2C aber manchmal auch anderweitig nutzbar.

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.