Forum: Mikrocontroller und Digitale Elektronik SRAM UM6164 mit AVR?


von Jörn (Gast)


Lesenswert?

Moin,

ich habe ein Problem mit einer Schaltung für zusätzlichen externen RAM 
(UM6164 mit dem AT90s8515). Hat vielleicht jemand so eine Schaltzung 
schonmal aufgebaut und besitzt einen Schaltplan davon oder kann sie 
detailliert erklären?

Vielen Dank im Vorraus,

Jörn

von thkaiser (Gast)


Lesenswert?

Du mußt den Daten- und Adressbus mit dem 8515 nachbilden; ich habe aber 
leider momentan keine Ahnung, wieviele Port-Bits der zur Verfügung 
stellt. Je nachdem, wieviele Portbits Du "opfern" willst, mußt Du mehr 
oder weniger Aufwand betreiben. Prinzipiell brauchst Du beim 6164  24 
programmierbare Leitungen: 8 für den Datenbus, 13 für den Adressbus und 
nochmals 3 für den Steuerbus, wobei beim Steuerbus notfalls  eine 
Leitung entfallen könnte (CE mit RD verbinden).
Ich habe vor Ewigkeiten mal einen solchen Baustein an einen AT90S2313 
angeschlossen, da muß man ein wenig Tricksen, um die 24 Leitungen 
herauszukitzeln: Mit Multiplexing.
Prinzip: Der PORTB wird als 8 Bit breiter bidirektionaler Bus genutzt. 
Daran sind zwei Latches (74HC574) angeschlossen, die den Adressbus 
bereitstellen, so habe ich sogar einen 16-Bit Adressbus. Über 3 Pins des 
PORTD und einen 74HC138 habe ich die gesamte Adressierung gelöst. Somit 
sind lediglich 11 Port-Pins notwendig, um 64K externen Speicher 
anzusteuern, der Software-Aufwand hält sich in Grenzen.
Wenn dies Deinen Vorstellungen entspricht, werde ich auf den Weiten 
meiner Festplatte mal suchen, ob ich den Schaltplan noch finde....

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

!?!?

Warum so umständlich? Der 8515 hat einen Datenbus für externen RAM.

von Jörn (Gast)


Lesenswert?

Ich würde auch im Moment leiber weniger tricksen und dafür auf Nummer 
sicher gehen, dass es auch funktioniert; so wirklich 
frustrationstolerant bin ich da nicht.
Bei den 13 Pins Adressbus würde ich gern nachhaken: Eigentlich dachte 
ich, dass man zum adressieren von 64K 2 8bit Adressen bräuchte. Nun ist 
der 6164 natürlich in 8K Speicherzellen, oder wie man es nennen mag, 
organisiert. Versteht der AT90S8515 das, oder braucht der eine spezielle 
Speicherorganisation?
Und wie muß ich die beiden Chip-Enables verbinden, damit das ganze 
funktioniert? Da ist beim externen RAM-Interface des 8515 ja nichts für 
vorgsehen.

Danke schonmal für die schnelle Hilfe,

Jörn

von mikki merten (Gast)


Lesenswert?

@Jörn
Schau mal ins Datenblatt des 8515. Dort ist eine Beispielschaltung für 
externes Speicherinterface dargestellt.

von Jörn (Gast)


Lesenswert?

Habe ich schon. Besonders detailliert ist diese aber nicht und gibt 
entsprechend auch keine Auskünfe darüber, wie ich mit den Chip-enables 
und den wenigen Adressleitungen umgehen soll.

von thkaiser (Gast)


Lesenswert?

@Andreas: Sorry, das wußte ich nicht. Ich arbeite nur mit den kleinen 
Atmels. --> Wieder etwas dazugelernt ;-)

von thkaiser (Gast)


Lesenswert?

Nachtrag zu Jörn: Der 6164 hat 64KBit, die 8K*8Bit organisiert sind, 
also 8 KByte. 8 KByte brauchen 13 Adressbits (A0..A12)

Der Steuerbus besteht aus:
1. CE (oder auch CS = Chip Enable, Chip Select)
2. RD (Read, auch RE = Read Enable)
3. WR (Write, auch WE = Write Enable).

Alle Eingänge des Steuerbus sind Low-Aktiv, d.h. die Funktion ist 
ausgewählt, wenn die entsprechende Leitung auf Low liegt.

So, flugs das Datenblatt heruntergeladen.... stimmt: Für Anfänger nicht 
sehr berauschend.

Um Portpins zu sparen, ist der Daten/Adressbus gemultiplext (wie auch 
beim MCS-51). Um an die richtigen Signale zu kommen, müssen die Signale 
nun wieder auseinandergedröselt werden. Port A beinhaltet den Datenbus 
und die unteren 8 Bit des Adressbusses, aueinandergehalten wird der 
jeweilige Inhalt (Adresse oder Daten) durch die ALE (Adress Latch 
Enable) Leitung. Der geheimnisvolle Baustein in der Mitte ist ein 
solches Latch (=Zwischenspeicher).
Bei einem Speicherzugriff passiert nun folgendes: Der 8515 gibt auf 
PortA das Low-Byte der Adresse aus und aktiviert über ALE das Latch. 
Dieses speicher die Adresse. Ganz nebenbei wird auf PortC das High-Byte 
der Adresse ausgegeben. Nun wird der PortA als Datenbus konfiguriert (je 
nach Schreib-oder Lesezugriff), nun wird per RD oder WR die Art des 
Zugriffs (lesen oder schreiben) festgelegt.
Als Latch kannst Du beispielsweise ein 74HC573 verwenden. Einfach PortA 
0..7 mit D 0..7 des Latch verbinden, nebenbei wird PortA 0..7 auch mit D 
0..7 des RAM verbunden. Q 0..7 des Latch werden mit A 0..7 des RAM 
verbunden, A 8..A 12 des RAM mit PortC 0..4
Die restliche Verdrahtung wie im Datenblatt - fertig. Fast vergessen: 
Wenn Du nur ein RAM verwendest, legst Du in Deinem Fall die CE-Leitung 
auf Masse. Bei mehreren RAM / ROM Bausteinen mußt Du über eine 
Adressdekodierung die Bausteine auswählen.
Alle Klarheiten beseitigt?

von Jörn (Gast)


Lesenswert?

Alle Klahrheiten vollkommen beseitigt!
Vielen Dank, hat mir wirklich weitergeholfen!

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.