www.mikrocontroller.net

Forum: Mikrocontroller und Elektronik SD-Card


Autor: Ralf Kummetat (Gast)
Datum:

Hi,
für Anbindung einer SD-Card (SPI u. ATmega16) suche ein Datenblatt über
die Software-Ansteuerung, also der Befehle usw. Leider bin ich nirgends
fündig geworden. Für Tips wäre ich sehr dankbar.
Gruß R
Ralf
Autor: Wunsch Volker (Gast)
Datum:

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
Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Wenn die MMC im SPI-Mode angesteuert wird, dann ist kein CRC nötig (nur
beim ersten Befehl zur Umstellung in SPI Mode).
Autor: Wunsch Volker (Gast)
Datum:

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
Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Kannst du dir sparen, cmd0 sieht so aus:
{0x40,0x00,0x00,0x00,0x00,0x95}
Autor: Wunsch Volker (Gast)
Datum:

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
Autor: Max (Gast)
Datum:

Wie funkioniert denn die Anbindung an den SPI-Bus?
Die MMC's können ja maximal mit 3,6 V betrieben werden.
Da kann man ja den 5V Spi Bus nicht einfach dranhängen, oder gelten die
3,6 V nur für die Versorgung und nicht für die SPI Pins?

Danke
Max
Autor: Wunsch Volker (Gast)
Datum:
Angehängte Dateien:

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
Autor: Reiner (Gast)
Datum:

@Max
Du kannst über einen 74HC125 gehen. Der ist 5V tolerant und kann mit 3V3
versogt werden. Hab ich selbst schon mit einem M16C80 gemacht. Zar kann
der M16C "nur" 10MHz auf der SPI, aber ist ja auch ganz nett.

Reiner
Autor: Reiner (Gast)
Datum:

Mir fiel gerade ein es war ein 74LVC125, kein HC125
Reiner
Autor: Wolfram (Gast)
Datum:

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
Autor: nobody0 (Gast)
Datum:

Mal eine Frage: Was kann denn die SD-Card, was die MMC nicht kann und
sind die beiden Pin-kompatibel?
Autor: Volker (Gast)
Datum:

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.
Autor: Volker (Gast)
Datum:

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
Autor: wolfram (Gast)
Datum:

Hallo Volkmar
Woher kennst du so genau den Kartentyp(Hitachi...) und das Protokoll
kann man das irgendwie herausbekommen?

CU Wolfram
Autor: nobody0 (Gast)
Datum:

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).
Autor: Volker (Gast)
Datum:

Hallo Wolfram

Übrigens heise ich Volker und nicht Volkmar. Aber nichts für ungut.

Der Kartentyp steht hinten auf der Karte und die Informationen dazu hab
ich mir dann vom Hitachi-Server gezogen.

Gruß Volker
Autor: Volker (Gast)
Datum:

Hallo Rolf,

Hab da schon einmal eine Seite gehabt, wo das mit der SD-Card und ihren
Anwendungen sowie dem Kopierschutz ganz gut erklärt war. Hoffe, du
kannst gut Englisch.

http://europe.sdcard.com/Consumer/page.asp

Gruß Volker
Autor: Volker (Gast)
Datum:

Achso, hab ich gerade Vergessen.

Die Sparte "What is SD" solltest du dir angucken.
Autor: nobody0 (Gast)
Datum:

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.
Autor: Volker (Gast)
Datum:

Tja, ich auch nicht
Autor: Andreas Schildendorfer (Gast)
Datum:

Hallo!

Hat jemand von euch einen C-Code für den SPI-MASTER zur Ansteurung?
Ich probier auch gerade meine MMC zu interfacen.
Danke im vorhinen!

mfg
Andreas
Autor: nobody0 (Gast)
Datum:

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.
Autor: Volker (Gast)
Datum:

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.
Autor: nobody0 (Gast)
Datum:

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.
Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:
Angehängte Dateien:

