Nicht flüchtiger Speicher an Mega32/162

BlackDevil

Neues Mitglied
09. Mai 2009
282
0
0
Sprachen
Hallo,

Ich bin neu im Forum und hoffe auf eine Antwort. In der Uni wollen wir in einem Projekt einen GPS Tracker bauen. Die Datenspeicherung soll zunächst über SD Karte erfolgen. Soweit auch noch nicht soo das Problem. Mich würde es jetzt aber reizen genügend Speicher in IC Form zur Verfügung zu stellen und per USB die Daten an den Rechner übertragen zu können. Der Mega162 kann 64kByte Addressieren, heist das im Umkehrschulss das ich einfach nur genügend Speicher Parallel packen muss um auf mehrere MB zu kommen? Das hätte nur den Nachteil, das man für 10MB schon einige Speicher ICs braucht ... Und ich kenn bis her nur die SRAM Version, also mit flüchtigem Speicher. Nicht flüchtig wäre da schöner...

Gibts da eine möglichkeit? Ansonsten halt doch SD Karte und die ggf per USB Auslesen
 
Hallo und willkommen im Forum.

Es kommt natürlich auch darauf an, wie schnell der Speicherzugriff sein muss und wieviel Speicher insgesamt benötigt wird aber wenn einige MB ausreichen, würde sich eventuell Dataflash eignen, setze ich selber ein. Aktuell gibt es Dataflash bis 64MBit, also bis 8MB. Schnittstelle ist entweder parallel oder SPI.

Grüße,
Dirk
 
Ich hörte das für 2:40min fahrt 5,1MB reichen. Setzt man zwei von den 8MB Speicherchips ein hätte man das Problem gelöst.

Das GPS Modul kommt per TTL Pegel an den AVR, also über RX und TX. Das wäre UART. Der ist Seriell, also kommt der Chip wo anders ran, seh ich das richtig? Ach, wenn ich mir das Datenblatt anschaue wird der verschaltet wie jedes SRAM am AVR. Wie läuft die Adressierung bei diesem Chip (lese heute Abend das Datenblatt)? Wie teuer?

Mit den Chips klingt das ideal. Dann kann man wärend dem Tracken die Daten dort reinfüttern, ach dem USB Anschluss geht der Controller in eine USB-Subroutine und wartet auf Befehl von der USB Front (Serieller Anschluss, Adaptiert mit FTDI Chip) das er die Daten rüber schieben soll .... sollte machbar sein denke ich.

Danke für die schnelle Antwort

Edit: SPI Schnittstelle, also über SCK SDI und SDO
 
Hallo,
... also kommt der Chip wo anders ran, seh ich das richtig?

das Dataflash hat eine serielle SPI Schnittstelle. Es gibt drei Möglichkeiten von einem AVR über SPI mit dem Dataflash zu kommunizieren:
  1. Du verwendest die SPI-Schnittstelle des AVR, wenn die belegt ist ...
  2. machst du das Protokoll per Software oder
  3. wenn noch ein USART frei ist, aktivierst du den USART als Master SPI (ist genauso schnell wie SPI, unterstützt alle SPI Modes, kann nur nicht als Slave verwendet werden)
Ach, wenn ich mir das Datenblatt anschaue wird der verschaltet wie jedes SRAM am AVR. Wie läuft die Adressierung bei diesem Chip (lese heute Abend das Datenblatt)? Wie teuer?

Naja SRAM hat Daten- und Adressleitungen, das Dataflash ähnelt eher einem seriellen EEPROM. Das Dataflash ist ein SPI-Slave, mehrere können an den SPI-BUS (SCK, MISO, MOSI) angeschlossen werden, adressiert wird über CS\, da kannst du einfach beliebig freie Pins des AVR verwenden.
Preis ist im Vergleich zum Massenspeicher SD-Karte hoch, zumindest wenn man die Speichergröße als Maßstab nimmt, bei kleinen Stückzahlen schätze ich mal so 5 bis 8€ bei 64MBit (Dataflash 64MBit, CASOM Package haben wir demnächst im Shop, such auch mal bei Farnell).

Dirk
 
