Forum: Mikrocontroller und Digitale Elektronik Probleme mit Hotplug der SD-Card


von Peter S. (cbscpe)


Angehängte Dateien:

Lesenswert?

Ich habe die folgende Schaltung (siehe Anhang) aufgebaut und dafür auch 
eine Platine erstellen lassen. An und für sich funktioniert der Aufbau, 
d.h. ich kann alle SD Karten die ich ausprobiert habe initialisieren und 
kann auch davon lesen. D.h. ich habe eine kleine Routine die mir das 
ROOT Directory von FAT16 oder FAT32 formatierten Karten ausgibt und es 
sieht alles richtig aus.

Nun aber das Problem, wenn ich eine SD-Karte einstecke, dann macht der 
AVR ein reset. Der SD-Kartenhalter ist ein Yamaichi FSP009-2405-0.

Hat jemand eine Idee was ich hier falsch gemacht habe oder wo ich den 
Fehler am geschicktesten eingrenze kann?

von Karl M. (Gast)


Lesenswert?

Hallo,

Pin 10 - was ist mit dem los?

Kennst Du die Atmel AVR042 Application Note?

von Stefan F. (Gast)


Lesenswert?

> Nun aber das Problem, wenn ich eine SD-Karte einstecke, dann
> macht der AVR ein Reset.

Kenne ich. Manche SD Karten ziehen beim Einstecken kurzzeitig einen 
beträchtlichen Strom. Ich hatte mal 50mA für die SD Karte eingeplant, 
und es stellte sich heraus, dass das zu wenig war.

Also Spannungsregler geändert und noch mit 10µF gepuffert - schon 
klappte es. Vielleicht hilft Dir das.

von Karl M. (Gast)


Lesenswert?

Hallo Stefan,

ja, den den Strom Puls dachte ich auch.
Wir wissen nur nicht, ob Vcc "weich" ist.

von Jim M. (turboj)


Lesenswert?

Stefan U. schrieb:
> Kenne ich. Manche SD Karten ziehen beim Einstecken kurzzeitig einen
> beträchtlichen Strom. Ich hatte mal 50mA für die SD Karte eingeplant,
> und es stellte sich heraus, dass das zu wenig war.

Deutlich, denn SD Karten dürfen im SPI Mode regulär 100mA ziehen. Einige 
Karten Typen machen das manchmal auch.

von Jim M. (turboj)


Lesenswert?

Karl M. schrieb:
> ja, den den Strom Puls dachte ich auch.
> Wir wissen nur nicht, ob Vcc "weich" ist.

Ich sehe da nur ein paar 10nF Kondensatoren - da ist VCC schon recht 
extrem "weich".

Außerdem will man die Stromversorgung bei SD Karten schaltbar haben - 
die kennen nämlich keinen sonstigen Reset. Und ich habe schon Karten 
gehabt die sich aufhängen konnten.

von Peter S. (cbscpe)


Lesenswert?

Vielen Herzlichen Dank, genau das wars, ein "Satz" Tantal Elko an 5V und 
3V3 und weg ist das Problem.

Pin 10 hängt an VCC. Der ist beim Symbol in der Library so definiert 
(PWR, VCC) und dann macht Eagle automatisch im BRD eine Verbindung die 
man routen muss. Im Gegensatz zu Pin 30. Ich werd das auf dem Schema 
entsprechend nachdokumentieren. Danke für den Hinweis. Ich mach mir noch 
ein eigenes Symbol, das hier verwendete finde eh nicht so toll.

Wegen Stromversorgung schaltbar, im Prinzip ja, aber eigentlich brauche 
ich das nur während dem Test und der Entwicklung. Im Betrieb darf sollte 
man die Karte lieber nicht ziehen, da hat dann das Betriebssystem auf 
meinem PDP-11 nicht gross Freude daran wenn man ihm die "Harddisk" unter 
den Füssen wegzieht.

: Bearbeitet durch User
von Jim M. (turboj)


Lesenswert?

Peter S. schrieb:
> Im Betrieb darf sollte
> man die Karte lieber nicht ziehen, da hat dann das Betriebssystem auf
> meinem PDP-11 nicht gross Freude daran wenn man ihm die "Harddisk" unter
> den Füssen wegzieht.

Die Karten können sich auch im laufenden Betrieb in einen Zustand 
versetzen wo keine Kommunikation mehr möglich ist. Dann will man die 
Karte zwar schleunigst wechseln, aber ein Reset ist nur mittels 
Power-Cycle möglich.

Ohne einen µC-gesteuerten Power Switch (P-Channel MOSFET in den 3V3) 
muss der Anwender die Karte ab- und wieder anstecken. Mit Power Switch 
kann der µC selbst versuchen der Karte wieder Leben einzuhauchen. Und 
das sind nur 2 Bauteile extra: Ein MOSFET und ein Pullup Widerstand fürs 
Gate.

Apropos Pullups: Die fehlen. Du brauchst so 10k an MISO (nach 3V3!) und 
an die DAT1 und DAT2 Pins. Wegen der 5V am AVR darfst Du nicht den 
internen Pullup an MISO benutzen.

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.