Forum: Mikrocontroller und Digitale Elektronik Z80/UA880D mit 28C64 startet nicht


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Man kann einfach einen SST39SF010A verwenden. Der funktioniert prima als 
Decoder [1].

[1] Beitrag "Re: Nibbler 4 Bit CPU"

von Pille (Gast)


Lesenswert?

Ralf Nelle schrieb:
> Thomas Z. schrieb:
>> Nochmal es gibt genügend Beispiele auch hier im Forum wo Eproms als
>> simple Decoder missbraucht werden.
>
> Das wird hier leider mantraartig wiederholt, ohne dass jemand ein
> konkretes Beispiel liefert. Und es ist noch nicht einmal grundsätzlich
> falsch: Mit einen 27C16 funktioniert es, weil die Ausgänge direkt am
> Output Buffer hängen.
>
> Wenn man sich jedoch einmal die Mühe macht und in die Datenblätter
> guckt, stellt man beim Vergleich der Blockdiagramme fest, dass es anders
> als beim 27C16 beim 27C64 und 28C64 zusätzlich ein Data Latch gibt, dass
> zwischen den Ausgängen und dem Output Buffer liegt. Dieses Data Latch
> wird mit der fallenden Flanke von /OE getriggert.
>
> Maik hat die ursprünglich verwendeten vier 27C16 durch ein 28C64
> ersetzt, deshalb funktioniert die Schaltung jetzt auch nicht mehr. Eine
> einfache Lösung wäre, /CE auf Masse zu legen und /OE an den
> Adressdekoder oder - die sauberste Lösung, /OE mit /RD der CPU zu
> verbinden.

Mantraartig wiederholst Du mit Verweis auf eine Annahme von Dir die sich 
auf Zeiten im Datenblatt stützt.
Bitte: Probiere es aus und melde Dich dann wieder, erst dann!

Pille

von Pille (Gast)


Lesenswert?

