SD-Card

Gast #23515
Lesenswert?

Hallo Ralf,

Ich bin selber gerade dabei eine MMC (der vorgänger der SD-Card) an 
einen At90S8535 anzubinden. ich hab dazu auch erst ein wenig suchen 
müssen, aber bei Hitach und Sandisk bin ich fündig geworden. Bei Hitachi 
hab ich sehr viele infos wie z.B. die Spezifikationen für den 
MMC-Standard gefunden. Sandisk dagegen hat sehr aktuelle Dokumentationen 
zu ihren aktuellen Produkten sowie sehr viele technische Informationen 
und Referenzen. Hier findet man auch ein Komplettes Beispiel für einen 
Voice-Recorder incl, Code-Beispiel. Ich könnte mir vorstellen, dass hier 
auch infos über die SD-Card zu  finden sind.

Zur zeit habe ich das Problem der CRC-Berechnung (Contious Redundansity 
Check, das ich noch nicht gelöst habe, daher dies für mich noch völliges 
Neuland ist. Ich vermate, dass bei der SD-Card ebenfalls ein 
CRC-Code-Erstellt werden muss, wenn ein Befehl an die SD-Karte abgesetzt 
wird. Wenn du da vielleicht Ahnung hast, wäre ich sehr dankbar für eine 
kleine Info bzw. Hilfestellung, wie ich diese Berechnung in C zu 
programmieren habe.

Wenn dir die Unterlagen über die MMC etwas weiterhelfen, dann kann ich 
dir diese per E-Mail zukommen lassen.

Ich hoffe, dass ich dir wenigstens etwas weiterhelfen konnte.

Gruß Volker
Gast #23517
Lesenswert?

Danke Andreas,

hab's jetzt auch in der Spec gefunden.

Wenn ich das richtig übersetzt habe, ist nach dem initialisieren der MMC 
in den SPI-Modus der CRC ausgeschaltet und kann optional über Command_59 
aktiviert werden.

Dann werd ich den CRC für Command_0 jetzt mal von Hand ausrechnen, wie's 
hier in der Spec. gezeigt ist und werd's gleich mal ausprobieren...

Gruß Volker
Gast #23519
Lesenswert?

Habs gerade getestet und bin nach dem konfigurieren der Karte jetzt 
tatsächlich in den ersten Datenblöcken auf die HEX-Daten gestoßen, die 
ich vor ein paar Tagen über den PC auf die Karte geschrieben habe.

Ich glaub jetzt bin ich schon einmal ein paar Schritte weiter.

Danke für deine Hilfe !!!!

Gruß Volker
Gast #23521
Lesenswert?

Hallo Max,

Die Pegel der Steuersignale dürfen laut den Specifikationen nicht größer 
als die Betriebsspannung der MMC sein. Du mußt also die Pegel anpassen. 
Wenn das gerät Batteriebetrieben seien soll und du enorm viel Wert legst 
auf's Energiesparen, dann lohnt es sich sowiso meist mit dem ganzen 
Kontroller auf 3,3 V Herunterzugehen. In meinem Fall musste ich da dann 
zwar noch mein LCD auf 3.3V umbauen aber das ist überhaupt gar kein 
Problem gewesen. Wenn du allerdings bei 5V für den Mikrokontroller 
bleiben möchtest, dann kannst du die Pegel, wie es z.B. von Sandisk 
vorgeschlagen wird, einfach mit zwei Transistoren Anpassen. Ich häng die 
Seite einfach als PDF an.

Hoffe dir geholfen zu haben. Wenn noch fragen bestehen einfach im Forum, 
Mailen oder so...

Gruß Volker
Angehängte Dateien:
Gast #23524
Lesenswert?

Hallo Volkmar

mit was fuer MMC karten arbeitest du?
Ich habe 2 (16MB und 32MB von Infineon) von der 16Mb Karte kann ich ohne 
weiteres Lesen aber die 32MB Karte macht nciht mal den Init CMD1 (Sie 
meldet dan sowas wie CRC Error und ungueltiges Kommando).
Bei Sandisk gibt es eine Beschreibung zur Implementation im 68HC11 die 
ist z.T. besser als die Spec. hat das Problem aber auch nicht behoben.
Die CRC Berechnung wirst du beim Schreiben brauchen da so der Datenblock 
gesichert ist.In der Spec gibt es ein Bild zur Berechnung den Datenblock 
einfach bitweise durchschieben und
nach jedem Schritt OR an den angegebenen Stellen.
Noch ein Tip loesche auf einer MMC niemals den 0. Sektor dann kommen die 
ueblichen Schreiber damit nicht mehr zurecht da sie
die Groesse aus diesem Sektor bestimmen.

CU Wolfram
Gast #23526
Lesenswert?

Hallo Wolfram,

Ich benutze zur zeit nur eine 32MB karte von Sandisk (Hitachi-Typ 
HB28xxxxMM1). Sie arbeitet noch nach dem MMC-Standard V2.11. Ansonsten 
habe ich leider noch keine weiteren Erfahrungen mit anderen Karten. 
Werde es aber in den nächsten Tagen auch einmal mit einer Anderen Karte 
testen, wenn ich noch eine organisiert bekomme und werde dir dann noch 
einmal berichten.
Gast #23527
Lesenswert?

Hallo Rolf,

Pinkompatibel sind die Karten schon einmal. Es gibt aber gerade bei den 
SD-Karten sogenannte Highspeed-Versionen, die soviel ich weis entweder 
1, 3 oder 7 weitere Datenleitungen besitzen. Sie lassen sich aber 
trotzdem mit der Standardbelegung im 1 Bit SPI-Modus betreiben.

Bei den SD-Karten handelt es sich so viel ich weis mehr oder weniger um 
eine mit einem Security-Kontroller und einem Schlüssel-Speicher 
erweiterte MMC. Dies soll z.B. dazu genutzt werden, dass die Daten auf 
der Karte nur noch von Lesegeräten mit gültigem Schlüssel gelesen werden 
können.
Ich hab mich allerdings noch gar nicht weiter mit SD-Karten beschäftigt, 
sodass ich dir leider nichts genaueres sagen kann.

CU Volker
Gast #23529
Lesenswert?

Aha. Mir ist aufgefallen, dass die Kartenleser für MMC auch für SD und 
umgekehrt sind und dass die SD der Nachfolger der MMC sein soll, aber 
bisher habe ich genaueres nur zur MMC gefunden.
Interessant wäre das zum kopierschützen von Daten, aber weil der 
Microcontroller an die Daten kommen muss, kann man das letztlich immer 
umgehen (ausser die Karte ist niemals lesbar, aber dann ist sie 
unbrauchbar).
Gast #23533
Lesenswert?

Aha, aber damit ist die Karte dann an ein Gerät gebunden bzw. an den 
Schlüssel davon und den muss der Hersteller dann im Einzelfall kennen.
Und weil mit dem richtigen Schlüssel der Inhalt ausgelesen werden kann, 
kann der letztlich immer kopiert werden.

Das ist letztlich so wie der lock der MMC, der die Karte komplett 
sperrt, wenn nicht ein korrekter 128 Bit-Schlüssel angegeben wird; also 
ich sehe da keinen Vorteil der SD.
Gast #23536
Lesenswert?

Hm, also die SD müsste halbwegs sicher sein, wenn der nötige Schlüssel 
nur verschlüsselt übertragen wird (z. B. mit der Karten-Seriennummer 
verschlüsselt) und nur die Hersteller wissen, welche Schlüssel verwendet 
werden, also andere nicht an die Schlüssel rankommen können, und zudem 
von dem Endgerät nicht alle Daten auf einmal ausgelesen werden können.

Aber vermutlich könnte das ebenso geknackt werden wie die Kryptografie 
der X-Box.

@Andreas Schildendorfer:
Downloade mal die Beispiele vom Hersteller und durchsuche die mal nach 
SPI. Die entsprechenden Usergroups müssten auch helfen können.
Gast #23537
Lesenswert?

Naja, ich beschäftige mich nicht weiter mit SD-Karten, daher ich nicht 
auf irgendwelche Datensicherheiten angewiesen bin. Hab nur einen großen, 
einfach anzuschliesenden und billigen Speicher für ein kleines Projekt 
gesucht. Da hatte ich die idee, MMC's zu benutzen, daher einem z.B. die 
16 MB Karten ja überall hinterhergeworfen werden. Beispielsweise mit 
Kameras und so, wo sie aufgrund zu geringer Kapazität meistens durch die 
User durch 64MB, 128MB oder größer audgetauscht werden.
Gast #23538
Lesenswert?

Ja, ich bleibe erstmal bei der MMC, auch weil die SD-Card 2 Pins mehr 
hat und die Geschwindigkeit der MMC völlig ausreicht.
Zudem konnte ich zu der SD-Card fast nichts finden. Sowas wie ein 
Produkt Manual gibt's anscheinend nicht online und ob man die SD-Card so 
wie die MMC im SPI-Modus ansteuern kann, war auch nicht herauszufinden.
Gast #23540
Lesenswert?

Ich habs jetzt geschafft die MMC mit CMD0 und 1 zu starten und das CSD 
und CSI Register auszulesen. Ich krieg da viele Daten die eigentlich mit 
den Spez. der Hersteller übereinstommen sollen!? Aber das einzige das 
ich identifizieren kann ist der Chip-typ: "SDMB-3222" - das steht als 
ASCII im Register aber der Rest lässt sich leider nicht zuordnen.
Es ist auch komisch ?? das ich beim CMD0 und 1 Antworten erhalte 
(InIdleState usw...) aber beim Register-Lese-Befehl krieg ich keine 
Antwort aber dafür die Daten.
Bin ein bisschen verwirrt. Vielleicht habt ihr schon bessere Erfahrungen 
gemacht??

bis dann Andreas
Gast #23545
Lesenswert?

Hi Leute,
endlich mal etwas über SD-Card´s :) . Ich habe folgendes "Problem". Vor 
kurzem habe ich, als Newbee, mit dem MCF5206e angefangen zu arbeiten 
(Studienarbeit). Ich soll an diesen eine SD-Card anbinden, wobei mir der 
Parallelport wegen Debuggen nicht mehr zur verfügung steht. Welche 
Möglichkeiten habe ich sonst noch diese Card anzuschließen?
Einen CPLD zu benutzen wäre eine Möglichkeit, doch von (VHDL) habe ich 
noch weniger Ahnung. ;)
Ist VHDL schwer zu erlernen und wie viel Zeit in etwa braucht man dafür?
Danke.
Gast #23546
Lesenswert?

