mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik SiLabs C8051F340 und microSD Karte beschreiben


Autor: Michelle Konzack (Firma: electronica@tdnet) (michellekonzack) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich muß in einem Langzeit-Meßdatenerfassungssystem, welches an mich erst 
nach defekt der LiPoly Batterien zurückkommt, die Daten der LiPoly 
Batterien erfassen.

Das sind pro Minute 64 Bytes oder 320 MByte in 10 Jahren

Nun will ich diese Daten alle 8 Minuten in einem einzigen Block von 512 
Bytes schreiben.

Frage:

Wieviele Dateien kann man eigentlich in eine FAT16 Tabelle schreiben?

Ich meine, bei mir währen das 65535 Dateien wenn ich NUR jede Minute 
einmal die Daten erfasse und eigentlich war von mir geplant, den 
intervall auf 15 sekunden zu reduzieren, womit alle 2 Minuten eine Datei 
geschrieben werden muß.

Hat jemand erfahrung damit?

Vor allem muß die microSD von einem PC mit standard software gelesen 
werden können.

Grüße
Michelle

Autor: MarioT (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
http://de.wikipedia.org/wiki/File_Allocation_Table
Es können 216 − 12 = 65.524 Cluster angesprochen werden (12 Cluster 
reserviert FAT16, deshalb nicht 65.536).
Man muß sowieso immer einen Block komplett schreiben der normalerweise 
512Byte groß ist. Die Datei muß aber nicht "geschlossen" werden. Es kann 
auch für jedes "Jahr" oder man schreibt nur eine große Datei. Wenn man 
sich das ganze FAT auf dem µC sparen will, legt man auf dem PC diese 
Datei an mit der größe "also alles voll ' '(Leerzeichen)wie die Datei 
werden könnte. wenn man sie am PC ausliest ist da die Datei mit den 
Daten und der Rest hat halt Leerzeichen

Autor: Michelle Konzack (Firma: electronica@tdnet) (michellekonzack) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das mit der einzelnen Datei habe ich versucht, aber die kann unter 
WinDOS nicht gelesen werden.

Sprich, ich habe einfachin der FAT eine Datei angelegt und dann vo 
bezeichtneten Block an weggeschrieben...

Vor allem nicht vergessen die lezten zwei Bytes des 512 Byte Blocks mit 
dem Folgesektor zu versehen.

Weder Windows noch Linux könnend das lesen

Deswegen dachte ich, das ich die Sourcen aus der AppNote 282 (SiLabs) 
nehme, aber das bedeutet erst mal, das ich das ganze USB Zeugs daraus 
entfernen muß.

Das schöne an diesem "Referenz Design" ist, das es beschreibt wie Du 
eine SD, MMC und CF-Card an einen 8051 im Mass-Storage Modus ansprichst.

Ich werde mal bei SiLabs nachfragen, ob die ne RAW-API zu FAT haben.

Grüße
Michelle

Autor: R. W. (quakeman)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Michelle Konzack schrieb:
> Das mit der einzelnen Datei habe ich versucht, aber die kann unter
> WinDOS nicht gelesen werden.
>
> Sprich, ich habe einfachin der FAT eine Datei angelegt und dann vo
> bezeichtneten Block an weggeschrieben...

Das muß aber gehen, da ich das selber auch schon so benutzt habe. Die 
Datei muss auf jeden Fall defragmentiert sein, damit das funktioniert. 
Dann den Start- und Endblock aus dem Dateieintrag raussuchen und als 
Grenzen zum Schreiben benutzen. Einfach die Karte unter Windows 
formatieren und eine leere Textdatei mit Größe X dort anlegen lassen, 
welche später für deine Daten benutzt werden soll.

> Vor allem nicht vergessen die lezten zwei Bytes des 512 Byte Blocks mit
> dem Folgesektor zu versehen.

Das ist mir jetzt nicht klar. Wenn du den obigen Ansatz mit einer 
einzelnen großen Datei benutzt, dann brauchst du, abgesehen von deinen 
Daten, nichts besonderes am Ende der Blöcke zu schreiben. Sämtliche 
Blöcke innerhalb der Grenzen sind ausschließlich für deine Daten 
verfügbar. Diese Datei kann man anschließend am PC problemlos auslesen 
und analysieren. Du hast auf deinem Controller dann nichts mit dem FAT 
Dateisystem am Hut. Du brauchst eben nur den Start- und Endblock und 
schreibst dort die Rohdaten direkt rein.

Ciao,
     Rainer

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.