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.pnghttp://www.izabella.me.uk/assets/multimedia/8085cct16.jpghttp://web.sunybroome.edu/~eet_dept/eet267/PLS858Schematic.JPG
Hilfe kann ich trotzdem brauchen ;)
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.
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.
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.
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.
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.
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.
>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.
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.
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.
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.
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 :-)
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.
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.
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.
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
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.
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
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.
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.
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.