Externer Speicher bei Mega162

Gast #99883
Lesenswert?

Hallo,

Ich will einen Mega162 mit externem Speicher testen. Das ganze will ich
nachher mit gcc realisieren. Da ich vom externen Speicher GAR KEINE
Ahnung habe ein paar Fragen (evtl kennt ja jemand ne gute Anleitung?):

- Welche Speicherbausteine kann ich verwenden? (Evtl. mit
Reicheltbestellnummer oder so, dann finde ich sie am besten. :) )
- Wie muss ich sie an den AVR hardwaremäßig an schließen? Sind andere
Bausteine als der Speicher selbst fällig?
- Wie spreche ich sie an (mit gcc)?

Grüße
  Tobias
Gast #99885
Lesenswert?

Per Speicherinterface.

Kann man dann eigentlich auch mehrere Bausteine gleichzeitig dort
anschließen. Also z.b. 16KB RAM, nen LCD und diese Easy TCP/IP? (Alles
übers SPeicherinterface)?
Gast #99886
Lesenswert?

Angeschlossen wird der Speicher aufgrund des gemultiplexten Busses über
ein Latch, z.B. 373/573. Du kannst auch mehrere Steine anschliessen,
dazu musst Du die Adressen ausdekodieren.
Bei komplexer Speicheraufteilung bietet sich dann auch ein CPLD an.
Auch ein LCD-RAM kannst Du anschliessen, Du musst dann nur auf das
Timing achten, das ist je nach Taktfrequenz dann irgendwann nicht mehr
möglich, da die LCD-Controller recht langsam sind.
Gast #99888
Lesenswert?

Ein Latch speichert die Daten zwischen, in diesem Fall also den
Adressteil, da ja über einen Port sowohl Daten als auch Adressbits
ausgegeben werden, um Ports zu sparen.
Ein CPLD ist ein programmierbarer Logikbaustein, der sich mit
Logikgleichungen "füttern" lässt und somit mehrere Logik-ICs (z.B.
Und-/Oder-/Nicht-Gatter) in einem Baustein vereint.
Adressdekodierung funktionert einfach aufgrund der Booleschen Algebra,
indem anhand der Adressbits die entsprechenden Chip-Selects gesetzt
werden, so dass die einzelen Bausteine nur angesprochen werden, wenn
ihr Adressbereich genutzt wird.
Gast #99889
Lesenswert?

Also das mit derr Adressierung ist mir noch nicht ganz klar. Nehmen wir
an Speicher A und B haben jeweils 4096 Byte. Speicher A hat die
Adressen x0000-x0FFF und Speicher B von 0x1000-x1FFF. Jetzt wird mit
Hilfe irgendwelche Bauteile für gesorgt das bei Speicher Adresse von A
dessen CS aktiv, bei den Adressen von B dessen CS. Speicher da wird
meiner Meinung auch gut mit klarkommen, aber Speicher B bekommt doch
Adressen über den Bus die über seinem "Range" sind. Müssen die dann
vorher noch subtrahiert werden?

Grüße
Gast #99890
Lesenswert?

Nein, denn die unteren 12 Adressleitungen liegen an jedem Stein an, der
Baustein beachtet sie aber nur, wenn er auch das CS bekommt.
Und das wird aus A12 gewonnen, also /A12 für Stein A und A12 für Stein
B.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren