Forum: Mikrocontroller und Digitale Elektronik Steuercomputer mit CPU 8085 - Verständnissfrage


von Electronicfox (Gast)


Lesenswert?

Hallo!
Nun ist das letzte Schachterl ausgepackt. Auf der Box steht 
"Steuercomputer"

Der Inhalt im Antistatic-Pack:
1x CPU D8085
1x Expander D8255
1x SOUND-IC AY-3-8910
1x 64k-EPROM TMS2764
1x Echtzeituhr DS12887
8x DRAM HM51256P-10

Der Inhalt brauchbar, nur wie baue ich die Schaltung richtig auf. Der 
8085 ist ja punkto Verbindung mit EPROM mit dem 8051 ähnlich. Ich habe 
mich zuvor mal mit dem Schaltbild des C64 und C128 von Commodore 
vertraut gemacht. D0-D7 an D0-D7 zu verbinden ist klar, nur die 
Adressleitung macht mich unsicher.
Klar sind mir AD0-AD7, welche man durch ein LATCH auf D0-D7 und A0-A7 
splitten kann. A8-A15 gehört zum EPROM. Da der 8085 aber nur 2 PORTs 
hat, frage ich mich, wie ich Softwaremäßig über die Datenleitung auf die 
Echtzeituhr und dem Expander zugreifen kann. Die sind ja auch von der 
Adressleitung abhängig und mich frage wie ich das realisieren kann. Kann 
man mit dem 8085er-Assembler selbst bestimmen was eine bestimmte Adresse 
von A0-A15 mit Echtzeituhr und Expander macht?
Immerhin hatte ich noch nicht mit dem 8085 zutun gehabt.

Geplant habe ich mir eine Schaltung die mir eventuell eine Uhrzeit auf 
einem LCD anzeigt, müsste ja hinhauen mit D8255 und DS12887.
Datenblätter der ICs habe ich schon gefunden.

Da ich gern vorher nach Infos suche fand ich raus, das trotz des hohen 
Alters des 8085, noch immer gern was draus gebaut wird:

http://saundby.com/electronics/8085/images/MAG-85%20Schem%20pg%201.png
http://www.izabella.me.uk/assets/multimedia/8085cct16.jpg
http://web.sunybroome.edu/~eet_dept/eet267/PLS858Schematic.JPG

Hilfe kann ich trotzdem brauchen ;)

von Uwe (Gast)


Lesenswert?

Adressdecoder basteln und an die Adressleitungen anschließen z.b. ein 
par ANDs und 74138 oder so. Ausgänge an die /CEs bzw. CEs,ENs,/WEs,/REs 
usw.
Ein kleines CPLD wäre natürlich sehr flexibel und erweiterbar.

von Electronicfox (Gast)


Lesenswert?

Uwe schrieb:
> Adressdecoder basteln und an die Adressleitungen anschließen z.b. ein
> par ANDs und 74138 oder so. Ausgänge an die /CEs bzw. CEs,ENs,/WEs,/REs
> usw.
> Ein kleines CPLD wäre natürlich sehr flexibel und erweiterbar.

Adressdecoder müsste auch mit einem AVR drin sein, auch wenn der nicht 
wirklich dazu passt. Da ich die Teile nun mal hier habe und obendrein 
nichts gekostet haben und ich gerne was dazu lerne, müssen die Teile 
halt verbaut werden.

Mit CPLDs habe ich Null Erfahrung. Das Einzige was ich von den CPLDs 
weiß ist, die Ähnlichkeit mit PALs und GALs.

von Thomas E. (thomase)


Lesenswert?

Electronicfox schrieb:
> 64k-EPROM TMS2764

Hast du denn einen EPROM-Brenner und eine Löschlampe? Und zehn weitere 
EPROMs des selben Typs? Mindestens aber soviele, wie gleichzeitig in die 
Löschlampe passen.

Wenn nicht, wirf den alten Schrott in die Tonne.

mfg.

von Karl H. (kbuchegg)


Lesenswert?

Electronicfox schrieb:

> 8085 ist ja punkto Verbindung mit EPROM mit dem 8051 ähnlich. Ich habe
> mich zuvor mal mit dem Schaltbild des C64 und C128 von Commodore
> vertraut gemacht.

Falsche Baustelle.
Such dir ein SChaltbild für einen 8085 Computer. Leider waren die nicht 
so zahlreich, wie die 8080 oder Z80 Systeme.

Das Problem beim 8085: Er hat einen gemultiplexten Adress und Datenbus.


> Klar sind mir AD0-AD7, welche man durch ein LATCH auf D0-D7 und A0-A7
> splitten kann.

Nicht kann.
Muss!

> A8-A15 gehört zum EPROM.

