Forum: Mikrocontroller und Digitale Elektronik SD-Card ansteuern bzw. Formatieren


von Sieber (Gast)


Lesenswert?

Hi,
wer hat schon Erfahrungen mit der Ansteuerung einer SD-Card bzw. wie
Speicher ich darauf Daten die in einem Standart Card-Reader als Datei
zu lesen sind??

von TecDroiD (Gast)


Lesenswert?

Ich habe neulich was zu mmc gefunden. MMC ist zwar etwas langsamer als
SD, hat aber dafür nur 7 Pins.
Die Speicheraufteilung ist afaik ein FAT12, bzw. FAT16. SD ist übrigens
eine Weiterentwicklung von mmc. SD-Cards haben sind also
MMC-Kompatibel.

Die Pinbelegung von MMC-Karten ist folgende:
0 <- Cable Select (falls man die Karten clustern möchte)
1 <- Data In
2 <- GND
3 <- +3V
4 <- Clock
5 <- GND
6 <- Data out

Wichtig zu sagen ist, das die Geräte für 3V ausgelegt sind, man also
5V nur zum Heizen benutzen sollte, wenn man keine MMC-Karten mehr
braucht.

Die Ansteuerung läuft über einen Befehlssatz, der eigentlich auf
ASCII-Codes basiert.
0x20 ist beispielsweise ein Space, was einen Befehl eindeutig
abschließt.

vielleicht hilft Dir das hier weiter:
http://homepage.ntlworld.com/seanellis/mmcserial.htm

von Sieber (Gast)


Lesenswert?

klingt ja erst mal ganz gut. MMC sollt für mich reichen. Mir ist nur
unklar wie ich eben die Daten in Fileformat auf das Ding bekomme. Muß
sicher vorher formatiert werden, kann ja durch einen Card-Reader
geschehen, und muß bestimmt auch Daten in eine FAT schreiben.? Hat das
Ding dann auch ne FAT?

von TecDroiD (Gast)


Lesenswert?

soo, war nur gestern nicht in der Nähe meiner Aufzeichnungen. Nun halt
Dich mal fest ;)
Die Daten schickst Du einfach seriell über den Data In - Port.

Befehle sind folgende :

0x00 <- NOP (NO Operation)
0x53 <- Sleep - es gibt einen Power-Down-Modus bei den Karten.
0x20 <- Space - Hiermit wird jeder Befehl beendet
0x49 <- Identify Adapter
0x43 <- Identify Card
0x52 <- Read Data. hier gibt man anschließend in 4 Bytes die Anzahl der
zu lesenden Bytes und dann die Adresse auch in 4 Bytes an.
(anschließend das obligatorische Space)
0x57 <- Write Data Hier auch wieder 4Bytes Anzahl, 4 Bytes Adresse,
anschließend DAten und 0x20
0x45 <- Erase. Das Gleiche wie bei Read (hier könnte es sein, dass da
noch ein Parameter fehlt?)
0xbf <- Status Status des Gerätes abfragen.
0x22 <- Debug Einen Debugmodus hat das Ding, ich hab aber keine Ahnung,
wozu..


Der Chip sendet auf jeden Befehl auch eine Antwort:
0x10 <- OK - Anweisung fehlerfrei durchgeführt.
0x11 <- Failed - Anweisung fehlgeschlagen
0x12 <- unknown command
0x13 <- waking from power down
0x14 <- command in progress (please wait)
0x15 <- data follows

Der Chip beendet jede Anweisung mit dem Status OK (oder failed)


Soo. Soviel zu dem, was ich rausgefunden habe.
Wenn ich zufällig die Seite wiederfinde, wo ich die Infos her hab, geb
ich bescheid...

von Sieber (Gast)


Lesenswert?

danke erst mal für Deine Benühungen. Sind die von Dir aufgezeigten
Kommandos für die SD bzw. MMC Karte direkt oder Befehle für den
RS232/SD Adapter? Ich muß die Karte direkt an meinen uC schalten.

von TecDroiD (Gast)


Lesenswert?

Das sind direkt Befehle für die Karte.
vergiß beim Beschalten nicht, dass die Karten nur für 3.3V sind,
ansonsten raucht Dir möglicherweise alles ab :)

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.