mikrocontroller.net

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


Autor: Jörn (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Wolfram (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jörn (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Bernd Schmidt (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.