Hier mal ein kleines Beispiel in C (mspgcc), das die CSD-Daten ausliest.
Funktioniert soweit, ist aber nicht wirklich fertig da mir leider meine
MMC abgeraucht ist.
Autor: Andreas Schildendorfer (Gast)
Datum:

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
Autor: Marco (Gast)
Datum:

Hallo,

für meine Diplomarbeit möchte ich die MMC oder SD als Massenspeicher für
einen Datenlogger benutzen. Kann mir mal jemand sagen, wo es die
Spezifikation für MMC oder SD gibt. Ich hab bis jetzt nur "summarized"
Versionen gefunden, in denen nichts über die Kommandos aufgeführt ist.
Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Autor: Marco (Gast)
Datum:

Tausend Dank, euer Forum ist besser als jeder Professor
Autor: Volker (Gast)
Datum:

Das kann ich bestätigen, Marco
Autor: Edi (Gast)
Datum:

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.
Autor: nobody0 (Gast)
Datum:

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.
Autor: Sascha Weitkunat (Gast)
Datum:

Autor: nobody0 (Gast)
Datum:

Der Link ist tot (zumind. in den letzten 10 Min.) und ich hatte schon
einige solche "gestorbene" links:


An error occured while loading http://www.sdcard.org:


Timeout on server
Timed out while waiting to connect to www.sdcard.org
Autor: Sascha Weitkunat (Gast)
Datum:
Angehängte Dateien:

Komisch, ich konnte es vorhin noch abrufen - Zur Zeit aber auch nicht.

Ich hatte es noch im Cache, nu häng ichs einfach mal an.
Autor: Blubberblub (Gast)
Datum:

Die neusten Handys besitzen auch SD-cards.....  :-)
Na seit ihr deswegen so neugirig??
Autor: nobody0 (Gast)
Datum:

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.
Autor: Bernd (Gast)
Datum:

Ich hab mal ne Grundlegende Frage zu SD-Karten und zwar ob Sd-Karten mit
verschiedenen Betriebsspannungen gibt. Ich hab mal was gehört das es
auch welche mit 5Volt Betriebsspannung geben soll, wer kann mir darüber
Aufschluß geben
Autor: Rolf Freitag (Gast)
Datum:

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.
Autor: Volker W. (Gast)
Datum:

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.
Autor: Bernd (Gast)
Datum:

Vielen Dank
Autor: Steffen (Gast)
Datum:

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??
Autor: Rolf F. (Gast)
Datum:

Da mußt Du im Standard nachsehen u. generell Wartezyklen einfügen.
Autor: Johannes Klein (Gast)
Datum:

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
Autor: Rolf F. (Gast)
Datum:

Die SDC ist eine MMC mit zusätzlichen Modi; die kann mehr.
Der simple SPI-Modus ohne CRC funktioniert gleich.
Zufälligerweise habe ich für MSP430 Funktionen zum Lesen/Schreiben von
Daten u. Registern mal geschrieben (für
http://www.ergobike.de/de/zube05.html ) und könnte die für ein paar EUR
auch anbieten ...
Autor: leif (Gast)
Datum:

wo gibt's denn dafür [sd,mmc] passende 'laufwerke', also die
kontaktiereinheit? hat reichelt sowas? nixfinden

und bevor ich mich tiefer ins thema stürze: lässt sich per SPI auf
mehrere geräte an den selben strippen zugreifen?
Autor: nobody0 (Gast)
Datum:

Man kann ganz einfach eine Buchse für ein 8 1/4"-Floppy-Laufwerk
nehmen.
Die Karten haben auch ein ChipSelect.
Autor: Johnsn (Gast)
Datum:

Kann es sein, dass die SD-Karte bei einem CRC-Error gar nicht antwortet?
Autor: Philippe (Gast)
Datum:

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

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]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel




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 erkennst du die Nutzungsbedingungen an.

webmaster@mikrocontroller.netImpressumNutzungsbedingungenWerbung auf Mikrocontroller.net