Forum: Mikrocontroller und Digitale Elektronik brauchen SD-Karten genau 3,3V?


von Josef K. (zumlin)


Lesenswert?

Hallo

ich habe grad eine kleine Platine zusammengelötet und versucht damit 
eine SD-Karte auszulesen. Eigentlich nichts besonderes. Der Aufbau war 
mir klar, die Bibliothek dazu läuft schon auf einem anderen Board 
einwandfrei...
Aber nun funktioniert nichts. Ich kann einfach die Karte nicht 
"Initialisieren".
Die Ausgänge des Controllers sind mittels Spannugnsteiler(680 Ohm, 475 
Ohm) auf ca 3,3 Volt runter (was schon auf der alten Platine gut lief) 
und MISO ist direkt am Pin des µCers. Leider hatte ich diesmal keinen 
Spannungswandler zur Hand und daher ist auch VCC der Karte mittels 
Spannungsteiler auf ca. 3,3V genähert. Um genau zu sein auf 3,5V. Die 
Karte an sich sollte ja bis 3,6V aushalten. Aber wie gesagt tut sich 
garnichts. Woran kann das liegen. Das einzige, was an der Platine anders 
ist, ist VCC der Karte. Liegts wirklich daran???

Ach ja, als Karte verwende ich gerade eine 1GB UltraII. Hatte nichts 
einfacheres zur Hand.

von H.j.Seifert (Gast)


Lesenswert?

Spannuungsteiler für die Versorgung?? Klappt niemals.
Spendier einen 3,3V-Regler.

von Josef K. (zumlin)


Lesenswert?

Verdammt. Warum nicht? Was passiert da dann?

von Gast (Gast)


Lesenswert?

Was funktioniert genau nicht?
Schaltplan?
Warum nimmst nicht einfach einen 3,3V Regler und behebst die 
Spannungsteilerproblematik?

Wenn sich die beiden Schaltungen nur in der Versorgung der SD-Karte 
unterscheiden, dann liegt es genau da dran.

von Josef K. (zumlin)


Lesenswert?

Naja, es besteht ja noch die Möglichkeit, dass ich im Quellcode Mist 
gebaut habe. Man weiß sowas ja nie. (Zumindest ich nicht ;)

von Gast (Gast)


Lesenswert?

> Naja, es besteht ja noch die Möglichkeit, dass ich im Quellcode Mist
> gebaut habe.
Und das soll jemand ohne den Quellcode diagnostizieren?

von Josef K. (zumlin)


Lesenswert?

@Gast
Naja, ich bin einfach davon ausgegangen, da ich die Bib schon in einem 
anderen Projekt im Einsatz hatte und als erstes natrülich auch bei deren 
Konfiguration nach Fehlern suchte, dass der Fehler zu 99% in der 
Schaltung liegt.
Daher auch meine Frage. Aber hier dann ein Codeschnippsel:
1
int main (void)
2
{
3
  wdt_enable(WDTO_1S);
4
  uart0_init();
5
  uart0_puts("initialisiere Hardware");
6
  init_hardware();
7
  
8
  char *inbuff = malloc(20*sizeof(char));
9
10
  uart0_puts("Lese SD-Karte");
11
12
  MMC_IO_Init();
13
  
14
  if(GetDriveInformation() != F_ERROR){
15
    uart0_puts("...SD erfolgereich");
16
    if(Chdir("/") == F_ERROR){
17
      Fopen("muster01.csv",F_READ);
18
      Fread(inbuff,20);
19
      Fclose();
20
     }
21
    uart0_putcn(inbuff,20);
22
  }  
23
  else 
24
    {
25
    uart0_puts("...nicht erfolgreich");
26
  }
27
28
  uart0_puts("betrete Endlosschleife");
29
  while(1)
30
  {    
31
    wdt_reset();
32
  }
33
  return 1;
34
}

von // (Gast)


Lesenswert?

> Verdammt. Warum nicht? Was passiert da dann?

BELASTETER Spannungsteiler?!

;-)

von H.j.Seifert (Gast)


Lesenswert?

im Moment, wo du was an der Karte tust (Schreiben, lesen) brauchst du so 
50...100mA. Und nun schau mal, was dein Spannungsteiler hergibt. Und 
falls er das schafft - wieviel Spannung ist dann noch da?
Kurz: das ist Murks und funktioniert nicht.

von Josef K. (zumlin)


Lesenswert?

Okayx, überredet

von Sascha W. (sascha-w)


Lesenswert?

ein paar Dioden in Reihe - anstelle des Widerstand's nach + ,würden es 
zur Not auch erst mal tun. Als Dauerlösung aber auch nicht zu empfehlen.

Sascha

von Tobias P. (hubertus)


Angehängte Dateien:

Lesenswert?

