PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Externer Speicher (RAM)



Furti
18.03.2005, 22:40
Hallo!

Ich bin gerade dabei ein bisschen mit einem Atmega8 zu experementieren.

Allerdings ging mir recht schnell der 1k SRAM aus. Ich habe jetzt schon gelesen, dass ich den Speicher mittels eines EEPROM's erweitern könnte. Aber ich stell mir vor, dass EEPROM's viel langsamer sind als RAM.

Gibt es eine Möglichkeit, den µC mit einem RAM-Baustein zu erweitern? Und welcher RAM-Baustein eignet sich dazu am besten bzw. gibt es im Internet irgendwo eine Beispielschaltung wie ich den RAM dann an den AVR anschließen bzw. ansteuern kann?

Danke im vorraus,
Furti

Michael
19.03.2005, 00:13
Hallo Furti,
An den Atmega8 kannst du sinnvoll kein externes RAM dranhängen.
Schau dir mal den AT90S8515/Atmega8515 und Nachfolger an. Die haben ein extra Interface dafür.
Gruß, Michael

Alter Knacker
19.03.2005, 00:54
hi,
also den atmega8515 hab ich hier rumliegen, weiss aber nichtmal, wieso....
ich warte jetzt schon tagelang auf mein experimentierboard mit dem atmega16 und ausser formel1 wird sich nicht viel tun dieses WE ;-)

wenn jetzt alles da ist ausser einem quarz (bin nichtmal sicher), was könnte ich mit dem ding denn so anfangen als völliger trottel?

crashkurs wäre klasse!
thx knacki

Michael
19.03.2005, 01:27
Hallo Alter Knacker,
geiler Nickname ;)


wenn jetzt alles da ist ausser einem quarz (bin nichtmal sicher), was könnte ich mit dem ding denn so anfangen als völliger trottel?

Was man halt so anfängt, Ports ein und ausschalten, Taster/Sensoren abfragen, berechnen und ausgeben auf Displays etc.
Bei einem Atmega braucht man nicht unbedingt einen Quarz, der Taktgenerator ist schon drin.

crashkurs wäre klasse!
hmm, lesen,lesen,lesen
Hier gibt es z.B. eine gute Einführung. (http://www.rowalt.de/mc/)
Gruß, Michael

pebisoft
19.03.2005, 11:08
hallo, was verstehst du unter langsam beim i2ceeprom 24c128 oder 24c256 z.b. probier die doch erst einmal aus.
mfg pebisoft

muraad
19.03.2005, 13:01
Pepisoft er meint glaub ich das die Ansprechzeit von gutem Ram liegt im nano Sekunden Bereich. Die ganze i2c kommunikation bei den eeproms braucht schon mal ein paar us oder sogar ms. Überhaupt eeprom ist ja auch nicht für derartigen Speicher wie Ram gedacht.
Gruß Muraad

donni
10.09.2006, 17:53
Ich habe auch etwas mehr Speicherbedarf als vorhanden mit meinem Mega16. Der Mega16 hat wohl kein Speicherinterface, oder?
Kann ich da trotzdem einen externen RAM dran benutzen? Und wie ist da die Performancedifferenz zu einem Controller mit Speicherinterface?

Mehto
10.09.2006, 18:02
Klar kanst du auch an einen ATmega16 (hat kein interface) ein externes Sram anschließen, nur must du das mit deiner Software über die I/O Pins steuern.

Mit einem Externen SRAM Interface (z.B. beim Atmega162) spricht man das Sram wie den internen Ram an und braucht sich um nichts zu kümmern und spart noch ein paar Takte.

Für was brauchst du denn mehr Ram?

Viele Grüße,
Mehto

donni
10.09.2006, 18:28
Ich möchte eine Gameboy Kamera auslesen und versuchen die Bilder auszuwerten.
Bevor ich mit jetzt einen Mega162 besorge werde ich wohl erst mal einen RAM an dem Mega16 hängen und sehen wie weit ich damit komme.
Kennst du vllt eine Seite auf der beschrieben wird wie man den SRAM ohne Speicherinterface anspricht?
Und wie groß darf so ein SRAM max sein bzw wie viele Pins braucht man bei welcher SRAM größe?
Gibt es noch irgentwas worauf ich beim Kauf eines SRAMs achten sollte?

Mehto
10.09.2006, 21:18
Hallo,

habe selber für meinen Displaycontroller zuerst einen Sram mit einem Atmega16 angesteuert, war für meinen Controller aber zu langsam, ansonsten geht das mit einem Atmega16 auch einwandfrei, zumindest in Assembler kein großer Unterschied, in Hochsprachen könnte es aber Probleme geben da man ihn nicht direkt wie normaler Ram ansprechen kann.

Wenn du nicht weiter kommst schreib einfach, dann helfe ich dir weiter.
Einen Schaltplan wie man das Sram anschließt findest du hier:
http://www.mehto.roboterbastler.de/?Projekte:Display_Controller:Downloads_%28Tutorial s%2CDatenblatt...%29

Der ist zwar für einen Atmega162 mit interface, aber mit einem Atmega16 ist das gar nicht anderst, auser das man sich die Pins selber aussuchen kann :-)

Für 32KB brauchst du 15 Pins, für 16,384KB 14 usw.
Da man normalerweise einen latch benutzt (siehe Link) wird ein port als Adress und Datenprot benutzt wodurch man 8Pins spart. Für 32KB brauchst du schlussendlich 18 Pins, 15 für Adresse und Daten, eines fürs Latch, eines zum Lesen und das letzte zum schreiben.

Beim kauf nur achten das es ein Sram und kein Dram ist, schelligkeit dürfte bei dir nicht wichtig sein, jedenfalls kommt es nicht drauf an ob es 15ns oder 70ns hat. Wenn du ein altes 486er Board rumfahren hast kanst du da die alten cache bausteine benutzen, alelrdings haben die einen sehr hochen Stromverbrauch, sind dafür aber auch sehr schnell... (ca. 20ns)


Viele Grüße,
Mehto