Forum: Mikrocontroller und Digitale Elektronik ELM Chan Petit FAT FS SDCard


von Sebastian G. (huehnerhose)


Lesenswert?

Hallo,

ich glaube ich werde gleich beworfen, aber irgendwie bin ich unfähig 
einen Einstieg in die Lib zu finden. Ich möchte mit einem Atmega auf 
SDCard schreiben. Ich habe das vor einiger Zeit mal mit der Lib von 
Ullrich Radig gemacht.

Da mein Projekt recht klein ist und ich keine großen 
Featureanforderungen habe, außer "wenig Programmspeicher", bin ich auf 
die petitFatFS-Lib aufmerksam geworden. Dummerweise verstehe ich z.B. 
schon nicht, wie/wo ich die auf meine PIN-Beschaltung anpasse. Die 
Schritte die zum schreiben nötig sind, würde ich ja noch aus den Sample 
fischen können.
Ich bin auch nicht fähig ein Tutorial zu finden, welches diese Lib 
benutzt, ich finde nur: 
http://codeandlife.com/2012/04/02/simple-fat-and-sd-tutorial-part-1/

Und ich will mich genau nicht mit den Abgründen der SDCard-Ansteuerung 
befassen müssen ;)

Habt ihr zufällig ein Tutorial an der Hand oder könnt mir zumindest die 
PIN-Sache sagen? (Das SPI feststeht ist klar, aber WP, CD sind ja bspw. 
noch offen)

Vielen Dank

von W.S. (Gast)


Lesenswert?

Sebastian Gabbert schrieb:
> Und ich will mich genau nicht mit den Abgründen der SDCard-Ansteuerung
> befassen müssen ;)

Tja, genau DAS mußt du aber tun. Du mußt die Hardware-Handler für die 
allerunterste Ebene (Init, Typ dekodieren, Size etc. bereitstellen, 
Sektor lesen, Sektor schreiben) schreiben und dann kannst du ein 
File-System draufstülpen. Obendrauf mußt du dann noch die Hi-Level 
Sachen schreiben und auf das Ganze draufstülpen, also DIRECTORY-System 
(als Baum wie Linux oder mit Laufwerksbuchstaben wie DOS/Windows), 
FindFirst, FindNext, ChangeDir, und alles sowas.

Tja, wenn man sowas schon mal durchgeübt hat, weiß man, was man an einem 
WinCE hat.

W.S.

von holger (Gast)


Lesenswert?

>Da mein Projekt recht klein ist und ich keine großen
>Featureanforderungen habe, außer "wenig Programmspeicher", bin ich auf
>die petitFatFS-Lib aufmerksam geworden.

Welcher ATMega? Was ist für dich wenig Programmspeicher?

von Sebastian G. (huehnerhose)


Lesenswert?

Danke für die Antworten!

@W.S. Peinlich... ich habe die Übersichtsseite der Lib nicht ordentlich 
gelesen... Da steht ja genau das, was du sagst:
> The low level disk I/O module is not a part of Petit FatFs module and it
> must be provided by user.
Zu den Hi-Level Sachen die du ansprichst, das war mir klar. Ich brauche 
hier nur den schreibenden Zugriff auf eine Datei, daher wäre da nicht 
mehr viel nötig gewesen.

@holger Ich hatte mit einem Atmega8 gerechnet. Und gehofft das da rein 
zu bekommen, da das petitFS von ELM mit um die 4000Byte (max) auskommt, 
hatte ich gedacht da alles reinzubekommen. Der Rest ist eigentlich nur 
UART empfangen... Aber das muss ich jetzt wohl nochmal neu durchdenken.

Bzw. habe ich gerade nochmal mit dem Ansatz "Ich suche was, bei dem ich 
einfach den Hardware SPI benutzen kann ohne selber was schreiben zu 
müssen" gesucht und bin (wo auch sonst) hier fündig geworden:
http://www.mikrocontroller.net/articles/AVR_FAT32
Dann werde ich mal versuchen die zu benutzen, wenn ich da nicht schon 
wieder auf einem Holzweg bin.

Danke für den Stupser in die Richtung
Sebastian

P.S. Meine Faulheit mich in die Sachen einzuarbeiten liegt pur in einem 
Zeitmangel. Ich will das kleine Projekt innerhalb der nächsten 4Wochen 
fertig bekommen. Also keine pure Ignoranz ;)

von Martin T. (mthomas) (Moderator) Benutzerseite


Lesenswert?

ChaN bietet auf der Petit FatFs-Seite eine Beispielsammlung, darin ein 
Beispiel für ATtiny85 und Kartenanbindung per SPI via USI. Weiterhin 
gibt es beim "großen" FatFs eine Beispielsammlung mit IO-Funktionen für 
AVR Hardware-SPI. PetFatFs-Beispielcode nehmen, Quellen zur 
USI-Ansteuerung verwerfen, Code in mmc.c ändern, in dem man beim FatFs 
mmc.c-Beispiel abschreibt.

von Bernhard D. (pc1401)


Lesenswert?

Ich kann Dir ChaNs (Petit)FatFS nur empfehlen. Es ist gut dokumentiert, 
und einfach zu benutzen. Wie schon erwähnt, finden sich das fehlende 
"low level disk I/O module" im Beispielcode, das erspart Dir einiges 
Kopfzerbrechen.

Falls Du damit nicht klarkommst, es gibt bei avrfreaks.net einen 
Diskussionsthread über die Anpassung von ChaNs Monitorprogramm an 
beliebige AVRs.

Gruß,
Bernhard

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.