Externes RAM an 89C55WD

Microcontroller PIC und Atmel AVR

Microcontroller PIC und Atmel AVR

Moderator: Moderatorengruppe

Externes RAM an 89C55WD

Neuer Beitragvon hubertus am Sonntag 5. Februar 2006, 19:45

n'abend!
ich hab folgendes problem:
ich würd gern mein externes ram (6216) an meinen microcontroller (89c55wd) anschliessen.
jetzt gibt es für den ram-zugriff ja die speziellen befehle wie movx.
wo muss ich was anschliessen, damit das dunktioniert?
ich weiss, dass die leitungen AD0...AD7 an den Port P0 müssen. das ram hat aber mehr als 8 adressleitungen. ausserdem: wo kommen die datenleitungen hin? ich will mir ja schliesslich nicht alle ports nur für das ram belegen.
dann gibt es ja auch noch die leitungen /CS, /OE, /WE.
wo kommen denn die hin?
kann mir da einer weiterhelfen?

vielen dank schon im voraus,
grüsse
hubertus
Benutzeravatar
hubertus
Threadstarter
17831
Bronze Mitglied
 
Beiträge: 53
Registriert: Donnerstag 1. Dezember 2005, 17:23
Wohnort: CH

Neuer Beitragvon kalledom am Sonntag 5. Februar 2006, 23:28

Hallo Hubertus,
für ein externes Ram zu bedienen, brauchst Du jede Menge Ein- und Ausgänge:
8 x Daten-Leitungen (D0...7) (bidirektional)
11 x Adress-Leitungen (A0...10)
2 Steuer-Leitungen (read / OE und write / WR)
Es können Leitungen eingespart werden, wenn Daten und 8 Adressen gemultiplext werden, also erst 8 Adress-Bits anliegen, die in einem 8 D-Latch 'festgehalten' / gelatcht werden und anschließend die 8 Daten-Bits anliegen.
Dann ist eine weitere Steuerleitung zum Latchen der Adressen erforderlich. Bleiben immer noch:
8 x Daten- / Adress-Leitungen (AD0...7) (bidirektional)
3 x Adress-Leitungen (A8...10)
3 x Steuer-Leitungen (AdressStrobe, read / OE und write / WR)
Wenn nur ein Ram bedient wird, kann dessen CS auf GND gelegt werden; sonst sind weitere Steuerleitungen erforderlich.
kalledom
17837
 

Neuer Beitragvon hubertus am Montag 6. Februar 2006, 17:37

hallo kalledom,
ja ich weiss dass viele leitungen benötigt werden.
das ist auch recht ärgerlich, wenn man nur einen so "kleinen" controller hat wie ich.
deshalb hab ich mir gedacht, ich leg die stromversorgung des ram über jumper. wenn ich das ram nicht brauche, kann ich an den datenleitungen des controllers was anderes anschliessen, jumper raus und fertig. sollte ich aber zusätzlichen ram benötigen - jumper rein und ich hab mehr speicher. das sollte so schon gehn oder?

mein problem ist allerdings vielmehr, dass ich nicht genau weiss, wo welche leitungen des ram hinkommen.
ich weiss, dass AD0...7 an P0 kommen. das ist aber auch schon alles... wie gehts dann weiter, weisst du's??

grüsse & herzlichen dank
hubertus
Benutzeravatar
hubertus
Threadstarter
17850
Bronze Mitglied
 
Beiträge: 53
Registriert: Donnerstag 1. Dezember 2005, 17:23
Wohnort: CH

Neuer Beitragvon kalledom am Montag 6. Februar 2006, 23:12

Hallo Hubertus,
Du schreibst zum 6216 von AD0...AD7; nach meinem Wissensstand hat dieser Baustein 8 Daten-Pins D0...D7 und 11 Adress-Pins A0...A10. Dazu kommen CS, OE und WR.

Du brauchst für die Daten ein Port mit 8 Bits, an dem die Datenleitungen D0...7 dran kommen. Dieses Port muß bidirektional sein, also durch das Programm umschaltbar als 8 Eingänge oder 8 Ausgänge.
Für die Adressen benötigst Du ein weiteres Port mit 8 Bits und noch 2 Bits an einem dritten Port. Für OE und WR sind zwei weitere Port-Ausgänge erforderlich. Bei Ram-Betrieb wird CS auf GND gelegt.
Für Multiplex-Betrieb hatte ich bereits beschrieben.

Das 'Abschalten' des Ram erfolgt mit dem Eingang CS; liegt dieser Pin an High, sind alle Datenausgänge hochohmig und was an den Adress-Eingängen abläuft, interessiert den Speicher dann nicht. NICHT den Strom des Ram-Bausteins wegnehmen !
kalledom
17854
 


Zurück zu Atmel AVR Pic und C Control

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste