SD Karte als Medium für Datenlogging

Gast #3946521
Lesenswert?

Hallo, ich möchte bei einer Applikation auf einem xmc ein "Datenlogging" 
einrichten und bin auf der suche nach einer nicht allzu komplizierten 
Lösung auf sd-karten Basis. Der MC hat ja bereits ein Interface für SD, 
bevor ich mich damit beschäftige, will ich aber auch andere 
Möglichkeiten ins Auge fassen. Wie kann ich ein Filesystem zum laufen 
bringen, ohne alles selbst zu entwickeln. Was kann man empfehlen?

Vielen Dank, michael
#3946682
Lesenswert?

Ich glaube ich hab mal mit dieser Dateisystemsimplementierung 
gearbeitet:

http://elm-chan.org/fsw/ff/00index_e.html

Die ist sehr klein, sehr einfach und unterstützt FAT.

Du musst halt Routinen haben, die auf die SD-Karte einen Block lesen bzw 
schreiben.

Danach würde ich Dir dringend empfehlen die Daten als Text zu speichern. 
Das hört sich zwar für manche Leute gleich unglaublich kompliziert und 
aufwändig an, reduziert aber die Gesamtkomplexität deutlich, da Du dann 
die Daten direkt mit Gnuplot oder OpenOffice Calk oder sonst was 
verarbeiten kannst.
Gast #3947185
Lesenswert?

TomA schrieb:
> Hallo Michael,
>
> vielleicht hilft dir das hier weiter:
>
>   "http://elm-chan.org/fsw/ff/00index_p.html";
>
> Habe damit schon mal mit einem AVR Controller, einen MP3-Player
> realisiert.
>
> Im Moment bin ich dabei, auch einen Datenlogger, damit auszustatten. Ist
> allerdings ein 51er Prozessor.
>
> Es gibt das Ganze auch als großes System, den Link findest du auf der
> Seite.
>
> Gruß. Tom

Sieht sehr interessant aus.
Wo lerne ich am besten, wie man einen low level Treiber für eine SD 
Karte erstellt? Mein UC hat einen SD host controller, den man über SPI 
verwenden kann. Ist sowas denn kompliziert?

Danke, michael
Gast #3947705
Lesenswert?

Michael W. schrieb:
> TomA schrieb:
>> Hallo Michael,
>>
>> vielleicht hilft dir das hier weiter:
>>
>>   "http://elm-chan.org/fsw/ff/00index_p.html";
>>
>> Habe damit schon mal mit einem AVR Controller, einen MP3-Player
>> realisiert.
>>
>> Im Moment bin ich dabei, auch einen Datenlogger, damit auszustatten. Ist
>> allerdings ein 51er Prozessor.
>>
>> Es gibt das Ganze auch als großes System, den Link findest du auf der
>> Seite.
>>
>> Gruß. Tom
>
> Sieht sehr interessant aus.
> Wo lerne ich am besten, wie man einen low level Treiber für eine SD
> Karte erstellt? Mein UC hat einen SD host controller, den man über SPI
> verwenden kann. Ist sowas denn kompliziert?
>
> Danke, michael

Für deinen Low-level-Treiber hat Elm Chan auf seiner Webseite Beispiele 
für alle gängigen Controller. Zu empfehlen ist das einfachste 
ATMEGA-Beispiel mit Software SPI, das ist sehr leicht zu portieren. Die 
Examples gibts hier:
http://elm-chan.org/fsw/ff/00index_e.html
("FatFS sample projects..").
Im Endeffekt ist das ganze Low-Level Zeug schon fertig, kümmern musst du 
dich nur noch um die Ports oder ein paar mickrige SPI-Send - Funktionen.

Den Rest macht dann FAT-FS. Der Dateizugriff läuft dann über Funktionen 
wie f_open(), f_close() etc.

Ich habe das mal auf einem PIC32MX470 verwendet, da ging das 
überraschend einfach. Allerdings - dank einem Fehler auf der Platine nur 
mit Software - SPI. Laufen tuts aber problemlos.
Gast #3952827
Lesenswert?

Leider gibt es dort nichts für xmc4500.
Es wird mir daher nicht erspart bleiben, den SD Treiber selbst zu 
schreiben.
Wo lese ich am besten nach, wie man die eingebaute SD/MMC Schnittstelle 
verwendet? Es sind zwar alle Register im RM beschrieben, jedoch setzt 
dieses wohl voraus, dass man den standard kennt. Wie komme ich da am 
besten rein? Oder ist das eine Geheimwissenschaft?
Gast #3953112
Lesenswert?

Die avrfat32 Library ist übersichtlich gemacht. Nur wenige Codezeilen 
haben mit der Hardware zu tun. Das kann man leicht auf andere Controller 
umschreiben.

Ich hab's von ATmega nach Xmega portiert - war ganz easy.
Gast #3953267
Lesenswert?

Der xmc4500 hat eine eigene MMC/SD Einheit. Wenn du sagst, ich könne die 
atmega Firmware portieren, meinst du dann, dass ich diese Einheit 
umgehehe und stattdessen SPI verwende? Ich kann mir die Vorgehensweise 
noch nicht vorstellen. Die Beschreibung der MMC Funktionen an meiner mcu 
ist für mich noch ein "spanisches Dorf" und die Register sind sehr 
spezifisch für den xmc.
Gast #3953312
Lesenswert?

> meinst du dann, dass ich diese Einheit umgehehe und
> stattdessen SPI verwende?

Dem Blockschaltbild des xmc4500 entnehme ich, dass das SD-Karten 
Interface ein SPI Bus ist. Wie die Schnittstelle verwendet wird, musst 
du natürlich selbst herausfinden.

Oder nimmst notfalls einfache I/O Ports und Soft-SPI. Geht auch.

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