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