Hallo! Ich suche einen Zwischenspeicher für ca. 92kByte/s Daten und ca. 1-4MB Größe welcher per SPI Interface angesteuert weden kann. Ich muss abwechselnd schreiben und von einer anderen Adresse die Daten wieder einlesen.
> 92kByte/s Daten BTW: könnte doch afst ein entsprechend programmierter AVR schaffen, an den das RAM angeschlossen ist und welcher eine SPI-Schnittstelle hat.
Hier ist eine Herstellerseite. Die stellen auch SPI - RAM´s her. http://www.ramtron.com/doc/Products/Nonvolatile/Detail.asp?ID=112&gr=5 MfG Paul
Wen ich ncihts besseres finde werde ich mit einem AVR, SPI und einem möglichst billligen RAMChip herumexperimentieren.
Kann man eigendlich die Speicherchips von alten EDO RAM oder noch besser SDRAM Modulen an einen AVR dranhängen?
Könnte problematisch werden, da das dynamische RAMS sind. Für Anwendungen an uC sind statische RAMs besser geeignet. Ausserdem, sind das parallele RAMS, die brauchen Adressleitungen+Datenleitungen. Man kann sich da zwar durch multiplexen behelfen, aber es werden trotzdem mehr leitungen werden, als bei ner SPI-Schnittstelle. Wievile Leitungen kannst du denn für ne "RAM-Schnittstelle" entbehren ? Gerhard
zum DRAM an AVR: http://www.mikrocontroller.net/forum/read-4-121457.html http://elm-chan.org/works/vp/report.html
Ich brauche eben RAM an AT91SAM7 und der soll ja recht langsame Pins haben. Entbehren könnte ich sosnst alle Pins bis auf die TWI oder SPI da ich eine davon brauche und die USB Pins sind ja eh extra.
Das ist ein ARM-7 Derivat oder ? Der hat 32 Bit ? Wie breit soll denn das RAM sein ? auch 32 Bit ? oder nur 8 Bit ? Für 1MByte 8 Bit breit brauchst du 20 Adressleitungen, für 4MB dann 22 Adressleitungen. vierfach-gemultiplext brauchst du dann doch mind 8 Leitungen + R/W + CS + OE + 2 MUX-leitungen = 13 Leitungen für 16Bit Breite, dreifach gemultiplext 21 Leitungen. Am Schnellsten gehts 1-fach gemultiplext mit 28 Leitungen. 100kByte/s = 10us. In 10us 3-fach bzw 4-fach multiplexen = 3,3us bzw 2,5us dürfte funktionieren, wenn der Systemtakt schnell genug ist. Mit SPI gehts wohl auch nicht schneller. SPI-EEPROM's kann man zwar im Page-Mode schreiben, aber nur begrenzt, dann brauchen die wieder ne Adresse. Dafür geht auch Zeit drauf. Da gibts noch ne Möglichkeit: man nimmt ein paar Counter und verwendet die zur ADresserzeugung. Nach jedem Schreiben wird der Zähler einmal getaktet. Dafür braucht man dann aber 3 8-Bit Zähler (z.B.:74HC590), am uC aber nur 1 leitung zum takten und 1 zum Resetten. Ist aber schnell. Gerhard
@Gerhard: Du vergisst noch 8 Datenleitungen oder wenigstens 2 Leitungen um die Daten in ein Seriell/Parallel-Wandler zu takten.Irgendwie müssen die Daten ja auch an die gezählten Addressen kommen...
Das ist alles eine Sackgasse, viel sinnvoller ist es gleich einen Controller mit externem Speicherinterface zu verwenden.
@Andreas: Da gebe ich dir absolut recht.Gerade die grösseren ARM-Chips (AT91SAM926x oder AT91RMxxx) haben oft sogar schon Controller für dynamische RAMs mit drin.Da ist dann auch die mögliche Speichermenge um einiges grösser und der Datendurchsatz weitaus höher als bei SPI-Anbindung.Allerdings steigt auch der Stromverbrauch deutlich an.Ich ging davon aus das aus irgendeinem Grund der Mikrocontroller schon feststeht.Wen dem nicht so ist,sollte man zumindest auf einen Typen mit externem Businterface wechseln.Auch statische RAMs parallel angebunden sind noch günstiger als irgendwas serielles.
Der Controller steht noch nicht fest. Ich brauche aber was für den ich die Platine selbst herstellen kann und die Teile in Einzelstücken möglichst ohne extreme Versandkosten herbekomme. Wen das Ganze noch vernünftig mit dem GCC programmierbar ist bin ich glücklich. Ich bin aber gerade am Überlegen ob ich nicht einen DSP z.B. von TI nehmen soll.
@Christin: Hast du dich nun schon entschieden was du nimmst? @Alle: Ich bin ebenfalls auf der Suche nach RAM für's SPI. Leider ist es mir nicht möglich, einen Controller mit mehr RAM zu nehmen. Es muss ein MSP430 von TI sein (max. 10kB RAM), da er auf einem möglichst universell einsetzbaren Modul sitzt. Nun ist aber für einmal nicht wenig Stromverbrauch sondern viel Speicher benötigt. Der Speicher muss aber ziemlich häufig und schnell beschreibbar sein. Grundsätzlich würde EEPROM oder Flash ja gehn, allerdings ist das nicht wirklich das Richtige für diese Anwendung. Die Dinger von RAMTRON wären eine Möglichkeit, allerdings muss es ja nicht unbedingt nicht-flüchtig sein. Achja: Die Grösse sollte von 64kB aufwärts sein. Einen zusätzlichen Controller für's RAM entfällt leider, da das Ganze nicht so sehr eine Bastellösung werden sollte...
Wenn man mit den "Einschränkungen" leben kann, sind die "Voice Memories" bzw. Rekorder von Oki vllt einen Blick wert. http://www.okisemi.com/eu/1.Products/Speech.html#H2
Aber bei den MSP430 gibt es doch auch Typen mit deutlich mehr internem RAM als 10kB. Oder bsit du da auf einen bestimmten Typen schon festgelegt?
@arc: Was meinst du denn für "Einschränkungen"? Das sieht schon recht gut aus, muss ich mir unbedingt mal näher ansehn. @Norbert: Also ich weiss ja nicht welchen MSP430 du meinst, aber ich finde keinen mit mehr als 10kB. Ist aber auch egal, das zu verwendende Device steht schon fest. Das Ganze soll ein Universal-Funkmodul werden, da ist im Allgemeinen nicht so viel RAM erforderlich. Nur für diese spezielle Anwendung, daher muss ich es extern anschliessen können. @Uwe: Hab' ich mir mal angesehen, aber was hat das mit meinem Problem zu tun? Ein Blackfin ist nicht wirklich das, was ich einbauen will und serielles RAM scheint's auch dort nicht zu haben...
Hallo Philip ich finde das Theam interessant, da ich auch schon mal auf der Suche nach einem seriellen RAM war. Ich hatte damals keines gefunden und deshalb ein parallelles RAM an meine I/O-Ports des uC gehängt. Ist mühsam und benötigt evtl zusätzliche Bausteine. Aber vielleicht hast du ja genügend Leitungen übrig. Für 64Kbyte werdens etwa 19 Leitungen wrden, wenn man Adressen und Daten multiplext. Ansonsten gibts noch die Idee, die ich oben schon mal als Link erwähnt habe: http://www.edgar-conzen.de/deutsch.html Das ist wohl ein paralleles RAM, das über einen uC mit SPI-Schnittstelle angesprochen wird. Gerhard
@Gerhard: Ein paralleles RAM würde von den Pins her wohl noch knapp reinpassen, ist allerdings schon 'n Krampf... Der Controller ist eigentlich so schon viel zu gross dimensioniert für diese Anwendung, aber ich hab' ihn ausgewählt, damit ich wenigstens eine SD-Card anschliessen kann ohne externen Speicher zu benötigen (1kB). Im schlimmsten Fall wird es wohl doch darauf hinauslaufen, dass ich einen anderen Controller am SPI anschliessen muss und dort ein paralleles RAM anhänge. Ist allerdings wirklich die letzte Möglichkeit, ich habe immer noch Hoffnung sowas zu finden. Ist aber eigentlich schon komisch, dass sowas kaum verbreitet ist, es kann ja wirklich vorkommen dass man einen kleinen Controller (wenig IOs) aber "viel" Speicher benötigt... @Norbert: Kein Problem, jeder kann sich irren. Wahrscheinlich hast du die Flash-Grösse gesehn, die geht bis 60kB.
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.