Hi, für ein Studienprojekt möchte ich an einem Microcontroller (evt. Atmega128, vielleicht sogar Arm7 (Philips LPC2124)) vergleichsweise viel Ram und Eeprom anschließen: -Ram 512 KByte -Eeprom (oder auch Flash) 2-4 MByte Nun habe ich dem Forum hier entnommen, dass die I2C Eeproms wohl nur bis 64KByte (16bit Adr.) reichen. Also stellt sich mir die Frage: Was für Chips kann ich nehmen? Gibt es da eine (vertretbare) Lösung mit ausreichend großen (und nicht zu vielen einzelnen) Speicherchips? Ich habe leider keinen Überblick, was es in dieser Hinsischt an Speicherchips gibt und wäre für Hinweise von Euch sehr dankbar. Gruß, Thomas Als Alternative hatte ich überlegt, den Speicher evt. direkt auf ne CF Karte anstatt eines Eeproms auszulagern. Allerdings weiß ich nicht, ob der schnell genug wäre. Ca. 60 kbyte/s lesend wären schon nötig, die Schreibgeschwindigkeit ist weniger wichtig (10 kbyte/s reichen) und Dateisystem brauch ich auch nicht. Falls CF zu langsam ist, so könnte man evt. auch das Ram deutlich größer machen und die notwendigen Daten aus der CF Karte in ein 2-4 MByte Ram laden. Ich würde jedoch die Lösung mit geeigneten Chips vorziehen.
Nimm einfach MMC-Flash-Karten. Werden per I2C abgesprochen, gibt es schon viele Projekte mit und kosten pro MB weniger als irgendwelche Spezialspeicherchips. (128MByte für 15,-) (<= 16MB für quasi umsonst bei ebay) MMC-Halter gibt es z.B. bei farnell, ich glaube bei segor auch. Bei reichelt leider noch nicht. jörn
Ach ja zum RAM: an den mega128 kannst du "nur" bis zu 64kByte extern anbinden. Mit einem PLD natürlich aus sehr viel mehr - wäre dann aber langsamer. ARM7 kann alles, kostet aber auch und du kannst auf weniger freien Code zurückgreifen. jörn
Hi, wow hatte nicht damit gerechnet, dass um diese Uhrzeit jemand antwortet :) Also zu der MMC Karte: Da der Controller eh fürs Backup ne CF Karte mit Dateisystem haben wird, ist es wahrscheinlich einfacher nen zweiten Slot für die internen Daten mit anzuschließen (umschalten per CS und fertig). Dann brauch ich den Code auch nur einmal zu schreiben. Macht das einen großen Unterschied in der Geschwindigkeit zu MMC Karten? Gruß, Thomas PS: Der LPC2124 kostet um die 12 Euro - ist also nicht wirklich mehr als der Atmega.
Hi @Jörn MMC wird über SPI und nicht I2C angesprochen. @Breti Wie lange braucht denn eine Digicam um ein 2MByte Bild auf eine CF zu schieben? 1s? Du siehst die Transferrate ist kein Problem. Und warum zwei CF? Eine CF mit einer Partition die nicht die ganze CF belegt. Dann kannst du den partitionierten Bereich für dein Backup mit FS nutzen und den unpartitionierten als Datengrab. Wie willst du den externen RAM nutzen? Wenn er von C aus als Variablenspeicher genutzt werden soll kommst du um einen Controller mit externem Speicherinterface mit 512kB Addressraum nicht herum. M16C dürfte das wa sein. ARM wird mit externem Speicherinterface immer gleich häßlich groß und der AVR bietet das nicht. Wenn etwas Handarbeit erlaubt ist (Bankumschaltung per Portleitung und dann Zugriff per Pointer bzw. []) reicht auch ein Mega128. Matthias
Hallo Breti, schau dir doch mal den Atmel Butterfly an. Auf diesem Board ist ein (relativ) großer Flashspeicher (gibt es soweit ich weis als 4 und 16 Mbit Version) Gruß Christoph
hmm, wenn es nicht wirklich um geschwindigkeit gehen würde, dann würde ich den i2c kanal ausbauen, ala KoF ;-) ich steuere so ein 4mb großes sram an! ich benute einfach pcf8574's um ports zu erzeugen und habe daran ein sram (kann man ja auch nach belieben eeprom, flash,... anbinden) angeklemmt. man sollte nur tunlichst vermeiden dram's zu verwenden!!! refreshs & lese/schreibevorgange sind busbedingt je nach geschwindigkeit unmöglich, daher benutze ich srams. oder man muß einen dram-controller via i2c-portexpander ansteuern ;-)
Du kannst in der Tat einen zweiten CF-Slot verwenden, dann sparst Du 'ne Menge Entwicklungsaufwand. Alternativ könntest Du eine Ansteuerung für SM-/xD-Karten entwickeln, das Interface von beiden entspricht dem der (beispielsweise) von Samsung hergestellten größeren Flash-ROMs. Die sind in Blöcken à 512 Byte programmierbar. Das Interface besteht aus 8 Datenleitungen und einigen Steuerleitungen - unabhängig von der Größe des anzusteuernden Bausteines. SM-Karten (SmartMedia) wurden bis 128 MByte Größe hergestellt, bei xD-Karten (die wie gesagt exakt das gleiche in anderer Verpackung sind) liegt das Ende der Spezifikation bei 8 GByte. Ich habe selbst schon einige 64 MByte-Flash-ROM-Chips (aus einer defekten CF-Karte) mit einem AVR angesteuert, das ist nicht sonderlich schwer. Ein wesentlicher Unterschied von solchen Lösungen zum von Dir gewünschten EEPROM ist allerdings die Tatsache, daß die Dinger nicht byteweise programmiert werden können, sondern immer nur in ganzen Blöcken - aber das ist bei CF nicht anders.
Hi, @Rufus: also 512b Blöcke sind kein Problem, da meine Daten wahrscheinlich eh in 1,5k Blöcken vorliegen werden. Einige dieser Blöcke liegen dann immer im Ram und werden bei Bedarf in den Flash Speicher kopiert. @Chris (Butterfly): Mach ich, 16mbit wär schon ok. @Jörn (MMC Lösung): Also wenn ich es nicht besondere Vorteile gegenüber CF bringt, so werde ich bei CF bleiben, weil ich da den einen Slot mit Sicherheit benötige - einen zweiten mit anzuklemmen ist da wirklich einfach. Ich habe mich deshalb für einen CF Slot entschieden, weil davon auszugehen ist, dass es CF Karten noch am längsten geben wird. Sie haben einfach den größten Marktanteil und werden wohl länger überleben, als der Rest. Gruß, Thomas
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.