Die SPI Schnittstelle sollte frei sein. Das GPS Modul hängt wenn ich das richtig sehe am USART (Rxd, Txd), das Display hängt an keinem Bus-Interface und damit wäre Platz für den Speicher an der SPI Schnittstelle. Und selbst wenn ich noch etwas an die SPI Schnittstelle hängen wollte würde das gehen - I2C kann immerhin 112 Knoten. Hiese das im Umkehrschluss das ich 112x 8MB verwalten könnte? Das wäre in der Tat nicht zu verachten.

Wunderbar. Dann kann ich den Speicher in die Projektspezifikation übernehmen als Option anstelle von einer SD Karte.
 
Also wenn du wirklich 112 x 8MB benötigst, würde ich sagen, dass hier Dataflash nicht geeignet ist. Man kann die Speicherbausteine zwar kaskadieren, allerdings besitzen die Speicherbausteine HardwareChipselect, sie werden also nicht über das Protokoll selektiert (kein I2C).

Rechne auch mal grob...

Dataflash: 112 x 8MB = 1GB = 500Euro (zum Basteln interessant :D, marktwirtschaftlich gesehen sicher nicht sinnvoll)
SD-Karte: 1GB = 5Euro (bin gerade nicht über aktuelle Preise informiert)

Weitere wichtige Kriterien sind dann zum Beispiel noch:
  • Stromaufnahme, gerade bei batteriebetriebenen Geräten
  • Platzbedarf auf der Leiterkarte
  • EMV-Eigenschaften
Wenn du "nur" 8MB oder 16MB benötigst, ist Dataflash sicher interessant, ich würde es hier der SD-Karte vorziehen. Wird mehr Speicher benötigt, ist Dataflash (noch) nicht interessant.

Dirk
 
Dankeschön. Ich hab mit den 112 nur gefragt obs Theoretisch möglich ist. Wunderbar, entscheidung steht: Dataflash steht zur Option
 
Hallo,

Und selbst wenn ich noch etwas an die SPI Schnittstelle hängen wollte würde das gehen - I2C kann immerhin 112 Knoten. Hiese das im Umkehrschluss das ich 112x 8MB verwalten könnte? Das wäre in der Tat nicht zu verachten.
Wie Dirk weiter vorn schon gesagt hat ... SPI - und NICHT I2C !! Das sind
zwei vollständig unterschiedliche Sachen. Also nicht verwechseln.

Gruß
Dino
 
Ich glaub ich muss das beides mal implementiert haben bevor ich aufhöre das zu verwechseln :close_tema: Hab mich die letzten Jahre nur Theoretisch mit der Materie befasst weil mir immer ein Board und oder ein USB Programmer gefehlt haben, Programmer gibts nun inzwischen aber mit den Boards bin ich noch höchst unzufrieden und selbst frickeln ist nicht wirtschaftlich. Bin jetzt aber im 2. Semester Embedded Systems (schimpft sich Hardwarenahe Programmierung) - hab damit also schon ein bisschen Praxis gesammelt. Deshalb auch das Projekt, das sich da endlich was tut. Und wenn die Uni oder Kollegen nich mit machen mach ichs daheim xD
 
Ich sehe gerade das es die auch mit 16,32 und 64Mbit gibt. Es wäre doch dann auch möglich so einen einzusetzen anstelle von zweien oder?
 
Hallo,

also 64MBit sind 8MB, gibt es inzwischen schon größere?

Dataflash haben ein bisschen mehr Speicher, als die Bezeichnung vermuten läßt. Der 64MBit Typ zum Beispiel ist in 8192 Pages je 1056 Bytes organisiert, wenn man nachrechnet gibt das etwas mehr als 8MB. Mit 1056 Bytes Pagegröße läßt sich nun nicht so einfach adressieren, da hat man mehr Rechenaufwand. Es gibt nun die Möglichkeit die Pagegröße auf 1024 Bytes zu verringern (nennt sich PowerOfTwo), man verliert zwar etwas Speicher, allerdings ist die Adressierung erheblich einfacher, kommt auch auf die Anwendung drauf an.

Wenn 16MB reichen, mach doch zwei 64MBit parallel.

Dirk
 
Ich bin eine verdammte Schnarchnase! Klar, von dem 64er war hier auch die rede :eek: . Da ich mit dem SPI Bus noch nichts gemacht habe müssen wir uns über die Geschichte mit den Adressen dann noch gedanken machen. Aber Adressmapping an RAMs kann je nach Adressbereich durchaus hässlich werden ...
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)