sagt wer?
Das kann schon mal nicht stimmen, weil du ja auch noch irgendwo das RAM 
liegen hast. Also wirst du dir einen Adressdekoder machen müssen, mit 
dem du zwischen den Bausteinen (über deren Chip-Select Leitungen) 
auswählen kannst, wer denn nun den Bus bedient.

> Da der 8085 aber nur 2 PORTs
> hat

Der 8085 hat überhaupt keine Ports.
Aber er unterscheidet im Adressraum zwischen RAM und Ports. Und da kommt 
jetzt der 8255 ins Spiel.

> Immerhin hatte ich noch nicht mit dem 8085 zutun gehabt.

Ich würde mir das an deiner Stelle ehrlich gesagt auch nicht mehr antun. 
Nimm einen µC, da ist das alles in einem IC integriert, wozu du beim 
8085 erst mal Unmengen an Hardware aufbauen musst.

von Wilhelm F. (Gast)


Lesenswert?

Electronicfox schrieb:

> Adressdecoder müsste auch mit einem AVR drin sein, auch wenn der nicht
> wirklich dazu passt.

Der könnte zu langsam sein. Die Timings sollten schon weiter unter 1µs 
liegen.

Wenn man mit GAL und CPLD keine Erfahrung hat, vielleicht gehen noch 
schnellere modernere EPROMs.

von Karl H. (kbuchegg)


Lesenswert?

Und mit deinem DRAM wird der 8085 auch nicht glücklich werden. Der hat 
nämlich keinen Memory Refresh eingebaut, wie die Konkurenz bei Zilog.

von Karl H. (kbuchegg)


Lesenswert?

Electronicfox schrieb:
> Uwe schrieb:
>> Adressdecoder basteln und an die Adressleitungen anschließen z.b. ein
>> par ANDs und 74138 oder so. Ausgänge an die /CEs bzw. CEs,ENs,/WEs,/REs
>> usw.
>> Ein kleines CPLD wäre natürlich sehr flexibel und erweiterbar.
>
> Adressdecoder müsste auch mit einem AVR drin sein


viel zu aufwändig.

Wenn du in deinen ersten Link schaust, dann sind die 74138 die 
Adressdekoder (diesmal für die diskret aufgebauten externen Ports)

In deinem 2.ten Link ist der Adressdekoder der 74139

Beides waren/sind übliche Lösungen

Im 3.ten hab ich ihn noch nicht gefunden.
Geh einfach von den Chip Select Leitungen vom EPROM oder RAM aus und 
sieh nach wo die herkommen. Jedes EPROM oder RAM reagiert nur dann auf 
die Bussignale, wenn seine Chip Select Leitung ( /CS ) richtig steht. 
AUfgabe des Adressdekoders ist es, aus den höherwertigen Adressleitungen 
zb 8 'Speicherbänke' zu schaffen (mit einem 74138 auf A13, A14, A15) und 
dann jeweils dem richtigen IC die Freigabe zu erteilen.

von MCUA (Gast)


Lesenswert?

>Adressdecoder müsste auch mit einem AVR drin sein,
Man macht nicht einen Adressdecoder mit nem uC (auch braucht der ewig 
zur Dekodierung)
Nimm doch (74er), GAL oder CPLD, da kommst du auf wenige ns.
(GALs von Lattice sind alle abgekündigt, von Atmel gibts noch welche)
Einfach die höheren A's- und Ctr-Ltgs an PLD, und ein paar Outs für die 
\CS's der Bausteine.

von Karl H. (kbuchegg)


Lesenswert?

Ah, Im 3.ten Link ist es U24, der Adressdekoder spielt.

Aber wie gesagt: dein DRAM macht dem ganzen sowieso einen Strich durch 
die Rechnung.

von Wilhelm F. (Gast)


Lesenswert?

Karl Heinz Buchegger schrieb:

> Und mit deinem DRAM wird der 8085 auch nicht glücklich werden.

Ich war mir nicht sicher, ob die RAMs DRAM-Typen sind. In meiner 20 
Jahre alten Vergleichstabelle bzw. Datenbuch finde ich sie nicht mal.

Allerdings fand ich schon Schaltungen im Internet, wie man mit dem 8085, 
oder auch mit dem 8051 DRAM betreiben kann. Das ist aber sicherlich hier 
zuviel des Guten. Es ging wohl auch ordentlich auf die Laufzeit, wenn 
man Refresh per Software machen mußte.

Man kann sich ein EPROM und ein SRAM zu je 32kByte suchen, das biegt die 
Sache einigermaßen gut hin. So machte ich es auch mal.

von Ulrich (Gast)


Lesenswert?

