Forum: Mikrocontroller und Digitale Elektronik Compact Flash - FAT32 - AVR


von Jörn (Gast)


Lesenswert?

Hallo,

Ich möchte eine CF - Karte an einen AVR anschließen, wie das geht habe 
ich mir schon in der Elektor Zeitschrift angeschaut. Doch ich möchte die 
Daten nicht einfach auf die Flash Karte schreiben und lesen sondern das 
FAT32 dateisystem verwenden, Damit der PC auch die Daten auslesen kann.

BSP: Der Mikrocontroller erhält z.B einen Text z.B. "Hallo" über die 
Serielle schnittstelle, nun soll er "Hallo" in einer Textdatei auf der 
CF-Karte so abspeichern, das wenn man die CF-Karte in den PC steckt die 
textdatei so öffnen.

Also quasi das die Dateisysteme von PC und Mikrocontroller gleich sind.

Hat jemand schon mal so etwas gemacht.

PS: Folgende seiten kenne ich schon die mit diesem Thema zu tun haben:

- www.microsoft.com/hwdev/download/hardware/fatgen103.doc
- www.compactflash.org
- www.yampp.de

Vielen Dank schon mal für eure Hilfe!!!!!!!!!

MFG Jörn

von Matthias (Gast)


Lesenswert?

Hi

wenn du Dateien per µC erstellen willst wirds häßlich geht aber. 
Allerdings solltest du dann einen verwenden der eine Kopie der FAT 
(4Byte pro Cluster) plus einen Cluster komplett im RAM halten kann.
Wenn du allerdings nur in eine bestehende Datei hineinschreibst wirds 
einfach. Was willst du also genau machen?

Matthias

von Wolfram (Gast)


Lesenswert?

Ich hab so was schon mal gemacht,kann es aber nicht rausgeben

Hier ein paar Tips zur Implementierung
-nimm FAT16 das geht bis 2GB
-arbeite nicht auf Clustergroesse(Cluster koenne bis 64Kb gross werden)
unterstuetze keine Pfade und keine langen Dateinamen
dann kannst du bei FAT16 die ROOT als array von 0 bis 
hauptverzeichniseintragszahl betrachten(da drin natürlich nur Dateien 
oeffnen).
damit solltest du selbst auf einem Mega8 noch genuegend platz fuer die 
Applikation haben

CU Wolfram

von Jörn (Gast)


Lesenswert?

@Matthias

Im prinzip ein mp3 player, aber ich will nicht nur z.B. den yampp 
nachbasteln sondern auch verstehen wie das funktioniert:

- Dateisysteme (FAT...)
- Flashcard
- MP3 format
- usw.

Ich dacht als erstes mal an son kleines testprog. Dies könnte z.B. die 
Dateinamen aller Dateien die auf der CF Karte sind über die serielle 
schnittstelle an pc senden.

Sehe ich das richtig das die Flashcard so ähnlich wie ne festplatte 
arbeitet?

MFG Jörn

von Bernd Schmidt (Gast)


Lesenswert?

Hallo Jörn,

schau mal hier: http://www.mcselec.com/an_127.htm

Da ist was über FAT16 und so weiter.
Falls dich BASIC interessiert ist BASCOm vieleicht interessant, dort 
sind Routinen für FAT16 Filesystem und Compact-Flash ansteuerung schon 
drin.
Funktioniert bei mir bisher ganz gut.

Gruss
Bernd

von Matthias (Gast)


Lesenswert?

Hi

@Bernd
Er schreibt doch: "...verstehen wie das funktioniert"
Das ist wohl ein Argument gegen eine Fix-Fertig Lösung in Basic.

@Jörn
Also gehts hauptsächlich ums lesen. Das hab ich schonmal implementiert. 
Mein Tipp:
Ließ zuerst die CF-Spec und versuche ob du das IdentifyDevice Kommando 
ausgeführt bekommst. Anschließend probierst du aus ob du Sektoren von 
der CF lesen kannst. Wenn dir das wahlfrei gelingt besorgst du dir die 
FAT32-Spec von Microsoft (in der steht auch FAT16 beschrieben) und 
implementierst eine so Stück für Stück das Dateisystem. Ist am Anfang 
hart bis man mal Sektoren lesen kann bzw. eine Art DIR-Ausgabe bekommt 
aber das Erfolgserlebnis wenn dann die langen Dateinamen auf der 
seriellen Schnittstelle ausgegeben werden ist umso größer.

Eine CF kann so angesprochen werden wie eine IDE-Platte. Deswegen würde 
ich zum testen eine genau solche verwenden. Spart dir das Problem mit 
dem CF-Verbinder.

Matthias

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.