Von Herstellern wie SanDisk bekommt man ja nicht einmal als 
registrierter Benutzer ein SD-Manual, aber über meinen Chef bekam ich 
heute dies:

SD Memory Card Specifications


                    Part 1
PHYSICAL LAYER SPECIFICATION
                Version 1.0


                 March 2000




       PROCONN
                 SD Group
  Matsushita Electric Industrial Co., Ltd. (MEI)
              SanDisk Corporation
              Toshiba Corporation


                                                    CONFIDENTIAL

L
             SD-Memory Card Specifications / Part 1. Physical Layer 
Specificati





  Revision History

  Date                          Version Changes compared to previous 
issue

  March 22th, 2000              1.0           Base version





DO NOT COPY  Copyright  2000 SD Group (MEI, Toshiba, SanDisk)




Ich darf das aber nicht weitergeben.
Gast #23551
Lesenswert?

Mein Chef will das wegen Datenschutz haben, weil die noch etwas mehr als 
die MMC bieten. Die SDC ist ja aus der MMC entwickelt, 
aufwärtskompatibel und praktisch genau so teuer/billig wie die MMC. 
Außerdem ist die Marktentwicklung, dass die MMC durch die SDC ersetzt 
wird, so dass es die MMC wohl nicht lange geben wird.
Gast #23553
Lesenswert?

