www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik SD-Karte am PC auslesen


Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

eine kurze Frage an euch.

Fast alle SD-Karten-Projekte, die ich gefunden habe, basieren auf einem 
Beschreiben der Sektoren/Blöcke über SPI -> also ganz normal.

Wenn man das so macht, ohne ein Dateisystem (z.B. FAT16) zu erzeugen, 
kann man dann den Inhalt der Karte irgendwie am PC auslesen ? Ich meine 
erkennt Windows den Inhalt der Karte ?

Gibt es dafür irgendwelche Programme zum Auslesen ?

Ich frage nur deshalb, weil ich es für ein Projekt brauche.

Wenn das nähmlich nicht geht, dann müsste ich die SD-Karte erstmal FAT16 
formtieren, um direkt Dateien erzeugen zu können. Windows dürfte diese 
dann problemlos erkennen, oder ?
Das wäre ein erheblich höherer Aufwand, als ohne Dateisystem.

MfG
Thomas

Autor: Thomas Finke (thomas-hn) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit einem Hex-Editor wie zum Beispiel WinHex dürfte das auslesen 
funktionieren.

Autor: Ralf Schwarz (spacedog) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es gibt da so Leute, welche FAT auf nem Atmel implementiert haben, z. 
B.:

  * http://www.robs-projects.com/filelib.html

Damit kannst du dann SD-Karten so beschreiben, dass du das ganze auf nem 
PC auch wieder wie gewohnt auslesen kannst. Habs aber selber noch nie 
ausprobiert.

Autor: phl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kopieren über die Devicedatei also
cp /dev/usbdevice dateiname
So sichert man ja auch images von Festplatten und DVDs. Ist unabhängig 
vom Dateisystem.

Eventuell gehts auch mittels dd.

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich kann meine SD-Karte mit dem µC auslesen und beschreiben.

Wenn ich aber nun den Inhalt an einem Windows Rechner auslesen will, 
dann kommt immer eine Meldung, dass das Dateisystem unbekannt ist und 
das ich den Datenträger formatieren soll.

Wie habt Ihr das gemeint mit dem Hexeditor ?

Oder soll ich die SD-Karte erst in Windows formatieren ?

Danke !

Autor: Sven P. (haku) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thomas wrote:
> Oder soll ich die SD-Karte erst in Windows formatieren ?
NEIN, dann macht Windoof sie ja platt.

Unter Windoof ist das absolute Kacke, weil Windoof unbedingt alles 
selbst in die Hand nimmt. Sprich: kein Dateisystem --> "kaputt" --> 
neuformatieren.

Wenn du Zugriff auf ne Linuxkiste hast, mach
# dd if=/dev/sd.. of=inhalt_der_karte_als_rohdaten
und fertig. Geht auch mit nem bootbaren Linux (Knoppix und Konsorten).

Für Windoof gabs mal RAWRITE, damals wars nur für Disketten, obs sich 
geändert hat, weiß ich nicht. Les selbst: 
http://www.fdos.org/ripcord/rawrite/

Autor: rotzfrech (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
http://mh-nexus.de/hxd/
HxD ist ein Hexeditor und ein Diskeditor. Mit dem geht das. Du kannst 
Laufwerke im Rohformat öffnen, ohne dass das Dateisystem eine Rolle 
spielt.

Man kann unter Windows aber auch direkt drauf zugreifen. Genau weiss ich 
nicht mehr, wie es ging ab so ähnlich:

Um in C aus einer Datei zu lesen gibt es ja die fopen()... und zum lesen 
eine andere Funktion. Ein Zeiger zeigt dabei auf die aktuelle Stelle in 
der Datei. Und wenn man diesen Zeiger/Handle auf 0 setzt, dann liesst 
man direkt das erste Byte des Laufwerkes.

Autor: Sven P. (haku) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
rotzfrech wrote:
> Um in C aus einer Datei zu lesen gibt es ja die fopen()... und zum lesen
> eine andere Funktion. Ein Zeiger zeigt dabei auf die aktuelle Stelle in
> der Datei. Und wenn man diesen Zeiger/Handle auf 0 setzt, dann liesst
> man direkt das erste Byte des Laufwerkes.
Was das Handle angeht: Falsch, "0" ist NULL und wird von fopen() 
zurückgeliefert, wenn was schiefgeht (Fehler).
Was den "Zeiger" angeht: Das is kein Zeiger, sondern einfach eine ganze 
Zahl. "0" bedeutet: Erstes Zeichen der Datei.

Unter Linux kann man ohne Weiteres mit "fopen" die Gerätedatei aufmachen 
und Rohdaten lesen -- kein Thema. Nur Windows hat nunmal keine 
Geräte-*Dateien*.

Autor: rotzfrech (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich sagte ja auch "so ähnlich"

Autor: doing (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Forum,

weiß zufällig jemand, ob man einen einfachen CardReader "schlachten" 
kann, um daraus den MMC/SD-Karten Slot an einem AVR über SPI zu 
betreiben?
Die Slots kosten neu bei Reichelt zwischen 8€ und 14€. Einfache 
CardReader bekommt man teilweise billiger...

Danke.

Autor: Pete K. (pete77)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei CSD gibt es die Slots ab 2,99€.

Du kannst natürlich einen Slot auslöten, sollte funktionieren.

Autor: Jadeclaw Dinosaur (jadeclaw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Doing: Geht billiger und einfacher: http://www.it-wns.de/
Hat die Dinger in mehreren Versionen.

Gruß
Jadeclaw.

Autor: doing (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Super, danke.
Hm, ich scheine blind zu sein. Warum steht im Datenblatt keine 
Pinbelegung?

Autor: Kai G. (runtimeterror)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe letzte Woche einen SMD-SD/MMC-Slot aus einem alten Kartenleser auf 
Lochraster transplantiert, falls es das ist, was du meinst.

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Winhex funktioniert top !
Ich kann ohne Dateisystem die Werte auslesen !

PS:
Im Datenblatt eines SD-Card Connectors steht keine Pinbelegung, da jede 
SD-Karte die selbe hat, also sind auch alle Pads normiert, bis auf CARD 
PRESENT und WRITE PROTECT. Diese werden je nach Hersteller 
unterschiedlich ausgeführt.

Bei Schuricht gibt es exzellente SD-Card Connectors für ca. 1,50€ von 3M 
!

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Nur Windows hat nunmal keine Geräte-*Dateien*.

Im Prinzip doch, denn mit der Win32-API-Funktion CreateFile kann man 
sowohl physikalische als auch logische Laufwerke ansprechen; als 
Dateiname ist dann entsprechend

  \\.\PhysicalDrive0

bzw.

  \\.\A:

zu verwenden. Schreib- und Lesezugriffe sollten dann nur noch auf 
Sektorgrenzen (also in 512-Byte-Schritten) ausgerichtet durchgeführt 
werden.

Ob die C-Standard-Funktion fopen diese "speziellen" Dateinamen 
transparent an die darunterliegende Win32-API durchreicht, wird wohl vom 
verwendeten Compiler abhängen.

Details sind in der Dokumentation enthalten
http://msdn.microsoft.com/en-us/library/aa363858(VS.85).aspx

Autor: T.R. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,
ich nutze um "low-level" also blockweise auf eine SD zuzugreifen das 
Tool "DiskExplorer for Fat". Probiers doch mal aus!

http://www.runtime.org/

Gruss

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Auch ein sehr gutes Tool !

Danke dir !

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
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
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 bestätigst du, die Nutzungsbedingungen anzuerkennen.