Wenn man sich beim Speicher beschränkt, kann man den Adressdekoder 
eventuell auch auf ein einfaches Inverter Gatter reduzieren. Je die 
Hälfte des Adressraums bekommen dann das EPROM und RAM (bevorzugt ein 
SRAM).

Wirklich antun würde ich mir einen so veralteten Computer aber nicht 
mehr. Die AVRs sind deutlich schneller und lassen sich dank C-Compiler 
an PC und ISP leichter programmieren. Bei Mega8515 oder Mega128 lässt 
sich bei bedarf auch externes RAM anschließen - übrigens ganz ähnlich 
wie beim 8085.

von bob (Gast)


Lesenswert?

Einfach nach "51256 RAM" googlen. Das ganze ist wohl doch ein SRAM und 
kein DRAM.
z.b. http://www.datasheets.org.uk/51256-datasheet.html

Es erinnerte mich in der Bezeichnung doch sehr an "alte Tage" und macht 
in der Zusammenstellung eher Sinn.

Ich gebe Karl Heinz recht dass man sich sowas heutzutage eigentlich 
nicht mehr antun sollte weil es doch mehr als nur ein bischen 
Hühnerfutter bedarf um klassische Mikroprozessoren mit notwendiger 
Peripherie auszustatten.

Ich habe vor ~25 Jahren auch mal mit 8085-Designs gearbeitet. Und im 
Vergleich zu 6502, Z80 usw. ist ein heutiger uC in Kompaktheit und 
Geschwindigkeit haushoch überlegen.

Solltest Du aber an dem Projekt festhalten wurden ja schon die 
wesentlichsten Punkte genannt wie z.B. Adressdecoder, I/O Ports usw.

Die 8085-Boards die ich in der Vergangenheit benutzte hatten einige 
7-Segmentanzeigen für Adresse + Daten sowie eine 4x5 oder 5x5 
Tastaturmatrix für hexadezimale Eingaben + Steuertasten, ausserdem noch 
zusätzliche Ports um LED's und dergleichen anzusteuern.

von Lattice User (Gast)


Lesenswert?

bob schrieb:
> Einfach nach "51256 RAM" googlen. Das ganze ist wohl doch ein SRAM und
> kein DRAM.
> z.b. http://www.datasheets.org.uk/51256-datasheet.html

Das sind Intel Chips

Die HM51256P-10 sind von Hitachi und sehr wohl DRAM.
http://www.electronicpool.de/list/index_H_M_HM51256P-10_Hitachi.html

In der Bausteinesammlung fehlt Addressdecoder und vor allem ein DRAM 
Controller. Ausser Refresh muss man ja auch noch das RAS CAS Timing 
korrekt erzeugen und die Addressleitungen entsprechend Multiplexen.

Die 8 Stück HM51256P-10 sind insgesamt 256 KByte, der 8085 kann aber nur 
64K direkt addressieren. Muss also noch eine Bankinglogik her.

Mein Vorschlag:
In Harz eingiessen und Briefbeschwerer draus machen :-)

von bob (Gast)


Lesenswert?

mea culpa, ja ich weiss, wer lesen kann ...
Es war schon spät

von Electronicfox (Gast)


Lesenswert?

Gibts eigentlich einen ASM-zu-HEX-Wandler für den 8085. Also für WINDOWS 
oder Ubunto. Das Progstudio und der GNUSIM8085 bringen es einfach nicht 
zusammen. Wobei der zweite bei "ASSEMBLE" keine HEX oder BIN-Datei 
erstellt.

Zu Beginn sollte ein 8085, 8255, 2 LATCHes, 2 BUS-Treiber, 1x 
3fach-TRIPLE-NAND, 1x 4fach-DUAL-NAND und ein EEPROM ausreichen. EEPROM 
deshalb, da ein UV-Löschgerät immer nur leihweise da ist.

RAM und Echtzeituhr kann man ja später noch hinzufügen. Zuerst möchte 
ich mich etwas mit Relaisplatinen und Display spielen.

von (prx) A. K. (prx)


Lesenswert?

Electronicfox schrieb:

> Gibts eigentlich einen ASM-zu-HEX-Wandler für den 8085.

Wenn es auch ein Assembler sein darf:
http://john.ccac.rwth-aachen.de:8000/as/

von dasrotemopped (Gast)


Lesenswert?

eine ausführleiche Beschreibung des 8085 gibt es in folgendem Buch :
ISBN: 3142212515
Die Hardware, Peripheriebeschaltung und die Programmierung binär und 
Assembler werden da detailliert vorgestellt.
Der 8085 Microprozessor mit Peripherie war in meiner Ausbildung zum 
Kommunikationselektroniker das Lernsystem und als Microcontroller der 
8051.
Anno Tobak wie heute kann ein uC und ein uP je nach Anwendungszweck 
nicht beliebig getauscht werden.

