Forum: Mikrocontroller und Digitale Elektronik SRAM am Atemage6444.


von funkeld (Gast)


Lesenswert?

Hallo, ich möchte mal als Anfänger normales SRAM mit dem Atmega644 
betreiben.
Sollte so 64kb gross sein.
Wo gibt es so einen Schaltplan, damit man es mal auf einem Steckbrett 
nachbauen kann?

Welche Bauteile brauche ich insgesamt dazu?

Ein läufhähiges Atmegaboard mit 644p habe ich.
Ich bräuchte davon dann nur die notwendigen Pins mit Flachkabel zum 
Steckbrett führen.

Danke.

Gruss

von guest (Gast)


Lesenswert?

AVR-CPUs sind nicht für den Anschluss von klassischem
SRAM ausgelegt.
Zwei SPI RAM 23K256 scheint mir noch die am wenigsten
aufwändige Lösung.
Kostet nur zwei ICs, eine SPI-Schnittstelle und zwei
I/O-Portleitungen als Chip-select.

von H.Joachim S. (crazyhorse)


Lesenswert?

Prinzipiell kann man das so nicht sagen, es gibt einige mit Interface 
für ext. Speicher.

von Klaus W. (mfgkw)


Lesenswert?

z.B. mega128, aber gerade nicht der 644

von Klaus W. (mfgkw)


Lesenswert?

Genauer gesagt: man kann natürlich an einen beliebigen AVR auch
externes RAM anschließen, muß dann aber per SW mühsam das Lesen
und Schreiben bauen.

Bei einem 128 dagegen schließt man es lt. Datenblatt an und
kann den Speicher dann (wenn ich es richtig sehe, habe es nie
probiert) dann wie eine Verlängerung des eingebauten RAM nutzen,
also für Variablen etc..

von guest (Gast)


Lesenswert?

Stimmt - es gibt einige wenige AVR-CPU-Typen mit SRAM-Unterstützung.
Nur, hilft das jetzt in diesem Fall (vorhandenes mega644-board) weiter?

von H.Joachim S. (crazyhorse)


Lesenswert?

nö :-)
Mir ging es nur um die Aussage: "AVR-CPUs sind nicht für den Anschluss 
von klassischem SRAM ausgelegt."

von Falk B. (falk)


Lesenswert?

@funkeld (Gast)

>Hallo, ich möchte mal als Anfänger normales SRAM mit dem Atmega644
>betreiben.

Kann man machen, ist aber nicht so sinnvoll, weil aufwändig.

http://www.mikrocontroller.net/articles/Speicher#SRAM

>Ich bräuchte davon dann nur die notwendigen Pins mit Flachkabel zum
>Steckbrett führen.

;-)
Und dann ewig un drei Tage rumjammern weil es instabil läuft. So ein 
SRAM ist schon recht fix und einen halbwegst stabilen AUfbau auf einem 
Steckbrett hinzubekommen ist reine Glückssache.

MFG
Falk

von Peter D. (peda)


Lesenswert?

Wozu braucht man denn 64kB?

Wenn der ATmega644 knapp wird, nimm doch erstmal den ATmega1284P (16kB).


Peter

von Detlev T. (detlevt)


Lesenswert?

@funkeld
Und ich frage: muss es denn unbedingt SRAM sein? Über die Anwendung hast 
du ja noch nichts gesagt. Der Anschluss über SPI wäre eine Möglichkeit, 
allerdings kenne ich da auch nur den 23K256 mit 32kiB Größe und der 
läuft auch nur bei 3,3V. Welche Spannung hat dein Board?

Ich stand kürzlich vor einer ähnlichen Entscheidung und werde 
stattdessen ein EEPROM (25LC512) einsetzen. Vorteil: 64kiB in einem 
Gehäuse (128kiB gibt es auch noch) und Betrieb bei 5V möglich. 
Nachteilig sind natürlich die Wartezeit vom bis zu 5ms beim Schreiben, 
die spätestens alle 128 Byte nötig ist. Außerdem werden auch "nur" 1 
Millionen Schreibzyklen garantiert.

Für eine Anwendung, die Daten deutlich häufiger liest als schreibt (wie 
bei mir) kann das dennoch eine Alternative sein.

Außerdem gibt es noch EEPROMs (24Cxxx) für den I²C-Bs, wo der Zugriff 
deutlich länger dauert.

BTW: Auch wenn SPI eine serielle Verbindung ist, kommt sie in der 
Geschwindigkeit fast an eine Lösung mit parallelem SRAM heran, wenn die 
Hardware des AVR das nicht unterstützt und man alles in Software machen 
muss.

von funkeld (Gast)


Lesenswert?

Jup, bin jetzt überzeugt.

25LC512, was ist der Programmierunterschied zum 24c256 zb beim 
Programmieren.
Den 25c256 kann ich programmieren.

Wie sieht es mit dem 25LC512 aus?
Wie wird er als Adresse angesprochen ...., wie kann man in einem Rutsch 
128 Byte schicken.

Gibt es irgendwo eine ein deutsches tut dafür.

Danke.

Gruss

von funkeld (Gast)


Lesenswert?

Wie sieht es mit einer SD-Karte aus als Ram nutzen zum dauernden 
speichern und lesen.
Eine SD-karte habe ich auf dem Board.

Gruss

von scnr (Gast)


Lesenswert?

funkeld schrieb:
> Wie sieht es mit dem 25LC512 aus?
> Wie wird er als Adresse angesprochen ...., wie kann man in einem Rutsch
> 128 Byte schicken.
>
> Gibt es irgendwo eine ein deutsches tut dafür.

Nein, aber sicher ein englisches Datenblatt. ;)

SCNR. :)

von Detlev T. (detlevt)


Lesenswert?

Hallo funkeld,

also Datenblätter (auf englisch) muss man schon lesen können, wenn man 
Elektronik betreibt. Der wesentliche Unterschied zwischen 24CXX und 
25LCXX ist die Schnittstelle. Ersterer hat I²C, letzterer SPI. Der 
ATMega unterstützt beides in Hardware. SPI ist deutlich schneller, kann 
mit halbem Systemtakt laufen, während man bei I²C eigentlich nicht viel 
über 400kHz hinaus kommt (auch wenn der Stein mehr kann) Bei 
sequentiellem Lesen kommt man also bei SPI auf ~1MByte/s (@20MHz 
Systemtakt) bei I²C auf ~50kByte/s.

Noch ein Tipp: Wenn du ISP nutzen willst, solltest Slaveselect mit einem 
externen Pull-Up versehen. Wenn beim Programmieren RESET auf low gezogen 
wird, werden alle Ausgänge hochohmig, der Speicher fühlt sich dann 
vielleicht angesprochen und quatscht dazwischen. Ich würde den Stein 
sogar sockeln, damit man ihn notfalls ganz entfernen kann.

von funkeld (Gast)


Lesenswert?

....also Datenblätter (auf englisch) muss man schon lesen können....

Das ist das Problem bei solchen Dingern.
Habe zwar schon 2 Selbstbau-Miniroboter mit Atmega laufen, 
Sd-karte,Kamera,Ultra und anderen Sensoren,Ir,Funk usw.

Aber diese Speicheransprechung mit Zyklen usw ist bei mir sehr schwierig 
hinzubekommen.

Nach dem vielen Meinungen habe ich mich für den AVR1284PU entschlossen.
Habe 2x Bestellt , zwar stück für 7,99.

Aber diese 16kb reichen mir.
Brauchen tue ich nur 128x112 byte, soviel Speicherstellen hat die 
Gameboy-Cam für den Roboter.

Gruss

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.