SD Karte Rohdaten lesen

Hallo,
ich möchte Rohdaten (8 Bit) auf eine 1GB-SD-Karte am PC schreiben und im Arduino auslesen, ohne Dateisystem. "Ohne Dateisystem" ist für mein Projekt leider notwendig, mit wäre das einfach. Ich habe eine SD-Karte mit dem HdX Hex-Editor manuell beschrieben, sie enthält am Anfang von Sektor 0 markante Test-Daten 0, 1, 2, 3, 4, 5, ... FF. Wenn ich die Karte entferne und erneut mit dem HdX-Editor einlese, dann bekomme ich diese Daten angezeigt, sie sind also offenbar auf der SD-Karte drauf.
Jetzt lese ich die SD-Karte mit einem Arduino-Uno und einem klassischen SD-Kartenleser über SPI ein. Der Kartenleser und die SD-Karte funktionieren, ich habe beide vorab getestet, indem ich den Inhalt einer Test-Datei (FAT32) über den Arduino erfolgreich einlesen konnte.
Ich habe verschiedene Bibliotheken getestet um blockweise Daten auszulesen, leider bekomme ich nicht meine vorher eingegebenen Daten ausgegeben.
Ich habe z. B. aus der Bibliothek SDCore das Beispiel "Dump" unmodifiziert laufen lassen (statt hier Quellcode anzuhängen). Es werden Daten von der SD-Karte ausgegeben, es sind auch Daten ungleich 0 dabei, aber eben nicht meine signifikanten Daten an Adresse 0.

Eingabe HxD:

Ausgabe Serial Monitor (Arduino, Dump-Beispiel aus SDCore):
SD Initialization: SUCCESS

Block 0
EF 7A D0 5B 2 1E 13 53 E2 E8 D8 7 9 91 FE 2 A1 9 CB 15 2E 81...

Meine Erwartung:
01 23 45 67 89 AB CD EF

Ich habe dann die gleichen signifikanten Daten in Sektor 20 auf Adresse 0x2800 geschrieben, ebenfalls ohne Erfolg.
Getestete Bibliotheken: SDFAT, SDCORE.
Das Initialisieren der SD-Karte geht bei jeder Bibliothek ohne Fehlermeldung durch.
Hat irgendwer ne Idee was das Problem sein könnte?
Vielen Dank,
Holger

Im englischen Teil des Forum müssen die Beiträge und Diskussionen in englischer Sprache verfasst werden.
Deswegen wurde diese Diskussion in den deutschen Teil des Forums verschoben.

mfg ein Moderator.

Den HdX - Editor kenne ich nicht. Weiss auch nicht, ob man in Windows direkt Zugriff auf physikalische Sektoren erlaubt bekommt.

Machs doch umgekehrt, schau dir das SDCore Beispiel (oder ähnliche) an, zerstöre die Formatierung deiner Karte und lies den modifizierten Sektor 0 später wieder zurück.

Haben SD Karten selbst nicht ein Betriebssystem-unabhängiges Wear Leveling ? Physikalische Sektoren im eigentlichen Sinn gäbe es dann gar nicht.

Die Grundvoraussetzung ohne Dateisystem ist dein eigentliches Problem.

haben SD-Karten (zumindest aktuelle).

Gruß Tommy

evtl. interessanter Lesestoff:

Hallo, vielen Dank für eure Posts und das interessante PDF. Ich probiere die Ideen mal aus.

Hallo Michael, ich kann tatsächlich mit den Schreib-Befehlen der Bibliothek Sd2Card blockweise Nutzdaten auf die SD-Karte schreiben und anschließend die gleichen Daten richtig auslesen. Das Problem scheint zu sein, dass ich unter Windows die SD-Karte nicht schreiben kann, obwohl mir das Tool HdX etwas anderes vormacht. Schätze hier muss ich selbst weiterkommen, das ist ja kein Arduino-Thema. Vielen Dank für deinen Tip, der hat sehr geholfen.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.