Patrick L. schrieb:
> Ja und da gibt es auch noch Unterschiede je nach Typ und
> Hersteller.
>
> Ralf Nelle schrieb:
>> Maik hat die ursprünglich verwendeten vier 27C16 durch ein 28C64
>> ersetzt, deshalb funktioniert die Schaltung jetzt auch nicht mehr. Eine
>> einfache Lösung wäre, /CE auf Masse zu legen und /OE an den
>> Adressdekoder oder - die sauberste Lösung, /OE mit /RD der CPU zu
>> verbinden.
>
> Halte ich auch für Sinnvoll, den.
> Microchip hat wohl welche mit transparentem Latch, da funktioniert ein
> Decoder, wobei der Adresslatch bei Intel nicht transparent ist, somit
> würde ein Decoder mit dem EPROM, nicht funktionieren.
>
> Habe jetzt leider nicht die Möglichkeit/Zeit dies in den Datenblätter
> genau nachzulesen, aber ich mag mich an genau so ein Problem erinnern
> als ich damals Apple][ Clones gebaut hatte, das Problem mit dem
> Adresslatch im 27C64 machte Probleme, weil der CE/PE fest auf masse war.
> die einten EPROMS gingen, die anderen eben nicht.

An Deinem Bild steht 87C64 dran, wir können nun auch noch diskutieren 
wie sich der 42C4711 verhält. Worum geht es hier eigentlich, um Recht zu 
behalten? Um die Rolle der Bedeutung oder was eigentlich?

Pille

von Depp (Gast)


Lesenswert?

Das klappt doch alles nicht, weil es sich um ollen DDR Krempel handelt 
.... ;D

von Thomas Z. (usbman)


Lesenswert?

Ralf Nelle schrieb:
> Wenn man sich jedoch einmal die Mühe macht und in die Datenblätter
> guckt, stellt man beim Vergleich der Blockdiagramme fest, dass es anders
> als beim 27C16 beim 27C64 und 28C64 zusätzlich ein Data Latch gibt, dass
> zwischen den Ausgängen und dem Output Buffer liegt.

das ist richtig

> Dieses Data Latch wird mit der fallenden Flanke von /OE getriggert.

das ist falsch. Das Latch ist pegelgesteuert, genau wie bei einem 
74HC573.
Es gibt ja beide Varianten bei Latches. Patrik bezeichnet das als 
transparentes Latch.
Dass die Schaltung von Maik nicht funktioniert liegt an anderen Dingen 
sicher nicht an der Verwendung eines 28C64 anstelle der Original 
27(c)16. Alle üblichen parallel Speicher ob SRAM ROM EPROM EEPROM 
funktionieren was den Zugriff angeht gleich. Es gibt aber spezielle 
Speicher bei denen das anders ist.
vgl auch Atmel 28C64 Datasheet 4.1 Read
The AT28C64B is accessed like a Static RAM. When CE and OE are low and 
WE is high, the  data stored at the memory location determined by the 
address pins is asserted on the outputs. The outputs are put in the 
high-impedance state when either CE or OE is high. This dual line 
control gives designers flexibility in preventing bus contention in 
their systems.

von Ralf Nelle (Gast)


Lesenswert?

Wolfgang R. schrieb:

> Pegelgesteuert und nicht flankengesteuert. Aber vielleicht ist dein "mit
> den falling edges" auch missverständlich ausgedrückt...

Nochmal: Zitat aus dem Microchip-Datenblatt des 28C64A, Seite 6, Chap. 
2.1 Read Mode:
"Data is available at the output [..] after the falling ​edge of /OE"

Mit "falling edge" wird eindeutig die Zustandsänderung(!) von /OE von 
high nach low beschrieben. /CE sollte für die device selection verwendet 
werden, aber es ist kein Muss, deshalb kann er auch fest auf low gesetzt 
werden.

Wenn /OE konstant low ist, werden die input/output buffers nicht vom 
data latch übernommen, weshalb immer 0 am Datenbus ausgegeben wird. Das 
ist genau der Fehler, den Maik beschrieben hat.

von Patrick L. (Firma: S-C-I DATA GbR) (pali64)


Angehängte Dateien:

Lesenswert?

Pille schrieb:
> An Deinem Bild steht 87C64 dran, wir können nun auch noch diskutieren
> wie sich der 42C4711 verhält. Worum geht es hier eigentlich, um Recht zu
> behalten? Um die Rolle der Bedeutung oder was eigentlich?

Genau das Meinte ich je nach Typ.
Der Standard Microchip 27C64 hat kein Latch als beispiel, und würde 
als Decoder funktionieren. Dass meinte ich damit.
Der eine Spricht von gelatchten xxC64 und der andere von ungelatchten 
xxC64.
Beide haben recht, nur redet der eine von Äpfeln und der andere von 
Birnen.
Und jeder will recht haben, (Haben sie ja eigentlich auch) nur reden sie 
aneinander vorbei, und keiner will es einsehen. ;-)

Und der 28C64 hat ein Latch siehe Bild!
Aber nicht nur für die Daten sondern auch für die Adressen!

Und deshalb ist das Schema Neu vom TO somit ein Problem.

: Bearbeitet durch User
von O. R. (oscherischery)


Angehängte Dateien:

Lesenswert?

Ralf Nelle schrieb:

> Das wird hier leider mantraartig wiederholt, ohne dass jemand ein
> konkretes Beispiel liefert. Und es ist noch nicht einmal grundsätzlich
> falsch: Mit einen 27C16 funktioniert es, weil die Ausgänge direkt am
> Output Buffer hängen.

Im Anhang ein aktuelles Beispiel, ein Auszug aus dem Schaltplan des 
Gigatron TTL-Computers https://gigatron.io/ . Gezeigt ist ein 27C1024, 
das ist ein 16 bit-EPROM. In der von mir aufgebauten Version arbeiten 
zwei 27C512 (weil die gerade da waren), und mit 28F512 und 29C512 läuft 
das Ding auch.

Eine weitere Anwendung für EPROMs mit dauerhaft aktivem /CE und /OE sind 
die Zeichengeneratoren in Textterminals, oder auch die klassischen 
Lichteffektgeräte aus den Bastlerzeitschriften der '80er. An den 
Datenbits hängen über Triacs aucht Lampen, an den Adressbits sitzt ein 
Zähler, /OE und /CE sind low.

von Pille (Gast)


