www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Fat16 mit ATmega8


Autor: corvus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Ist es möglich Fat16 lese/schreib zugriff mit
einem ATmega8 der nur 1024B SRAM besitzt zu
realisieren?

alles was ich bisher gefunden habe benötigt
mindestens 1500Byte oder kann nur lesen.

http://www.holger-klabunde.de/avr/avrboard.htm
zum Beispiel.

Gruß
Corvus

Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wuerde ich fuer machbar halten, aber natuerlich extrem ineffizient
weil du nur immer einen 512Byte Block im Ram haben kannst.
Ich koennte mir aber vorstelle denn das du dann nicht mehr viel
Flashrom fuer andere Aufgaben zur Verfuegung hast.

Olaf

Autor: andi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wie wärs mit externem ram? dürfte dann keine probleme mehr bereiten!

mfg andi

Autor: corvus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Den einen 512Byte Block werde ich auf jeden Fall brauchen,
weil ich nur Blockweise Lesen und schreiben kann.
Die Geschwindigkeit ist relativ egal, da es im Großen und
Ganzen ein Datenlogger wird, der über längere Zeit Daten
aufzeichnen sollte. Ich will den ATmega8 oder ATmega16
eigentlich blos wegen seiner geringen Größe verwenden.

Corvus

Autor: Hagen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du musst nicht unbedingt "Blockweise" lesen/schreiben bzw. ein
blockweises Lesen/Schreiben benötigt nicht zwangsläufig einen Block von
zb. 512 Bytes SRAM. Angenommen du weist das im Block Nummer XYZ an
Byteaddresse 123 deine gesuchten Daten liegen dann kannst du die MMC/SD
Karte sehr wohl so ansprechen das die ersten 123 Bytes dieses Blockes
garnicht gespeichert werden müssen. D.h. die Lese Routine einer MMC/SD
Karte kann fast ohne Speicher auskommen. Schwieriger wirds dann aber
beim Schreiben und die FAT Unterstützung ist auch wesentlich eleganter
wenn man genügend Speicher hat. Grundsätzlich kann man aber eine MMC/SD
Karte zb. bei sequientiellen Datenaufkommen und ohne FAT sehr wohl ohne
Speicher betreiben.

Gruß hagen

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

das geht eigentlich recht problemlos. Hab ich schonmal für einen
Datenlogger RS232->CF gemacht. Konnte allerdings nur auf eine bereits
bestehende Datei im root der CF schreiben. Sourcecode könnte ich bei
Interesse liefern.

Matthias

Autor: corvus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also grundsätzlich habe ich sequentielles Datenaufkommen,
allerdings würde ich gerne jeden Tag eine neue Datei auf
der Karte beginnen. (was die Sache einfacher macht ist,
denke ich allerdings die Tatsache das die Daten eigentlich
nicht Fragmentiert sind.)
Prinzipiell ist das Problem ähnlich gelagert wie beim
MidiRekorder unter den Projekten. Allerdings ist das
auch eine sehr rudimentäre implementation, die speziell
präparierte Karten Braucht (das ist eigentlich das was
ich vermeiden will)

Gruß
Corvus

Autor: Thorsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wegen der Größe kannst ja auch nen ATmega128 in MLF-Gehäuse nehmen. Das
Gehäuse ist grad mal 9x9mm groß und du hast 4kB RAM zur Verfügung. Und
extrem teuer ist der Baustein auch nicht.

Gruß
Thorsten

Autor: corvus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also einfacher wird es sicher mit einem ATmega128,
nicht nur wegen der 4kB Ram sondern auch deswegen,
weil es bereits genug Code für ihn gibt, dem man
verwenden kann.

Andererseits hab ich mir das jetzt noch mal überlegt
und bin darauf gekommen das ich eigentlich keinen
512 Block im Speicher Brauche, da meine Daten sowieso
seriell kommen, und ich sie einfach so in den Speicher
schreiben kann, bis der Block voll ist, mir dann einen
neuen leeren suche und dort weiter mache. Es kann hald
dann nur dauern das ich eine Ewigkeit brauche, bis ich
einen Block geschrieben habe. Das dürfte aber kein Problem
machen oder?

Gruß
Corvus

Autor: Hagen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nöö, falls dich der hohe Stromverbrauch der MMC/SD Karte nicht stört.
Sie geht erst in den Powersavemode wenn ein Kommando vollständig
abgearbeitet wurde, sprich ein 512 Bytes Datenblock im Write Kommando
fertig geschrieben wurde (genauergesagt sogar frühstens 8 SPI
Taktzyklen später).
Und laut Standard sollte man mit maximal 500mA Stromverbrauch der
Karten rechnen (was natürlich in der Realität stark überzogen ist).

Gruß Hagen

Autor: Tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Leute

Auch ich plane die Daten meines Logger in eine MMC-Karte auszulagern.
Bis jetzt boten mir die 60KB Flash-Speicher auf meinem MSP430F149
ausreichen Platz für Code (8KB, dank Compilerbeschränkung) und Daten
(Rest).

@Matthias: Könntest du uns den Code für die Speicherung der Daten in
deinem Logger posten oder mir per Mail zusenden? Das kling sehr
interessant und in weiser Voraussicht möchte ich dies gerne RAM-sparend
implementieren.

FG & besten Dank

Tom

Autor: Matthias (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hi

siehe Anhang. Da ist allerdings die ATA-Ansteuerung gleich mit drin
also nichts was man wirklich 1:1 so übernehmen kann.

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.