Gruß,

dasrotemopped.

PS: ich würde dank der heute existierenden Alternativen keinen 8085 oder 
8051 mehr anfassen wollen.

von Lattice User (Gast)


Lesenswert?

Electronicfox schrieb:
> Zu Beginn sollte ein 8085, 8255, 2 LATCHes, 2 BUS-Treiber, 1x
> 3fach-TRIPLE-NAND, 1x 4fach-DUAL-NAND und ein EEPROM ausreichen. EEPROM
> deshalb, da ein UV-Löschgerät immer nur leihweise da ist.

Ein Programmiergerät hast du? Wenn ja kann dieses auch EEPROMs und wenn 
ja sind die passenden Typen noch aufzutreiben?

>
> RAM und Echtzeituhr kann man ja später noch hinzufügen. Zuerst möchte
> ich mich etwas mit Relaisplatinen und Display spielen.

Ohne RAM wirst du mit dem 8085 nicht weit kommen, der hat intern nichts 
ausser ein paar Register (6 Stück a 8bit).

Am einfachsten wäre eine statischisches paralleles RAM, z.B. 62256 
(32k*8) die sind auch einfach anzusteuern.

von Peter D. (peda)


Lesenswert?

Electronicfox schrieb:
> Der Inhalt im Antistatic-Pack:
> 1x CPU D8085
> 1x Expander D8255
> 1x SOUND-IC AY-3-8910
> 1x 64k-EPROM TMS2764
> 1x Echtzeituhr DS12887
> 8x DRAM HM51256P-10
>
> Der Inhalt brauchbar

Meine Meinung dazu: völlig unbrauchbar.

Die ICs scheinen ja alte NMOS-Stromfresser zu sein, da plane mal ein 
kräftiges Netzteil und Lüftung ein.

Hast Du irgendwelche Gründe, daß es unbedingt ein 8085 sein muß?

Sonst wäre es billiger einen modernen MC mit Bootloader zu nehmen. Dann 
hast Du alles in einem Chip und mußt nur noch VCC und die RS-232 zum PC 
anschließen, um ein Programm in den MC zu flashen. Nichtmal ein 
Programmiergerät ist nötig.


Peter

von Wilhelm F. (Gast)


Lesenswert?

Peter Dannegger schrieb:

> Die ICs scheinen ja alte NMOS-Stromfresser zu sein, da plane mal ein
> kräftiges Netzteil und Lüftung ein.

So arg schlimm ist es nun auch nicht: Meine Europakarte voll mit 
Peripheriebausteinen zieht sich in NMOS etwa 300mA, das sind gerade 
1,5W.

Bestücke ich das Ding mit CMOS, und wechsele die paar TTL noch gegen 
HCMOS, komme ich bis runter zu 20..30mA. Das geht schon eher in Richtung 
Batteriebetrieb, als zum Lüfter.

OK, so ein Ding sollte man nur als eingefleischter Nostalgiker bauen. 
Vielleicht ist der TE einer. Und ich bin auch einer.

von Helmut L. (helmi1)


Angehängte Dateien:

Lesenswert?

Hier habe ich dir mal eben ein Minimales 8085 System aufgezeichnet.

EPROM = 8 KByte
RAM   = 8 KByte  (bitte statisches RAM verwenden kein DRAM)
PORT  = 8255 Parallelport

von Grübler (Gast)


Angehängte Dateien:

Lesenswert?

Ja wenn wir jetzt alle unseren alten Schätzchen
auspacken sollen, will ich nicht fehlen.

1991 habe ich die (Stopp)Uhr, mit einem
8085-Kern, gebaut.
Man beachte die mit der Hand gezeichneten
Schaltpläne.

von Lattice User (Gast)


Lesenswert?

Helmut Lenzen schrieb:
> Hier habe ich dir mal eben ein Minimales 8085 System aufgezeichnet.
>
> EPROM = 8 KByte
> RAM   = 8 KByte  (bitte statisches RAM verwenden kein DRAM)
> PORT  = 8255 Parallelport

Kleiner Bug:
Am 2. LS138 sollte nicht A0,A1,A2 angeschlossen werden sondern 
sinvollerweise A5,A6,A7, Sonst kann man nicht auf all Register eines IO 
Bausteins zugreifen.

von Helmut L. (helmi1)


Lesenswert?

Lattice User schrieb:
> m 2. LS138 sollte nicht A0,A1,A2 angeschlossen werden sondern
> sinvollerweise A5,A6,A7, Sonst kann man nicht auf all Register eines IO
> Bausteins zugreifen.

Ok hast du recht. Ist mir in der schnelle nicht aufgefallen.

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.