Forum: Mikrocontroller und Digitale Elektronik SPI und SD-Karte. Anschluss


von Josef K. (josefk)


Lesenswert?

Hallo zusammen,

ich habe ein kleines Problem mit meiner Beschaltung zur SD-Karte.
Ich setzte auf eine anderes Programm auf und versuche eine SD-Karte dort 
zu implementieren.
Momentan bin ich gerade dabei Fehler evtl bei der Beschaltung zu finden.
Da ich keine 3.3V zur Hand habe, habe ich ein ext. Netzteil verwendet, 
dessen Masse mit der des Testboards verbunden ist und eine Spannung von 
3,3V an die SD-Karte liefert.
Nach der Initialiseriung der SD-Karte (ich nutze mmc_lib siehe 
Codesammlung) sehen meine SPI-Pins folgendermasen aus (SD-Karte nicht 
eingesteckt):
CS   High  Ausgang
SC   High  Ausgang (gemessen mit einem normalenb Multimeter)
MOSI Low   Ausgang
MISO High  Eingang

Falls ich jetzt eine SD-Karte einschiebe, fließt Strom in mein Netzteil 
und die Spannungsanzeige zeigt mir, dass sie die Spannung auf ca 4,2V 
anhebt.

Da ist doch was faul, oder? Bloß was?

von Andreas W. (Gast)


Lesenswert?

Welche Spannung entspricht denn High? 5V oder 3,3V

von Josef K. (josefk)


Lesenswert?

Achso, entschuldigung.

Das Board läuft mit 5V. High ist auch 5V.

Ich habe jetzt auch ein paar Debugleds eingebaut und kann mit Sicherheit 
sagen, dass die Initialisierung der SD-Karte fehlschlägt, die SD-Karte 
aber noch in Ordnung ist.

von Benedikt K. (benedikt)


Lesenswert?

Wenn du 5V auf eine SD Karte gibts, dann dürfte es wohl klar sein, warum 
auf einmal die 3,3V Spannung hochgeht.

von Andreas W. (Gast)


Lesenswert?

Wenn Du keinen Levelshifter benutzt, dann ist das wahrscheinlich der 
Grund warum deine Versorgungsspannung ansteigt. Ich kenne keine 
SD-Karten, die 5V tolerante Eingänge haben...

von Josef K. (josefk)


Lesenswert?

@bendikt
Was meinst du damit?
CS sollte ja im idle-Fall high sein.
SCK wird mir zwar als high angezeigt, scheint aber nur an meinem 
Popelmultimeter zu liegen. Da wird ja der Takt 0V-5V ausgegeben.
Und MISO ist ein Eingang, da kann also der "negative" Strom auch nicht 
herkommen, oder? Warum der High sein soll weiß ich auch nicht, ist eben 
in der Lib so und viele arbeiten damit.

Hmm. Falls Ich CS UND MOSI weglöte ist das Problem weg, und wenn ich CS 
ODER MOSI anlöte fließt wieder Strom in das Netzteil.

Kann das am Netzteil liegen und evtl. mit einem Spannungsregler nicht 
der Fall sein?

von Benedikt K. (benedikt)


Lesenswert?

Josef Kaeufl wrote:
> Was meinst du damit?

Du kannst nicht auf ein IC das mit 3,3V läuft, 5V geben ! Rate mal wiso 
man hier im Forum bei der Suche nach +SD +5V 207 Treffer hat ? Genau, 
weil es nicht geht und man daher die 5V Signale auf 3,3V bringen muss.

> Außerdem ist das hier
> http://www.mikrocontroller.net/attachment/8582/1.png genauso gelößt.

Nur mit dem Unterschied, dass hier alles mit 3V läuft...

von Josef K. (josefk)


Lesenswert?

Ich hab das ganze schon mal mit nem Atmega128 und AtemagaDOS aufgebaut. 
Da läufter µC auch mit 5V und die SD-karte bekommt extra 3,3V. Die SPI 
Verbindungen sind dort auch direkt und es funktioniert. Das ist dann 
aber komisch.

PS: das mit 3.3V habe ich auch gerade gesehen. Habs auch gleich wieder 
gelöscht, war aber anscheinend zu langsam :)

PPS: Ich spüre ein unterschwellige Aggresion.

von Benedikt K. (benedikt)


Lesenswert?

Es mag funktionieren. Ich habe auch schonmal versehentlich eine SD Karte 
mit 5V betrieben. Wurde etwas warm, ging aber. Die Frage ist nur für 
wielange...

von Josef K. (josefk)


Lesenswert?

Die Frage ist aber immer noch warum Strom in mein Netzteil fließt. Ist 
das "normal" bzw. muss man in sochen Fällen einfach eine Diode vor 3,3V 
einbauen?

von Benedikt K. (benedikt)


Lesenswert?

Jedes CMOS IC (also nahezu jedes IC überhaupt) hat Schutzdioden zwischen 
jedem Pin und Vcc. Ist also der Eingang positiver, fließt Strom über die 
Dioden nach Vcc.
Die 4,2V sind ziemlich genau die 5V - 0,7V Diodenspanung.

von Kalle (Gast)


Lesenswert?


von Josef K. (josefk)


Lesenswert?

Ahhh.

Ok danke. Das mit den Schutzdioden klingt logisch. :)

von Michael H* (Gast)


Lesenswert?

naja, dein 3v3 netzteil hat das niedrigere potential gegenüber den 5V 
gegen die gemeinsame masse. es wird also zur stromsenke.
übrigens können manche netzteile gar keinen strom aufnehmen. das teil 
könnte sich also verabschieden.

entweder, du baust spannungsteiler für deine spi-ausgänge (*), oder du 
verwendest einen mit 3v3 versorgten pegelwandler (z.b. 74hc14).
nachteil der spannungsteiler ist, dass die maximale 
übertragungsgeschwindigkeit sinkt, weil sie die flanken verziehen.

(*) für den miso kanal brauchst du idr keinen, da die 3v3 als high 
erkannt werden. falls die 3v3 des miso nicht als high erkannt werden, 
kannst du sowas hier baun:

    ^ 5V
    |
   ,-,
   | |
   |_|
    |
    o--- MISO µC
    |
   _|_
   \ /  2x 1N4148
   ¯|¯
    |
    O--- MISO SD

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.