www.mikrocontroller.net

Forum: Compiler & IDEs Ext. Speicher


Autor: Benno Müller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi!

Ich brauch an meinem ATmega8 externen Speicher um GPS-Daten zu speichern 
und wieder auszulesen. Was würdet ihr empfehlen: Externen EEPROM, 
Flash-Speicher, SRAM, DRAM, ... ?! Die Bedingung ist nur das er 
ausreichend groß sein muss (mind. 500kB, besser 1MB und größer), das man 
ihn relativ einfach in C Programmieren kann (Codeschnipsel wären zur 
Ansicht ganz gut) und das die Verfügbarkeit jetzt und auch in Zukunft 
geregelt ist.

Was für Typen könnt ihr mir empfehlen?  (Ggf. wo bekommt man diese?)

MfG
Benno

Autor: Sascha Weitkunat (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
MMCs - MultiMediaCards

Zukunft gesichert, ausreichend Speicher, per SPI ansteuerbar. Einfach 
mal im Forum suchen, hatten wir schon.

Bye

Autor: BAB (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
!! ABER SAU LANGSAM!!

Autor: Benno Müller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke ... bin eben auch durch einen anderen Tipp auf MMCs gestoßen. Wie 
beschreib ich die Dinger denn? Seriell (SPI ?!)

@BAB - Geschwindigkeit spielt bei mir keine so großartige Rolle.

Autor: Sascha Weitkunat (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
SPI ist eine Standardschnittstelle, Serial Peripheral Interface...

Es wird von vielen Mikrocontroller unterstützt, so auch von den AVRs. Im 
Klartext heisst das, du musst nur ein paar Zahlen in bestimmte Register 
schreiben und die MMC gehorcht dir.
Für GPS-Daten reicht die Geschwindigkeit massig aus.

Meine gesammelten Werke zum Thema MMCs sind im Anhang.

P.S.: Kleiner Tipp, bei eBay verkauft jemand 16MB MMCs von SanDisk für 
nen Appel und nen Ei.

Autor: Benno Müller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn ich ne MMC verwende, was brauch ich für ne Halterung?

Zum Thema SPI: Standardschnittstelle hört sich ja gut an, aber brauchen 
MMC kein Dateisystem? Ich weiß das zumindest der Palm Daten filebasiert 
auf der MMC ablegt und IMHO diverse Kameras auch? Brauche ich also auch 
ein Filesystem??

Autor: Benno Müller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was haltet ihr eigentlich - um mal eine Alternative zu nennen - von 
Atmels Dataflash? Wie schätzt ihr die Verfügbarkeit ein. Der einzigste 
Bezugsweg den ich bisher gefunden hab, war über einen amerikanischen 
Distributor, finde ich persönlich nicht so gut, aber dafür gibts 
immerhin ne schöne C-Library (zu finden auf AVRfreaks unter 
UserProjekts). Gibts bezüglich SPI eine?

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich benutze am liebsten serielle EEPROMS, z.B. AT24C512 (64kB).
Die Ansteuerung ist einfach, I2C-Beispielprogramme findet man 
haufenweise im WWW, egal ob C oder Assembler, ob 8051 oder AVR.

Ich denke mal, die GPS-Daten sind Text, den man bequem in Zahlen 
umwandeln und somit wesentlich kompakter abspeichern kann.

Durch Abspeicherung der Differenz von aufeinanderfolgende Positionen ist 
eine weitere einfache Komprimierung möglich.

Dann sollte ein AT24C512 reichen.


Peter

Autor: Sascha Weitkunat (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Atmels Dataflash? Meinst du diese riesigen Flashsspeicher?
Viel einfacher ist die Ansteuerung allerdings auch nicht. Schau dir mal 
die PDF-Files im Anhang meines vorherigen Postes an. Bevor du dich 
weiter mit dem Thema auseinandersetzt, währe es sinnvoller sich mit den 
Basics der AVRs auseinanderzusetzen! SPI sollte dir schon ein Begriff 
sein... Such nur weiter auf AVRFreaks.net, du wirst auch diesbezüglich 
fündig.

Wenn du einen Datensatz mit fester Größe (so wirds wahrscheinlich sein) 
speichern willst, ist ein Dateisystem überflüssig.

P.S.: Die Flashs dürften auch relativ teuer sein.

Autor: Benno Müller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Ich denke mal, die GPS-Daten sind Text, den man bequem in
> Zahlen umwandeln und somit wesentlich kompakter abspeichern
> kann.
>
> Durch Abspeicherung der Differenz von aufeinanderfolgende
> Positionen ist eine weitere einfache Komprimierung möglich.

Genau dies tue ich auch. Ich zerpflücke im Controller den GPS-String 
nach den Koordinaten (LATITUDE, LONGITUDE, RICHTUNG) und halt Datum und 
Zeit. Diese fasse ich in grade mal 3 Longs zusammen, sprich 3x4Byte = 12 
Byte pro GPS-Koordinate. Sollte eine GPS-Koordinate die selbe sein, wie 
beim letzten Erfassen, so wird diese auch nicht erfasst. Ich denke 
effizienter gehts kaum ...

Autor: Benno Müller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Atmels Dataflash? Meinst du diese riesigen Flashsspeicher?

Genau die!

> Viel einfacher ist die Ansteuerung allerdings auch nicht.

Es geht so ... hab nun auch ne Asm-Code für die MMCs gesehen. Denke den 
werde ich auch verwenden.

> Wenn du einen Datensatz mit fester Größe (so wirds
> wahrscheinlich sein) speichern willst, ist ein Dateisystem
> überflüssig.

Jain, zwar sind meine GPS-Koordinaten immer konstant 12 Bytes lang, aber 
in unregelmäßigen Abständen kommen nochmal zusätzliche Daten von ca. 30 
Byte

> P.S.: Die Flashs dürften auch relativ teuer sein.

Stimmt: 512 kB für 7,50$, 8MB für knapp 50$ bei digikey.

Autor: Benno Müller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wo finde ich denn Gehäuse bzw. Sockel für die MMCs?

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zum Experimentieren kann man so einen Slotstecker nehmen wie er z.B. für 
ISA-Karten verwendet wird.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Benno

"Diese fasse ich in grade mal 3 Longs zusammen, sprich 3x4Byte = 12 Byte 
pro GPS-Koordinate. Sollte eine GPS-Koordinate die selbe sein, wie beim 
letzten Erfassen, so wird diese auch nicht erfasst. Ich denke 
effizienter gehts kaum ..."

Wie gesagt, wenn man die Differenz zum vorheriegen Wert bildet, sollte 
es noch wesentlich kürzer werden als 12 Byte.

Man müßte nur abschätzen, wie stark sich die Werte typischer Weise 
ändern und dann entsprechend viele Bits nehmen.
Könnte mir vorstellen, daß man so auf 1..2Byte runter kommen kann.


Peter

Autor: Benno Müller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was muss ich denn Spannungsmäßig beachten? Ich hab nen 5V Atmel mega8. 
3,3V Versorgungsspannung auf den MMC zu legen sollte dabei das kleinere 
Problem sein, aber was muss ich bei den Signalleitungen alles 
dazwischenschalten?

Autor: Benno Müller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Wie gesagt, wenn man die Differenz zum vorheriegen
> Wert bildet, sollte es noch wesentlich kürzer werden > als 12 Byte.
>
> Man müßte nur abschätzen, wie stark sich die Werte
> typischer Weise ändern und dann entsprechend viele
> Bits nehmen.
> Könnte mir vorstellen, daß man so auf 1..2Byte
> runter kommen kann.

Ich werds für die Zukunft andenken. Im Moment gibts wichtigere Dinge für 
mich zu tun, da das ja alles schon läuft.

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.