Lesenswert?

Patrick L. schrieb:
[..]
> Und der 28C64 hat ein Latch siehe Bild!
> Aber nicht nur für die Daten sondern auch für die Adressen!
>
> Und deshalb ist das Schema Neu vom TO somit ein Problem.

Der 74LS373 ist ein transparent Latch. Ziehe Dir mal dessen Datenblatt 
und schaue Dir die Logiktabelle im Vergleich zum 74LS374 an. Danach 
kannst Du hier wieder auftauchen und erklären wer hier ein Problem hat.

Pille

von Patrick L. (Firma: S-C-I DATA GbR) (pali64)


Lesenswert?

Pille schrieb:
> Der 74LS373 ist ein transparent Latch.
Was hat das mit dem 28C64 zu tun?

der TO hat ja im Schema
(Siehe https://www.mikrocontroller.net/attachment/523318/z80neu.png des 
TO) erwähnte 28C64 verwendet.
Da ist es kein Transparentes Latch sondern ein Flanken-getriggertes im 
28C64.

Somit muss am ein [¯\_] stattfinden damit die Adresse/Daten übernommen 
werden.

: Bearbeitet durch User
von Soul E. (Gast)


Lesenswert?

Patrick L. schrieb:

> Da ist es kein Transparentes Latch sondern ein Flanken-getriggertes im
> 28C64.

Auch der AT28C64 ist vollständig kombinatorisch, zumindest im 
Lesebetrieb. /CE auf Low, /OE auf Low, /WE auf High, und dann nach 
Herzenslust Adressen anlegen und Daten abgreifen. Ohne eine einzige 
Flanke, exakt so wie unter "Operating Modes" im Datenblatt beschrieben. 
"The AT28C64 is accessed like a Static RAM. When CE and OE are low and 
WE is high, the data stored at the memory location determined by the 
address pins is asserted on the outputs."

Und das funktioniert seit mindestens 20 Jahren.

von Pille (Gast)


Lesenswert?

Patrick L. schrieb:
> Pille schrieb:
>> Der 74LS373 ist ein transparent Latch.
> Was hat das mit dem 28C64 zu tun?
>
> der TO hat ja im Schema
> (Siehe https://www.mikrocontroller.net/attachment/523318/z80neu.png des
> TO) erwähnte 28C64 verwendet.
> Da ist es kein Transparentes Latch sondern ein Flanken-getriggertes im
> 28C64.
>
> Somit muss am ein [¯\_] stattfinden damit die Adresse/Daten übernommen
> werden.

Hier: http://web.mit.edu/6.115/www/document/at28c64.pdf

Seite 2 und 3 lesen, mehr mußt Du nicht machen.

Pille

von Jobst M. (jobstens-de)


Angehängte Dateien:

Lesenswert?

/CE liegt dauernd auf GND
/OE wird durch die Taste, die ich oben drücke, auf GND gezogen

DIP-Schalter = Adresse.

Adresse rein, Daten raus. Nix Flanke. Meine Fresse.

Gruß
Jobst

von Patrick L. (Firma: S-C-I DATA GbR) (pali64)


Angehängte Dateien:

Lesenswert?

Jobst M. schrieb:
> Adresse rein, Daten raus. Nix Flanke. Meine Fresse.

Patrick L. schrieb:
> Der Standard Microchip 27C64 hat kein Latch als beispiel, und würde
> als Decoder funktionieren. Dass meinte ich damit.

Apfel = xxC64 (ohne oder transparentem Adresslatch)
Birnen= xxC64 (mit adresslatch)

Kernobst= alle 2XC64 scheinen wohl nach durchlesen einiger Datenblätter 
ein Transparentes oder gar kein Latch zu haben womit "Asche über mein 
Haupt" :-D

Womit all die hier Aufgeführten xxC64 Device als Decoder funktionieren 
sollten. Somit muss ich auch meine Behauptung:
Patrick L. schrieb:
> Somit muss am ein [¯\_] stattfinden damit die Adresse/Daten übernommen
> werden.
Revidieren und halt zugeben dass ich wie gestern geschrieben keine Zeit 
hatte die Datenblätter durchzulesen, und nicht nur die ob geposteten 
Diagramme anschauen.