Es gibt gewöhnliche SDCs die man z. B. bei Norma oder Conrad kaufen kann 
und Sonderformen wie z. B. eine die genau so dünn ist wie die MMC und 
eine low voltage version, die mit 1,8 V auskommt.
Ob es die Sonderformen überhaupt zu Kaufen gibt weiß ich nicht, aber ich 
habe die noch nie gesehen.
Die gewöhnlichen SDCs arbeiten nur im Bereich 2,7-3,6V.
Gast #23554
Lesenswert?

5V Standards sind nicht in den Aktuellen Specs oder auch in den alten 
Specs enthalten ==> nicht spezifiziert ==> 5V-Cards gibts auch nicht

Alle specs die ich bis jetzt in die Finger bekommen habe sagen, wie auch 
rolf schon sagte, 2,7-3,6V allerdings können auch schon manche karten 
den 1,8V Standard auch wenn er nicht für die "normalen" Karten 
spezifiziert ist. Diese 1,8V Versionen sollten ursprünglich eine eigene 
gehäusevariante bekommen, was allerdings verworfen wurde.
Gast #23556
Lesenswert?

Hall0,
bin gerade auf Eure Beiträge gestossen. Ich will eine SD Kard für nen
Datenlogger benutzen. Ich habe nach langem hin und her eine Karte zum
Reden veranlast. Die erste Karte ging nicht (von Toshiba) jetzt habe
ich eine von SanDisk, die redet mit mir. Ich betreibe sie im SPI Mode,
es gelingt mir CMD0, ACMD41(initialisierung) ,CSD auslesen, aber wenn
ich einen Datenblock auf Sektor 0 schreibe bekomme ich nach dem
Schreibbefehl als Response R1 eine 0 und sende dann 0b11111110 als
Startbyte dann 512 Datenbyte danach 0x00 0x00 als CRC (sollte im SPI ja
nicht von nöten sein??) und erwarte ein DataResponse aber die Karte
antwortet mir nicht. Was kann das sein??
Gast #23558
Lesenswert?

