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
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
Wenn die MMC im SPI-Mode angesteuert wird, dann ist kein CRC nötig (nur beim ersten Befehl zur Umstellung in SPI Mode).
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
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
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
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
@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
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
Mal eine Frage: Was kann denn die SD-Card, was die MMC nicht kann und sind die beiden Pin-kompatibel?
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.
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
Hallo Volkmar Woher kennst du so genau den Kartentyp(Hitachi...) und das Protokoll kann man das irgendwie herausbekommen? CU Wolfram
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).
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
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
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.
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
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.
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.
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.
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.
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
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.
http://www.sandisk.com/tech/oem_design/mmc_dc.asp http://www.sandisk.com/download/Product%20Manuals/MMCProdMn_5.1.pdf
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.
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.
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
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.
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.
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
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.
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.
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??
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
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 ...
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?
Man kann ganz einfach eine Buchse für ein 8 1/4"-Floppy-Laufwerk nehmen. Die Karten haben auch ein ChipSelect.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.