Ich weis nur dass es da mal ein Problem gab in den APPLE ][ Clons das 
die ohne Latch nicht funktionierten, bis nach einem Upgrad TTL 
Adresslatch Chip's in der Schaltung waren.

Es scheint aber tatsächlich auch welche zu geben die ein 
Flankengetriggertes Adresslatch haben, ob das jetzt xxx32 oder xxxx64 
oder xxx128 waren müsste ich die Unterlagen im Archiv durchwühlen.
Und dazu habe ich weder Lust noch Zeit, und ist jetzt auch Irrelevant.

Somit auf den TO Zurückzukommen, Deine schaltung müsste laut schema 
Funktionieren, also liegt wohl ein anderer Fehler vor.

Sache ist ich habe was Behauptet ohne die Zeit zu nehmen die 
Datenblätter zu Lesen und dafür ein dickes Sorry.
Und damit ist es für mich gegessen, Kernobst ist Lecker ... :-)

: Bearbeitet durch User
von Soul E. (Gast)


Lesenswert?

Patrick L. schrieb:

> Kernobst= alle 2XC64 scheinen wohl nach durchlesen einiger Datenblätter
> ein Transparentes oder gar kein Latch zu haben womit "Asche über mein
> Haupt" :-D

So ist es. Es gibt Sondertypen wie 27C65 oder 87C64, aber von denen war 
hier nicht die Rede.

> Womit all die hier Aufgeführten xxC64 Device als Decoder funktionieren
> sollten.

Sie sollten nicht, sie tun es. Beispiele wurden genügend genannt. Ich 
nutze EPROMs von ca 1984 durchgehend bis heute, und mir ist noch kein 
Exemplar begegnet mit dem das nicht funktioniert.


> Ich weis nur dass es da mal ein Problem gab in den APPLE ][ Clons das
> die ohne Latch nicht funktionierten, bis nach einem Upgrad TTL
> Adresslatch Chip's in der Schaltung waren.

Das muss aber ein ziemlicher Spezialfall gewesen sein. Sowohl der echte 
Apple II als auch die klassischen Taiwan-Clones GTAC-1 (48k) und GTAC-2 
(64k mit Z80) laufen mit stinknormalen EPROMs. Ebenso die IBS Space, die 
Bell&Howell, die Laser und der Basis 108.


> Somit auf den TO Zurückzukommen, Deine schaltung müsste laut schema
> Funktionieren, also liegt wohl ein anderer Fehler vor.

Diese Erkenntnis hatte man schon vor Monaten. Bis dieser Spezi den 
Thread wieder hochholte und sein Halbwissen in die Welt spülte...

von W.S. (Gast)


Lesenswert?

Also Leute,

streitet hier lieber nicht um des Kaisers Bart. Ich würde dem TO ein 
paar kleine Änderungen an seiner Schaltung empfehlen:

1. schließe den Programmspeicher so an, wie es sich die Erfinder des Z80 
gedacht haben: /CE an /MEMRQ * Adressdekoder und /OE an /RD und ggf. 
/RFSH zusätzlich an den Adressdekoder.

2. entferne all den hintereinander geschalteten Krempel vor dem 
Programmspeicher und ersetze das Zeugs durch eine quasi einstufige 
Logik. Zuerst der Dekoder-IC und dann ein 4xNAND, was 4 Ausgänge wieder 
zusammenfaßt und dann noch ein Inverter zum Umdrehen des Ergebnisses. 
Ich halte das für zuviel und zu lahm. OK, bei einem maximalen Takt von 4 
MHz sind diese Bedenken vielleicht weniger interessant, aber trotzdem. 
Ob du nun 2 Stück TTL-IC's dafür ausgibst oder 1..2 andere Stück 
TTL-IC's, ist eigentlich vom Aufwand her schnurz. Allenfalls wäre zu 
überlegen, all diese Logik durch ein kleines CPLD zu ersetzen. Aber das 
nur am Rande, schließlich weiß ich nicht, ob dir das evtl. zu hoch ist.

W.S.

von Maik S. (magic94)


Angehängte Dateien:

Lesenswert?

Ralf Nelle schrieb:
> Kennen wir uns nicht zufällig von einer After Hour? ;-)
>
> Grüße Ralf