Hi,

ich versuche, meine SD Karte an einem MSP430 über den SPI Bus zu
betreiben. Mit einer MMC Karte war ich erfolgreich, ich will aber auch
meine (Panasonic) SD Karte ansprechen. Mein Problem liegt in der
Initialisierung. Welches Kommando muß ich senden, um die SD Karte im
SPI Modus zu initialisieren? Zur Zeit sende ich CMD0 mit passendem CRC,
dann ACMD41, also CMD55 und dann CMD41. Dabei erhalte ich aber immer
nur 1 als Antwort.
Hat jemand schon mal eine SD Karte angesprochen und kann mir helfen?

Vielen Dank,
Johannes Klein
Gast #1455341
Lesenswert?

Moin,

bin auch gerade am Basteln mit einer SD Card.
Allerdings verstehe ich die Cmd0 von Dir nicht. Wieso ist dort 0x40 an 
erster Stelle? Cmd0 ist doch 0x00, oder? Cmd1 demnach 0x01 usw.
Die mittleren 4 0x00 Einträge sind sicherlich für die 
Attribute/Parameter gedacht, oder? und 0x95 ist der CRC für die gesamte 
übermittelte Zeichenfolge, richtig?
Wäre nett, wenn jemand mal dazu Stellung nehmen könnte, wieso dort die 
0x40 zu Beginn steht und ob ich mit meinen Vermutungen richtig liege. 
Danke erstmal und beste Grüße aus dem Norden der Republik.

Ciao

Philippe

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren