Forum: Mikrocontroller und Digitale Elektronik 8085 System Speicherbelegung


von Daniel R. (daniel-rohrhofer)


Lesenswert?

Hallo Miteinander !

Ich hätte eine Frage:

Wie kann man mit einen 74138 CS-Signale erzeugen für eine Schaltung ?

Die Adressenvergabe hab ich schon für den Memory Bereich.

0000-8000 H EPROM
8000-A000 H RAM
A800-A800 H RAM*/EEPROM


Nur bei dem I/O Bereich weiß ich noch nicht wie ich es löse!
Ich dachte mir ich verwende

1*8255 als PIO
1*8253 als Counter
1*8251 als EIA-232 Schnittstelle.
1*8259 als Interrupt
1*LCD Display
evt. einen CoProzessor

Es wäre sehr hilfreich wenn sich jemand das anschauen könnte.

Danke

von Helmut L. (helmi1)


Lesenswert?

Daniel Rohrhofer schrieb:
> Nur bei dem I/O Bereich weiß ich noch nicht wie ich es löse!
> Ich dachte mir ich verwende
>
> 1*8255 als PIO
> 1*8253 als Counter
> 1*8251 als EIA-232 Schnittstelle.
> 1*8259 als Interrupt
> 1*LCD Display
> evt. einen CoProzessor

Der 8085 hat einen getrennten Addressbereich fuer seine IO Bausteien.
Dafuer hat er die Leitung IO/M. Einmal wird mit dieser Leitung der 
Speicher addressiert zum anderen der IO-Bereich. Der IO Bereich geht 
allerding nur bis 256 Addressen also A0..A7. Da nimmst du die Addressen 
A5,A6,A7 und legst sie an deinem 74xx138. Und schon hast du 8 CS 
Leitungen fuer dein IO Bausteine mit jeweils einen Addressraum vom 32 
Byte. RS,WR vom Prozessor an die IO Bausteine und schon sollte das 
laufen.

von Daniel R. (daniel-rohrhofer)


Lesenswert?

Danke für die Antwort.

Ich wollte eigentlich aus Unwissenheit die Adressbelegung mit UND-Gatter 
bauen, aber durch die Antwort geht nun jetzt die I/O Einheit.
Leider geht die Adressbelegung für den Memory Bereich noch immer nicht.

von flecko (Gast)


Lesenswert?

A15 der CPU an !CE des Eproms und E2 des Dekoders. A2, E0 und E1 auf 
Masse.
Mit A13 und A14 den Bereich zwischen 8000 und FFFF in 4 Teile aufteilen.

Du musst dir noch überlegen ob du den Speicher und IO bus über RD/WR 
trennen willst oder gleich über die Adressdekoder. (IO/M mit an den 
hc138)

von Hans Peter B. (Gast)


Lesenswert?

Für die Memory-Decodierung

EPROM         0000H - 7FFFH ->  Adressleitung A15 als CS für EPROM 
verwenden
RAM           8000H - 9FFFH ->  mit 7400 decodieren
RAM*/EEPROM   A000H - A7FFH ->  mit 7400 decodieren
Display       C000H         ->  mit 7400 decodieren


Memory                 CPU-ADR
                 A15    A14   A13   A12  A11  A10  A9   A8
RAM               1      0     0     0    0    0    0    0
                  1      0     0     1    1    1    1    1

                  A15 und A13(invertiert) Nand verknüpfen


RAM*/EEProm       1      0     1     0    0    0    0    0
                  1      0     1     0    0    1    1    1

                   A15 und A13 Nand verknüpfen

Display           1      1     0     0    0    0    0    0

                  A15   A14 Nand verknüpfen

Und die 8085-Peripheri-Bausteine, wie Helmut Lentzen erklärt hat 
ansteuern

Hans Peter

von Helmut L. (helmi1)


Angehängte Dateien:

Lesenswert?

Hier ein Prinzipschaltplan wie man sowas macht.

von Daniel R. (daniel-rohrhofer)


Lesenswert?

Danke für die Antwort !

Kann man die Adressbelegung auch mit eine 74XX138 machen.
Da ich schon einen 74138 benütze und ich mir dachte ich könnte die 
Schaltung auch mit eine 74138 machen. Falls das nicht geht werde ich auf 
die NAND-Gatter Schaltung zurückgreifen.

von (prx) A. K. (prx)


Lesenswert?

Helmut Lenzen schrieb:

> Hier ein Prinzipschaltplan wie man sowas macht.

Was liegt denn beim I/O-Zugriff auf A15? Bei diesem Ansatz müsste das 
schon garantiert 1 sein, sonst kollidieren I/O-Reads mit dem EPROM.

von chick (Gast)


Lesenswert?

