Forum: Compiler & IDEs Externer Speicher bei Mega162


von Tobias Müller (Gast)


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

von Johannes (Gast)


Lesenswert?

Dazu musst Du erstmal sagen, wie Du den Speicher anschliessen willst:
Per Speicherinterface oder über Ports. Beides hat Vor- und Nachteile.

von Tobias Müller (Gast)


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)?

von John Doe (Gast)


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.

von Tobias Müller (Gast)


Lesenswert?

Was macht ein Latch und was ist ein CPLD?
Wie funktioniert das Adresse dekodieren?

Evtl. kennt ja jemand ein gutes Buch/Website wo sowas gut erklärt
wird.

Grüße und schönen Feiertag!

von Jochen (Gast)


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.

von Tobias Müller (Gast)


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

von Jochen (Gast)


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.

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.