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
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
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.
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
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.
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?
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.
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.
> 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.