Ich seh da keine Kollision. IO/M- geht zu beiden '138ern, jeweils auf 
einen anderen Eingang -> kein Konflikt.


Ich persönlich würd ja kein '138 einsetzen, sondern ein GAL.
Flexibel und gut.

von Holm T. (Gast)


Lesenswert?

dann nehme ich aus Protest einen 8 auf 1 Multiplexer, noch günstiger und 
auch gut :-)

Gruß,

Holm

von chick (Gast)


Lesenswert?

'138 ist eine gute Wahl, keine Frage.

Aber verschieb mal irgendwann die Adressbereiche -> Änderung der 
Hardware.
Beim Gal wird einfach umprogrammiert.


Ich nehm noch eine Frühstücksemmel. Und ein P wie Pause ;-))

von (prx) A. K. (prx)


Lesenswert?

chick schrieb:

> Ich seh da keine Kollision. IO/M- geht zu beiden '138ern, jeweils auf
> einen anderen Eingang -> kein Konflikt.

Yep, falscher Bezug. Muss mal die Brille putzen. Das mit A15=CE stand 
bei Hans Peter B. und dort muss man dann eben M/IO ins OE reinnehmen.

von MaWin (Gast)


Lesenswert?

> '138 ist eine gute Wahl, keine Frage.

Na ja, wenn man nur 4 Ausgänge braucht,
die aber 2 mal, ist ein '139 besser,
aber scheinbar nimmt man hier nur was
in der Ausbildungsbastelkiste liegt,
und schlägt nicht und niemals nach.

von Reinhard Kern (Gast)


Lesenswert?

chick schrieb:
> Ich persönlich würd ja kein '138 einsetzen, sondern ein GAL.
> Flexibel und gut.

und von allen Herstellern abgekündigt.

Gruss Reinhard

von Helmut L. (helmi1)


Lesenswert?

Reinhard Kern schrieb:
> und von allen Herstellern abgekündigt.
s
Der Rest der Bauteile aber ebenso. Also was solls wenn er noch eins da 
hat.

von Daniel R. (daniel-rohrhofer)


Lesenswert?

Reinhard Kern schrieb:
> chick schrieb:
>> Ich persönlich würd ja kein '138 einsetzen, sondern ein GAL.
>> Flexibel und gut.
>
> und von allen Herstellern abgekündigt.

Ich habe im Internet gesucht und noch welche gefunden, die diese 
Verkaufen:

http://www.reichelt.at/GALs-PALs/GAL-16V8-25QP/index.html?;ACTION=3;LA=2;ARTICLE=8128;GROUPID=2955;artnr=GAL+16V8-25QP;SID=12T4viKn8AAAIAAGyDHlUe3d5341f06451fd9c10cd4ed28e2ed71
( ist keine Werbung)

Eigentlich kann mann dies Schaltung auch mit einen GAL zulaufen bringen.

Ich dachte mir ich hänge auf die Eingänge die Adressleitungen, die für 
die Speicherbelegung notwendig wären und das I/O Signal und verknüpfe 
diese.

Aber wie brenne ich GALs.
Ich habe wegen meiner Arbeit einen GALEP 4 zu Hause stehen aber kenne 
kein Programm mit dem ich das GAL programmieren könnte.

von Helmut L. (helmi1)


Lesenswert?

Daniel Rohrhofer schrieb:
> Eigentlich kann mann dies Schaltung auch mit einen GAL zulaufen bringen.
>

Yepp kann man.

> Ich dachte mir ich hänge auf die Eingänge die Adressleitungen, die für
> die Speicherbelegung notwendig wären und das I/O Signal und verknüpfe
> diese.
>

Auf das GAL muessen:  Addressen,IO/M,RD,WR

> Aber wie brenne ich GALs.
> Ich habe wegen meiner Arbeit einen GALEP 4 zu Hause stehen aber kenne
> kein Programm mit dem ich das GAL programmieren könnte.

Anscheinend kann Galep4 keine Gals mehr.

Du brauchst aber auch noch einen GAL Assembler um das Programmierfile zu 
erzeugen. Da wird sich bestimmt noch was im I-Net finden lassen.
Aber wenn es nur um die paar IOs geht ist es einfacher einen 74xx138 zu 
nehmen. Der kann dann fuer 8 IO Bausteine die CS erzeugen

von karadur (Gast)


Lesenswert?

Hallo


Galep4 kann GALs programmieren, aber was fehlt ist ein GALAssembler.

In Anbetracht des Stromverbrauches und der Verfügbarkeit würde ich 
74HCxx nehmen.

Mein alter ECB-Bus-Rechner mit Z80 hatte als Dekoder auch nur 74138/139 
(LS ). Das war auch nicht so wild.

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.