exakt :D

Ich hätte das hier alles lesen sollen, bevor ich die Platine für den 
28C64 wieder zerlegt habe. Aber ich werde wohl auch wieder auf 
moderneren Speicher gehen, wenn alles funktioniert.

Ich habe jetzt eine Platine mit 2716ern gelayoutet (nicht 27C16) genau 
wie im original Schaltplan und der Klon startet. Die 7-Segmentanzeigen 
laufen und die Programme lassen sich mit der Bedienung aufrufen und 
verändern. Leider habe ich (wieder) dem 4007 einen falschen Footprint 
zugewiesen, weshalb ich ihn nicht verbauen kann und somit den 
Programmspeicher nicht mit richtigem Inhalt füllen kann. Ich habe aber 
einfach mal zum testen ein Programm per Hand eingegeben. So viele 
Parameter sind das ja nicht.
Momentan erreiche ich aber weder per MIDI noch per Klaviatur eine 
Ansteuerung der Analogplatine.
Ich werde also demnächst nochmal eine neue Platine Layouten - diesmal 
mit 2716 und 28C64.

Bisher konnte ich aber auch bei den 2716ern ein seltsames verhalten mit 
diesem Computer feststellen. Nicht alle Kombinationen funktionieren 
miteinander. In meinem "ersten" Tiracon mit originalem Computer sind 
aktuell 4x Intel M2732 verbaut. Diese Computerplatine ist allerdings 
mittlerweile defekt, da diese nach einer gewissen Zeit Betrieb immer die 
5V Spannung eines neuen Netzteils hat einbrechen lassen und deshalb 
abgestürzt ist.
Ich habe von einem netten Herren eine originale Ersatzplatine spendiert 
bekommen und auf dieser laufen nun ebenfalls die 4x Intel 2732er wieder.
Zwischenzeitlich hatte ich aber weitere 2716er auftreiben können und 
beschrieben:

4x KS573RF2 (russische 2716er)
4x U2716C35 (weiß, DDR)

und aus dem originalen Tiracon mit anfänglich fehlerhaften EPROMs:

2x U2716C35 (lila, DDR)

Diese habe ich dann auf dem originalen Computer getestet:

4x KS573RF2 - läuft nicht
4x U2716C35 weiß - läuft nicht
2x KS573RF2, 2x U2716C35 (lila) - läuft...?!
2x U2716C35 weiß, 2x U2716C35 lila - läuft nicht
2x U2716C35 weiß, 2x KS573RF2 - läuft nicht
(zwischendurch wurde überprüft, ob der Inhalt noch richtig ist)

Ich hatte also unter 5 Kombinationen nur eine funktionierende. Ein 
Wunder, dass dann 4x Intel 2732 laufen. Das gleiche verhalten hat sich 
auch auf der geklonten Computerplatine gezeigt.

Ich werde jetzt noch die restlichen Fehler auf der neuen Computerplatine 
suchen und eine weitere erstellen. Wenn ich diese fertig habe melde ich 
mich wieder.

PS: Ich konnte den UA880D gegen einen Z80 tauschen. Der Code läuft 
darauf offensichtlich auch.

Grüße!

: Bearbeitet durch User
von Pille (Gast)


Lesenswert?

Du kannst bei den Eproms weiter nach einer Ursache forschen aber Du 
kannst es auch lassen. Deine Probleme haben nichts mit den 
Epromvarianten zu tun, oder nur sekundär. Meine Meinung nach hast Du das 
Problem das Speicher gleichzeitig aktiviert werden und Datenlinien 
gegeneinander "kämpfen".

Gruß,
Pille

von Karadur (Gast)


Lesenswert?

Wenn Datalines gegeneinander "kämpfen" sieht man das mit einem Scope, 
weil die Pegel "Treppenförmig" werden.

Nach meinen alten Datenbüchern kann man den Zugriff auf die Eproms 
beschleunigen wenn man nur /OE verwendet. Mit /CS aktiv läuft der 
interne Adressdecoder weiter was einige ns spart aber mehr Strom kostet.

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.