Hallo,
mal schnell eine Frage wegen der SD-Karten Spannungsversorgung.
Ich will auf einem Board, wo ein LPC2468 sitzt, einen SD-Kartenslot 
vorsehen.
Der Mikrocontoller erlaubt ja über den MCIPWR-Pin das ein- und 
ausschalten der Spannungsversorgung der SD-Karte; genau sowas möchte ich 
auch in meinem Gerät einbauen - es soll so viel Strom wie möglich 
gespart werden. Also - der SD-Karte den Saft abdrehen, wenn sie nicht 
gebraucht wird.
Jetzt die Frage:
Darf ich die 3.3 Volt, die die Karte braucht, mit einem PNP-Transistor 
schalten? Ich dachte mir das in etwa so wie im Bild.
Über dem Transistor gehen dann ja ein paar mV verloren, die dazu auch 
noch abhängig vom Stromverbrauch der Karte sind - und die Frage ist, ob 
es so noch funktioniert, oder ob man das besser anders macht.
Warum ich gerade diese Transistoren nehme: weil ich die grade da habe.
Warum der Basiswiderstand vom NPN 4k7 ist: ich benutze eh ein 
Widerstandsnetzwerk da irgendwo in der Nähe, wo noch diese 4k7 frei 
sind.

Gruss

von (Gast) == (Gast)


Lesenswert?

Die paar mV über die CE-Strecke, auch wenn sie marginal lastabhängig 
sind, jucken die Card nicht. Dimensionierung geht auch OK.

Gruß Frank

von Ulrich (Gast)


Lesenswert?

Die sauberste Lösung wäre ein Regler mit Shutdown, z.B. LP2951. Die 
einfache Basterlösung wäre ein Spannungsteiler der vom µC 
Ein/ausgeschaltet wird, und dann ein N-Darlington Transistor (oder 
komplementär Darlington) dahinter.

von Tobias P. (hubertus)


Lesenswert?

Frank,
danke. Ich habe es grade eben simuliert, mit einem angenommenen 
Laststrom von 300 mA. Dann kommen noch gut 3.1 V raus. Das reicht für 
die SD-Karte oder?

Ulrich,
der LP2951 kann 100 mA. Reicht das? Ich meine irgendwo gelesen zu haben, 
dass einzelne Spitzen auch > 100 mA sein können.

von (Gast) == (Gast)


Lesenswert?

Die Spezifikation (zumindest eine von Kingmax) sagt 2,7..3,6V "Voltage 
range for operation". Stromspitzen/Transienten werden gepuffert, die 
300mA sind hoch angesetzt, also alles in Butter und wird so in der Art 
bei einem Produkt von uns eingesetzt.

Gruß Frank

von Tobias P. (hubertus)


Lesenswert?

Hallo Frank,
super Sache, vielen Dank!
Genau so baue ich es jetzt auch auf (gibt am Schluss dann auch ne LP).

Gruss

von (Gast) == (Gast)


Lesenswert?

Kleiner Nachtrag: Wenn Du Vcc wegschaltest, musst Du auch alle Leitungen 
vom µC zur SD-Card auf Low schalten, weil sonst die Klemmdioden der 
Karte nach Vcc leitend werden...

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

>musst Du auch alle Leitungen
>vom µC zur SD-Card auf Low schalten,

Besser: Eingang tristate.

von Tobias P. (hubertus)


Lesenswert?

Ich hoffe, das macht der Controller von selbst (es gibt extra ein 
Register, wo man der Card den Saft abstellen kann - dann nehme ich mal 
an, dass er auch die Pins tri-stated....)

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Von dem Saftabdrehregister habe ich noch nichts gehört, aber viele 
Karten gehen in den Power-Down, wenn /CS längere Zeit inaktiv ist.

von Axel (Gast)


Lesenswert?

>dann nehme ich mal an, dass er auch die Pins tri-stated.

Ich nehme nicht an, dass man ausgerechnet bei diesen Bausteinen, die ja 
besonders viel in die Hand genommen werden an den Schutzdioden gespart 
hat.

Das Tri-Staten hat also auf diese Strukturen keinen Einfluss und ändert 
nichts am Klemmdiodenproblem.

Gruss
Axel

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Der Host muß tristaten, nicht die Karte.

von Gast (Gast)


Lesenswert?

Auch zu Empfehlen: Direkt an den VCC-Pins gegen GND-Pins des Kartenslots 
eine Kombination aus 10µF und 0,1µF Kerkos anlöten. Die Stromaufnahme 
beim Lesen und Schreiben ist kurzzeitig sehr hoch (Spitzen bis 2-3A ).

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

>Die Stromaufnahme
>beim Lesen und Schreiben ist kurzzeitig sehr hoch (Spitzen bis 2-3A ).

Nu mach mal halblang. Kerkos an der Karte sind sowieso Pflicht, wie an 
jedem anderen CMOS-Bauteil auch.

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.