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
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....
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
@Jörn Schau mal ins Datenblatt des 8515. Dort ist eine Beispielschaltung für externes Speicherinterface dargestellt.
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.
@Andreas: Sorry, das wußte ich nicht. Ich arbeite nur mit den kleinen Atmels. --> Wieder etwas dazugelernt ;-)
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?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.