Forum: Compiler & IDEs Ext. Speicher


von Benno Müller (Gast)


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

von Sascha Weitkunat (Gast)


Lesenswert?

MMCs - MultiMediaCards

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

Bye

von BAB (Gast)


Lesenswert?

!! ABER SAU LANGSAM!!

von Benno Müller (Gast)


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.

von Sascha Weitkunat (Gast)


Angehängte Dateien:

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.

von Benno Müller (Gast)


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??

von Benno Müller (Gast)


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?

von Peter D. (peda)


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

von Sascha Weitkunat (Gast)


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.

von Benno Müller (Gast)


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 ...

von Benno Müller (Gast)


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.

von Benno Müller (Gast)


Lesenswert?

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

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

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

von Peter D. (peda)


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

von Benno Müller (Gast)


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?

von Benno Müller (Gast)


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.

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.