SD-Karte lesen für Anfänger

Gast #3154848
Lesenswert?

Hallo,

ich möchte gerne am PC eine Datei erstellen (eine Tabelle bestehend aus 
20 16-Bit-Werten) und auf SD-Karte schreiben. Anschließend soll die 
Karte in meine Schaltung gesteckt werden und der Controller (ein 
AtMega88) soll auf Kommando den Datensatz einlesen und im EEPROM 
abspeichern.

Ich habe nun bereits versucht mich etwas in die Materie einzulesen, 
allerdings habe ich immer noch keine Ahnung wie ich das am besten 
angehen soll.


Was ich nun suche ist eine möglichst einfache Möglichkeit das Ganze zu 
realisieren. Konkret fallen mir dazu erstmal folgende Fragen ein:


Wie erstelle ich die Datei am besten auf dem PC, sodass der Controller 
damit klar kommt?

Muss ich wirklich dieses ganze FAT Dateisystem auf meinem Controller 
implementieren nur um ein paar Zahlen von der Karte zu lesen?


Vielen Dank erstmal!

MfG,
Philipp
Gast #3154855
Lesenswert?

Cardreader schrieb:
> Muss ich wirklich dieses ganze FAT Dateisystem auf meinem Controller
> implementieren nur um ein paar Zahlen von der Karte zu lesen?

Wenn du deine Karte "normal" am PC bearbeiten willst ja. Ich weiß nicht, 
ob es PC Programme gibt die mit unformatierten SD Karten umgehen können 
um z.b. einfach einen Bitstrom drauf zu schieben.
#3154858
Lesenswert?

Nein, das filesystem braucht man nicht unbedingt. Der PC kann allerdings 
nur mit einem Filesystem schreiben. Du kannst einen Treiber fuer den 
Controller schreiben, der das SD als linearen, sektorisierten speicher 
anspricht.

Zentral ist allerdings der Zugriff auf die Sektoren der SD. Das musst 
erst mal drauf haben. Das FAT obendrauf, ist eine Frage der 
Implementaion einer vorgegebenen Struktur.

Eine durchschnittliche IDE hat allerdings Treiber fuer SD schon 
vorhanden. Sei das nun fuer fuer Atmel, PIC oder sonstwas, zu 
irgendeiner Sprache
Gast #3156080
Lesenswert?

Hallo nochmal,

ein extra Programm wollte ich eigentlich nicht installieren um die 
SD-Karte zu beschreiben... das sollte von jedem PC aus funktionieren. 
Dann lieber das FAT-System auf dem Controller! Da würde ja dann eine 
abgespeckte "Read-only" Version ausreichen oder?


Wäre es damit dann möglich den Datensatz einfach als .txt datei auf der 
Karte abzulegen oder welches Dateiformat würde sich da am besten eignen?

In welcher Form liegen die Daten dann im Controller nachdem die Datei 
von der SD-Karte gelesen wurde? Bzw. wie komme ich an die interessanten 
40 Bytes aus der .txt Datei?


Gruß,
Philipp
#3156088
Lesenswert?

Cardreader schrieb:
> Hallo nochmal,
>
> ein extra Programm wollte ich eigentlich nicht installieren um die
> SD-Karte zu beschreiben... das sollte von jedem PC aus funktionieren.
> Dann lieber das FAT-System auf dem Controller! Da würde ja dann eine
> abgespeckte "Read-only" Version ausreichen oder?

Das 'Problem' ist nicht der Code. Das Problem ist der Speicher, den du 
zur Zwischenspeicherung der FAT Tabellen brauchst.
#3156090
Lesenswert?

Cardreader schrieb:

> Wäre es damit dann möglich den Datensatz einfach als .txt datei auf der
> Karte abzulegen

wäre möglich.
Hat den Vorteil, dass du am PC ganz einfach Notepad dafür verwenden 
kannst.

> In welcher Form liegen die Daten dann im Controller nachdem die Datei
> von der SD-Karte gelesen wurde?

so wie du sie einliest.

  Datei auf
  Datensatz lesen
  Datei zu


Vielleicht doch erst mal im C-Buch deines Vertrauens nachlesen, wie 
Dateibearbeitung in C grundsätzlich funktioniert und am PC mal ein paar 
Übungen dazu machen, ehe man dann auf die Spezialitäten in der 
µC-Version umsteigt, die dem Umstand geschuldet sind, dass dort einiges 
nicht ganz so einfach ist, weil man in Resourcennot ist.
Gast #3156095
Lesenswert?

>In welcher Form liegen die Daten dann im Controller nachdem die Datei
>von der SD-Karte gelesen wurde? Bzw. wie komme ich an die interessanten
>40 Bytes aus der .txt Datei?

Alter ich krieg ne Krise wenn ich sowas lese.
Klatsch dir ne UART Verbindung an deine Schaltung
und beam die Daten so rüber. Oder mach es per ISP.

SD Karte ist sowas von gar nichts für dich.
#3156148
Lesenswert?

holger schrieb:
>>In welcher Form liegen die Daten dann im Controller nachdem die Datei
>>von der SD-Karte gelesen wurde? Bzw. wie komme ich an die interessanten
>>40 Bytes aus der .txt Datei?
>
> Alter ich krieg ne Krise wenn ich sowas lese.
> Klatsch dir ne UART Verbindung an deine Schaltung
> und beam die Daten so rüber. Oder mach es per ISP.
>
> SD Karte ist sowas von gar nichts für dich.

Sehe ich ähnlich. Ne RS232 Schnittstelle und dann mit nem RS232toUSB 
wärs in dem Fall wohl doch leichter als das Gezuppel mit FAT...
Gast #3156158
Lesenswert?

Mh ja... ich merke schon... das Ganze ist wohl doch ne Nummer zu hart 
für meine bescheidenen Programmierkenntnisse (wie man vielleicht merkt).

holger schrieb:
> Alter ich krieg ne Krise wenn ich sowas lese.
> Klatsch dir ne UART Verbindung an deine Schaltung
> und beam die Daten so rüber.

Du brauchst ja nicht gleich die Krise zu kriegen, der Thread heist nicht 
umsonst "...für Anfänger".

Genau wie du es schreibst funktioniert die ganze Geschichte zur Zeit ja 
schon... allerdings wäre es praktisch verschiedene Datensätze auf 
SD-Karten in der Hosentasche zu haben die man Zuhause vorbereiten kann 
und nur noch umzustecken braucht.

Aber ich werde mich jetzt nach einer anderen Lösung umsehen! (Evtl. 
direkt mehrere verschiedene Datensätze auf den Controller schieben die 
dann per DIP-Schalter ausgewählt werden können... oder einen kleinen 
"USART-Programmer")


Trotzdem herzlichen Dank an alle Schreiber!

Gruß,
Philipp

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