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


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Peter S. (cbscpe)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Pin 10 - was ist mit dem los?

Kennst Du die Atmel AVR042 Application Note?

von Stefan ⛄ F. (stefanus)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht lesenswert
Hallo Stefan,

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

von Jim M. (turboj)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.