Forum: Platinen 6502 System funktioniert nicht richtig


von Johannes S. (vamogu05)


Angehängte Dateien:

Lesenswert?

Hallo Spezialisten,

ich will eine Hauptplatine aus einem alten Schachcomputer nachbauen. 
Genauer gesagt, ist es eine getunte Platine die statt mit 2MHz mit 16MHz 
läuft. Ich habe mir den Schaltplan (siehe Anhang) durch ausmessen der 
Originalplatine erstellt, mit Kicad ein Platinenlayout entworfen und die 
Platine fertigen lassen.
Unterschiede zur Originalplatine sind nur der Speicherchip. Ich verwende 
einen AS6C62256 
(Datasheet:https://www.mouser.at/datasheet/2/12/AS6C62256_23_March_2016_rev1_2-1288423.pdf) 
statt des BS62LV256PIP55.
Nach dem Einschalten scheint die Platine auch zu funktionieren, aber 
beim Starten des Schachprogramms erkennt man, dass falsche 
Eröffnungszüge ausgegeben werden, die so nicht im ROM gespeichert sind. 
Resetet man das System werden dann meist sofort die richtigen Züge 
gespielt. Aber auch jetzt kommt es immer wieder zu Abstürzen. Erst nach 
ca. 20min. "warmlaufen" der Platine läuft diese einwandfrei. Ich habe 
den Schachcomputer über Nacht rechnen lassen und es kam dann zu keinem 
Absturz mehr.
Ich habe meinen Aufbau nochmals genau mit der Originalplatine verglichen 
und keine Unterschiede erkennen können. Natürlich sind meine 
Leiterbahnen anders geroutet. Habe da den Freerouter bemüht, da ich 
keinerlei Erfahrungen mit manuellem Routing habe. Vielleicht habe ich 
hier gegen wichtige Designregeln verstossen, aber solche 6502-System 
wurden auch schon erfolgreich auf Breadboards aufgebaut.
Ich vermute den Fehler im Timingverhalten der 65C02 (von WDC, Datasheet 
siehe:https://www.westerndesigncenter.com/wdc/documentation/w65c02s.pdf).
Ich habe mir die Datasheets dazu genau angesehen, muss aber gestehen, 
dass ich daraus nicht schlau werde. Meine Vermutung basiert auf der 
Erkenntnis, dass, wenn ich CE vom SRAM gleich direkt an das erste 
Or-Gatter (U3C) hänge es gar nicht vernünftig läuft. Es kommt dann auch 
nach 20min. eingeschaltet sein, zu vermehrten Abstürzen (praktisch 
unspielbar).
Kann mir jemand genau erklären wie die Kommunikation zwischen 65C02 und 
SRAM bzw. VIA 65C22 bzw. EPROM 27C512 genau funktioniert. Ich bilde aus 
den Adressleitungen die CE-Signale für die Speicherbausteine, OE ist 
dabei direkt mit GND verbunden. Habe mir nie Gedanken über irgendwelche 
Gatterlaufzeiten gemacht, weil es in der Originalplatine doch 
einwandfrei funktioniert.
Oder funktioniert es in der Originalplatine deshalb einwandfrei, weil 
hier ein anderer Speicher verwendet wird? Ich habe extra darauf geachtet 
einen vergleichbaren mit selber Zugriffszeit zu bekommen.
Ich verwende EPROMS mit 45ns oder 100ns Zugriffszeit. Im Original wird 
ein EPROM mit 100ns verwendet.

Wie baut man ein 65C02-System, das mit 16MHz (oder höher) getaktet 
werden soll professionell auf?
Warum läuft meine Platine nach 20min. warmlaufen erst einwandfrei? Habe 
ich irgendwas entscheidendes übersehen? Wie kann ich vorgehen um den 
Fehler zu finden?
Als Messequipment steht mir ein Multimeter und ein Rigol Oszilloskop 
(50MHz) zur Verfügung.
Ich bedanke mich im Voraus bei Allen die mir weiterhelfen wollen.

von Bradward B. (Firma: Starfleet) (ltjg_boimler)


Lesenswert?

Ist jetzt nicht was ein Platinen-Schreiner hören will, aber es gibt sehr 
erfolgreich beschleunigte 6502 Computer komplett auf FPGA mit 100 MHz.
Ein Trick dabei ist, den externen RAM auch durch den FPGA zu ersetzen :

https://www.heise.de/news/Retro-Computing-6502-mit-100-MHz-6223820.html

: Bearbeitet durch User
von Rüdiger B. (rbruns)


Lesenswert?

Die ersten Apple II nachbauten hatten das Problem das eine Leitung 
kürzer geroutet war und daher das Timing nicht mehr stimmte.
https://www.youtube.com/watch?v=ZWf8t_mHocM

von Johannes S. (vamogu05)


Lesenswert?

Bradward B. schrieb:
> Ist jetzt nicht was ein Platinen-Schreiner hören will, aber es gibt sehr
> erfolgreich beschleunigte 6502 Computer komplett auf FPGA mit 100 MHz.
> Ein Trick dabei ist, den externen RAM auch durch den FPGA zu ersetzen :
>
> https://www.heise.de/news/Retro-Computing-6502-mit-100-MHz-6223820.html

Ja, danke, die 65F02 kenne ich bereits, aber mir geht es nicht um die 
Geschwindigkeit, sondern ich möchte das Eröffnungsbuch erweitern und 
deshalb muss ich mir eine weitere Platine bauen um das ROM in den 
Bereich ab $2000 zu bringen. Bei der Originalplatine ist der Bereich 
$2000 - $3FFF sowohl vom RAM als auch vom ROM belegt. Also das zweite 
OR-Gatter ist dort nicht in Verwendung!

von Irgend W. (Firma: egal) (irgendwer)


Lesenswert?

Johannes S. schrieb:
> Warum läuft meine Platine nach 20min. warmlaufen erst einwandfrei? Habe
> ich irgendwas entscheidendes übersehen?

Hört sich fast nach schlechten Lötstellen an oder nah Haar-Rissen in 
einer Leiterbahn. Kältespray hilft da ggf. um den betroffenen Bereich 
genauer einzugrenzen.

Wenn es ein Timingproblem wäre, das nur in einem bestimmten 
Temperaturbereich auftritt, dann wäre das ganze schon arg auf Kante 
genäht und eher Zufall, das es überhaupt mal funktioniert. Da wäre dann 
eher ein LA angesagt um sich das Timing, und vor allem die Veränderung 
mit der Temperatur genauer anzusehen.

von Wastl (hartundweichware)


Lesenswert?

Johannes S. schrieb:
> Warum läuft meine Platine nach 20min. warmlaufen erst einwandfrei? Habe
> ich irgendwas entscheidendes übersehen? Wie kann ich vorgehen um den
> Fehler zu finden?

Vielleicht sind gewisse Timings grenzwertig? Ohne diese genauer
betrachtet zu haben sehe ich im Datenblatt des W65C02S nur Timing-
Werte bis 12 MHz angegeben. Wird es darüber hinaus "schwierig"?
Wenn es ein Timing-Problem ist und das System es erlaubt, benutze
doch mal einen Takt mit 8 oder 12 MHz.

Wenn dein System prinzipiell läuft dann sollten wir auch mal
einen Blick auf dein Layout werfen (dürfen) ....

von Johannes S. (vamogu05)


Angehängte Dateien:

Lesenswert?

Wastl schrieb:
> Johannes S. schrieb:
> Wenn es ein Timing-Problem ist und das System es erlaubt, benutze
> doch mal einen Takt mit 8 oder 12 MHz.
>
> Wenn dein System prinzipiell läuft dann sollten wir auch mal
> einen Blick auf dein Layout werfen (dürfen) ....
Hallo Wastl,

ja, ich habe es auch schon mit 8MHz und mit 11MHz probiert. Mit 8MHz 
scheint es noch schlechter zu sein.
Im Anhang ein Kicad-File meines PCB. Achtung, das ist noch das erste 
Layout mit einigen Fehlern die ich direkt auf der Platine behoben habe. 
Der 74HC4020 wurde nie eingebaut, da ich später erst begriffen habe, 
dass das so nicht funktionieren kann. Weiters wurden einige offene 
Eingänge auf Masse gelegt und die R/W-Leitung der CPU auf die VIA 6522 
geführt. Es könnte nur sein, dass ich vielleicht zu dünne Leitungen 
verwendet habe. Die sind im Original etwas breiter.

von Harald K. (kirnbichler)


Angehängte Dateien:

Lesenswert?

Johannes S. schrieb:
> Kann mir jemand genau erklären wie die Kommunikation zwischen 65C02 und
> SRAM bzw. VIA 65C22 bzw. EPROM 27C512 genau funktioniert. Ich bilde aus
> den Adressleitungen die CE-Signale für die Speicherbausteine, OE ist
> dabei direkt mit GND verbunden.

Sinnvoller wäre es, /OE mit R/W zu verbinden.

> Habe mir nie Gedanken über irgendwelche
> Gatterlaufzeiten gemacht, weil es in der Originalplatine doch
> einwandfrei funktioniert.

Und Du meinst, von einer mit 2 MHz getakteten Platine einfach so auf ein 
mit 16 MHz getaktetes Design schließen zu können?

Oder verwendet Deine Schaltung eingefügte Waitstates, um mit langsamen 
Bausteinen wie VIA und EPROM zu kommunizieren?

Sieh dir mal das Bustiming des 6502 an (im Anhang) - oder auf S. 26 
Deines Datenblatts

Bei 16 MHz Takt hast Du eine Zykluszeit (tcyc bzw. tpwl + tpwh) von 62.5 
nsec, und da hat beim Lesezugriff ein Speicher- oder Peripheriebaustein 
gerade mal grob die die Hälfte der Zeit (tacc), um Daten zu liefern, 
also nur etwa 30 nsec. Dein Datenblatt gibt auf S. 25 hierfür schon bei 
14 MHz Takt diesen Wert an.

Dein EPROM ist auch mit 50 nsec viel zu langsam, und wenn Du die 
Gatterlaufzeiten ignorierst, erst recht.

Denn die musst Du zur Zugriffszeit des EPROMs noch dazurechnen.

Und auch zu der des RAMs und aller Peripheriebausteine.


Welchen Sinn hat eigentlich das lustige Pdf-Wimmelbild in Deinem Anhang? 
Ein Schaltplan ist das nicht.

von Wastl (hartundweichware)


Lesenswert?

Weitere Gedanken ...

Was aus dem Schaltplan leider nicht hervorgeht: ist denn SRAM
und EEPROM für 16 MHz ausreichend schnell?

Der Referenztakt PHI2 wird direkt vom Oszillator getrieben,
sollte da nicht zumindest ein Gatter zum Puffern dazwischen?

Gibt es Gründe warum 74Fxx Gatter Verwendung finden? Das sind
Stromfresser und sie geben im High-Level keinen sehr
befriedigenden Pegel für C-MOS Bausteine aus. Ich hätte dort
- sollten Timing-Probleme zu erwarten sein - Gatter aus der
74AC Familie verwendet.

von Bradward B. (Firma: Starfleet) (ltjg_boimler)


Lesenswert?

Auf die schnelle sieht der Schaltplan brauchbar aus, an der 
reset-leitung könnte man aber mal das Timing/Flankensteilheit messen, 
die CPU hat einen PullUp an der Resetleitung, der W65C22 nicht.
Eventuell kann was über die NMI-Leitung vom Connector was reinspucken.

von Wastl (hartundweichware)


Lesenswert?

Wastl schrieb:
> Weitere Gedanken ...

... hat Harald bereits z.T. gebracht während ich geschrieben habe.

von Harald K. (kirnbichler)


Lesenswert?

Wastl schrieb:
> Was aus dem Schaltplan leider nicht hervorgeht: ist denn SRAM
> und EEPROM für 16 MHz ausreichend schnell?

Sind sie nicht, wie ich gerade schrieb. Schon bei 14 MHz beträgt die 
gesamte verfügbare Zugriffszeit gerade mal 30 nsec, und das schließt 
Gatterlaufzeiten der Decodierlogik mit ein.

Mit den erwähnten Bausteinen ist bestenfalls ein Betrieb bei 8 MHz 
möglich, siehe Tabelle 6-3 auf S. 25 des Datenblatts des W65C02S.

Bradward B. schrieb:
> Auf die schnelle sieht der Schaltplan brauchbar aus

Da ist kein Schaltplan, da sind nur nicht miteinander verbundene 
Symbole. Wer Lust hat, Puzzle zu spielen, kann natürlich versuchen, die 
Logik zu suchen, die sich dadrin verbirgt.

von Wastl (hartundweichware)


Lesenswert?

Harald K. schrieb:
> Dein EPROM ist auch mit 50 nsec viel zu langsam

Hab ich was verschlafen? Gibt es 27C512 mit 50 nsec Zugriffszeit?

von H. H. (Gast)


Lesenswert?

Wastl schrieb:
> Gibt es 27C512 mit 50 nsec Zugriffszeit?

Sogar mit 45ns, von Microchip.

von Joachim B. (jar)


Lesenswert?

Johannes S. schrieb:
> Erst nach
> ca. 20min. "warmlaufen" der Platine läuft diese einwandfrei

Kältespray, evtl. mit Hilfe von einem NOP Baustein, hartverdrahtet auf 
einer DIP Fassung und alle Adressleitungen auf richtigem Takteiler 
prüfen.

von Wastl (hartundweichware)


Lesenswert?

H. H. schrieb:
> Sogar mit 45ns

Bei meinen 512ern steht da immer (-100,) -120, -150 .... drauf  ;-)
Flash-EPROMs -70 ....

von Wastl (hartundweichware)


Lesenswert?

Johannes S. schrieb:
> ARB_PCB16_V2.kicad_pro (17,4 KB)

Ein (oder mehrere) einfache *.png Dateien wären hilfreich.
Aber wenn es ein Autorouter-Layout ist brauchen wir wahr-
scheinlich gar nicht erst einen Blick darauf werfen.

Johannes S. schrieb:
> Habe da den Freerouter bemüht

von Bradward B. (Firma: Starfleet) (ltjg_boimler)


Angehängte Dateien:

Lesenswert?

Bei der Stromversorgung sollte man mal die Ausgangsspannungen des U5 
(LM7805)
unter Last messen, es gibt da bezüglich des maximalen Laststromes 
unterschiedliche Sub-Typen.
Die Kondensatoren am U5 scheinen mir für schnelle Flanken auch zu hoch, 
anbei snippet aus dem Datasheet des TI LM7805CT/NOPB .

: Bearbeitet durch User
von Falk B. (falk)


Lesenswert?

Rüdiger B. schrieb:
> Die ersten Apple II nachbauten hatten das Problem das eine Leitung
> kürzer geroutet war und daher das Timing nicht mehr stimmte.
> https://www.youtube.com/watch?v=ZWf8t_mHocM

OMG! Schon wieder Fake News? Was hat DIESES Video mit einer angeblich zu 
kurzen Leitung zu tun? GAR NICHTS! Und auch der Titel des Videos ist 
Unfug, denn es ist kein Glitch, der da produziert wird, sondern wie 
er selber sagt ein nicht ganzzahliger Teiler! Das ist was vollkommen 
anderes!
Und in einer Kiste wie Z80 oder Apple-II sind Laufzeiten auf grund von 
Leitungslängen nie und nimmer ein Problem! Wenn, dann höchstens eines, 
welches durch schlechte Signal- und Masseführung und 
Störungeinkopplungen erzeugt wird!

von Wastl (hartundweichware)


Lesenswert?

Jetzt haben wir Johannes' Schaltung so "schlechtgeredet" dass
er total schockiert ist und sich nicht mehr melden wird.

von Joachim B. (jar)


Lesenswert?

Falk B. schrieb:
> Und in einer Kiste wie Z80 oder Apple-II sind Laufzeiten auf grund von
> Leitungslängen nie und nimmer ein Problem!

nicht mal auf einem handverdrahteten (Speicher- & Porterweiterung) 
PET2001

von Wastl (hartundweichware)


Lesenswert?

Bradward B. schrieb:
> Die Kondensatoren am U5 scheinen mir für schnelle Flanken auch zu hoch,

Ja, der Ausgangs-Kondensator darf nicht beliebig gross sein
sonst leiden die Regeleigenschaften deutlich. Dagegen darf
der Eingangs-Kondensator beliebig gross sein, denn darauf
stützt sich der Spannungsregler. Eine an diesem Punkt
"weiche" Spannung bringt einen Regler schon mal zum Schwingen.

von Harald K. (kirnbichler)


Lesenswert?

Joachim B. schrieb:
> nicht mal auf einem handverdrahteten (Speicher- & Porterweiterung)
> PET2001

Der läuft ja auch mit Gleichstrom (1 MHz), d.h. ein typischer 
Speicherzugriff hat 500 nsec Zeit.
Da sind Platinenlayouts in A4-Größe wie eben beim PET oder auch beim 
Apple II kein Thema. Das war übrigens auch beim IBM PC mit vermeintlich 
höherem Takt von fast 5 MHz kein Thema, denn der brauchte sechs oder 
sogar acht Takte für einen Zyklus, und nicht nur einen, wie der 6502.

Möchte man aber wie der Threadstarter das ganze mit 16 MHz betreiben, 
dann sieht die Geschichte gleich ganz anders aus. Insbesondere, wenn 
CMOS-Bausteine mit ihren doch deutlich knackigeren Flanken verwendet 
werden.

von Johannes S. (vamogu05)


Lesenswert?

Harald K. schrieb:
> Und Du meinst, von einer mit 2 MHz getakteten Platine einfach so auf ein
> mit 16 MHz getaktetes Design schließen zu können?

Nein, meine ich nicht. Wie aus meinem Eingangspost hervorgeht habe ich 
hier eine mit 16MHz getaktete Platine die ich nachbauen möchte.

Harald K. schrieb:
> Oder verwendet Deine Schaltung eingefügte Waitstates, um mit langsamen
> Bausteinen wie VIA und EPROM zu kommunizieren?

Nein verwende ich nicht. Da kenne ich mich nicht damit aus. Mache das 
hobbymässig.

Harald K. schrieb:
> Sieh dir mal das Bustiming des 6502 an (im Anhang) - oder auf S. 26
> Deines Datenblatts
>
> Bei 16 MHz Takt hast Du eine Zykluszeit (tcyc bzw. tpwl + tpwh) von 62.5
> nsec, und da hat beim Lesezugriff ein Speicher- oder Peripheriebaustein
> gerade mal grob die die Hälfte der Zeit (tacc), um Daten zu liefern,
> also nur etwa 30 nsec. Dein Datenblatt gibt auf S. 25 hierfür schon bei
> 14 MHz Takt diesen Wert an.

Ja, das erste was ich nach dem Lesen der Diagramme gedacht habe war "das 
kann gar nicht funktionieren", aber wieso funktioniert es dann in der 
Platine die ich vor mir liegen habe? Der Elektroniker, der diese Platine 
entwickelte, hat auch Platinen mit bis zu 24MHz Taktfrequenz gemacht. 
Die funktionieren alle einwandfrei. Allerdings bei den höher getakteten 
Platinen hat er dann 45ns EPROMs genommen und schnelleren SRAM 
(MT5C6408).

Harald K. schrieb:
> Welchen Sinn hat eigentlich das lustige Pdf-Wimmelbild in Deinem Anhang?
> Ein Schaltplan ist das nicht.

Naja, ich wollte den Schaltplan als pdf-File anhängen. Da sieht man halt 
nur eine Vorschau. Wenn man ihn downloaded sieht man deutlich mehr.
Kicad kommt mit dieser Art von Schaltplan sehr gut zurecht. Aber gut zu 
wissen, dass es üblich ist das anders zu machen. Danke für den Hinweis.

Wastl schrieb:
> Was aus dem Schaltplan leider nicht hervorgeht: ist denn SRAM
> und EEPROM für 16 MHz ausreichend schnell?

Das weiß ich eben nicht. Ich habe versucht einen baugleichen Typ zu 
finden wie auf der Platine die eben einwandfrei mit 16MHz läuft. Kann 
sein, dass der Entwickler dieser Platine einen SRAM genommen hat der 
deutlich schneller ist als auf dem Baustein draufsteht. In der 
funktionierenden Platine arbeitet ein BS62LV256PIP55, ich verwende einen 
AS6C62256PCN mit 55ns Zugriffszeit.

Wastl schrieb:
> Der Referenztakt PHI2 wird direkt vom Oszillator getrieben,
> sollte da nicht zumindest ein Gatter zum Puffern dazwischen?

Ich glaube im Datenblatt der W65C02S gelesen zu haben, dass das direkt 
möglich ist.

Wastl schrieb:
> Gibt es Gründe warum 74Fxx Gatter Verwendung finden? Das sind
> Stromfresser und sie geben im High-Level keinen sehr
> befriedigenden Pegel für C-MOS Bausteine aus. Ich hätte dort
> - sollten Timing-Probleme zu erwarten sein - Gatter aus der
> 74AC Familie verwendet.

Ok, Danke für den Hinweis. Ich habe nur gesehen dass die F-Gatter 
schneller sind als die normalen LS-Gatter. kenne mich da nicht wirklich 
aus und habe die genommen die auf der funktionierenden Platine verbaut 
sind. Gut zu wissen, dass es geeignetere gibt. Werde ich mir beschaffen 
und ausprobieren.

Bradward B. schrieb:
> Auf die schnelle sieht der Schaltplan brauchbar aus, an der
> reset-leitung könnte man aber mal das Timing/Flankensteilheit messen,
> die CPU hat einen PullUp an der Resetleitung, der W65C22 nicht.
> Eventuell kann was über die NMI-Leitung vom Connector was reinspucken.

Die VIA W65S22 ist über die gleiche RESET-Leitung verbunden wie die CPU

Harald K. schrieb:
> Mit den erwähnten Bausteinen ist bestenfalls ein Betrieb bei 8 MHz
> möglich, siehe Tabelle 6-3 auf S. 25 des Datenblatts des W65C02S.

Ja, das war auch meine erste, laienhafte Meinung zu diesem Thema. Das 
kann ja gar nicht funktionieren. Wieso habe ich aber dann eine Platine 
hier vor mir liegen die schon jahrelang einwandfrei läuft?
Ich kenne mich mit diesen Timing-Diagrammen nicht gut aus, darum glaube 
ich etwas falsch daraus abzuleiten. Wie funktioniert so ein Read-Vorgang 
tatsächlich? Bei fallender Flanke von PHI2 wird die Adresse auf den Bus 
gelegt, danach dauert es 10ns bis die Adresse gültig ist. Stimmt das 
soweit? Wann wird mein SRAM jetzt angesprochen? CE vom SRAM wird über 
das Or-Gatter erzeugt. Wie lange dauert das? Wann sind die Daten des 
SRAM dann gültig und werden diese dann mit der nächsten fallenden Flanke 
von PHI2 in die CPU eingelesen. Ihr seht schon, da kenne ich mich nicht 
wirklich gut aus. Vielleicht kann mal jemand so nett sein und so einen 
Vorgang detailliert beschreiben.

Joachim B. schrieb:
> Kältespray, evtl. mit Hilfe von einem NOP Baustein, hartverdrahtet auf
> einer DIP Fassung und alle Adressleitungen auf richtigem Takteiler
> prüfen.

Danke für Deinen Beitrag. Muss ich mir mal genauer überlegen. habe 
mittlerweile eine zweite Platine mit genau demselben Problem aufgebaut. 
Es dürfte zumindest kein mechanisches Problem, wie kalte Lötstelle etc. 
sein.

Wastl schrieb:
> Ein (oder mehrere) einfache *.png Dateien wären hilfreich.
> Aber wenn es ein Autorouter-Layout ist brauchen wir wahr-
> scheinlich gar nicht erst einen Blick darauf werfen.

Ok, kann ich gerne nachliefern. Dadurch, dass ich nicht weiß was 
wirklich wichtig ist beim Routen habe ich mir gedacht Freerouter macht 
es auf jeden Fall besser als ich. Ich weiß nur, dass man die 
Power-Signale breiter machen sollte, so um 1,5mm. Eine Groundplane mache 
ich immer zum Schluss. Aber wie breit die Adressleitungen bzw. 
Datenleitungen sein müssen weiß ich nicht genau und wie da die 
Leitungsführung sein sollte. Wo kann ich weiterführende Informationen 
finden um später mal selbst Platinen routen zu können. Kann mir jemand 
paar hilfreiche Tipps dazu geben?

Bradward B. schrieb:
> Bei der Stromversorgung sollte man mal die Ausgangsspannungen des U5
> (LM7805)
> unter Last messen, es gibt da bezüglich des maximalen Laststromes
> unterschiedliche Sub-Typen.
> Die Kondensatoren am U5 scheinen mir für schnelle Flanken auch zu hoch,
> anbei snippet aus dem Datasheet des TI LM7805CT/NOPB .

Ok, Danke, werde ich mir ansehen. Ich verwende einen 78S05CV. Das ist 
derselbe Typ wie in der funktionieren Platine. Den Ausgangskondensator 
werde ich mal deutlich verkleinern.

Wastl schrieb:
> Jetzt haben wir Johannes' Schaltung so "schlechtgeredet" dass
> er total schockiert ist und sich nicht mehr melden wird.

Nein, keine Sorge, es ist ja nicht meine Schaltung. Ich könnte das noch 
gar nicht so entwickeln. Wie eingangs erwähnt habe ich hier eine Platine 
der ich diese Schaltung entnommen habe und die einwandfrei funktioniert. 
Ich möchte diese nur nachbauen und etwas modifizieren. Es ist natürlich 
gut möglich, dass ich etwas übersehen habe beim Ausmessen der Platine. 
Habe das allerdings mittlerweile schon mehrmals nachgeprüft.
Bin nach wie vor für jede Hilfe dankbar! Da bei uns sehr heißes Wetter 
ist nutze ich natürlich diese Stunden um mich etwas abzulenken und 
antworte dadurch erst wieder am Abend :-)

Wastl schrieb:
> a, der Ausgangs-Kondensator darf nicht beliebig gross sein
> sonst leiden die Regeleigenschaften deutlich. Dagegen darf
> der Eingangs-Kondensator beliebig gross sein, denn darauf
> stützt sich der Spannungsregler. Eine an diesem Punkt
> "weiche" Spannung bringt einen Regler schon mal zum Schwingen.

Danke Wastl, werde heute Abend mal ein wenig experimentieren und dann 
berichten.

von Johannes S. (vamogu05)


Lesenswert?

Harald K. schrieb:
> Joachim B. schrieb:
>> nicht mal auf einem handverdrahteten (Speicher- & Porterweiterung)
>> PET2001
>
> Der läuft ja auch mit Gleichstrom (1 MHz), d.h. ein typischer
> Speicherzugriff hat 500 nsec Zeit.
> Da sind Platinenlayouts in A4-Größe wie eben beim PET oder auch beim
> Apple II kein Thema. Das war übrigens auch beim IBM PC mit vermeintlich
> höherem Takt von fast 5 MHz kein Thema, denn der brauchte sechs oder
> sogar acht Takte für einen Zyklus, und nicht nur einen, wie der 6502.
>
> Möchte man aber wie der Threadstarter das ganze mit 16 MHz betreiben,
> dann sieht die Geschichte gleich ganz anders aus. Insbesondere, wenn
> CMOS-Bausteine mit ihren doch deutlich knackigeren Flanken verwendet
> werden.
Hallo Harald,

bitte nicht falsch verstehen: Ich möchte nicht eine Platine mit 16MHz 
W65C02-System aufbauen, sondern ich habe hier eine Platine die eben mit 
den angegebenen Bausteinen wie CPU, VIA, F-Gatter SRAM BS62LV256PIP55 
einwandfrei läuft. Den Schaltplan habe ich durch Ausmessen der Platine 
gemacht. Ich habe mir nun diese Platine auf Grund dieses Schaltplans 
fertigen lassen, aufgebaut und eben die o.a. Probleme und suche hier 
Hilfe diese zu beseitigen.

von Wastl (hartundweichware)


Lesenswert?

Johannes S. schrieb:
> Danke Wastl, werde heute Abend mal ein wenig experimentieren und dann
> berichten.

Immerhin zeigst du jetzt dass du dialogfähig bist, das unterscheidet
dich von vielen anderen Postern hier. Dass es zu einem lauffähigen
und zuverlässigen 16MHz-Sstem noch weit ist wirst du hoffentlich
schon verinnerlicht haben. Sagen wir mal: für 16 MHz wird es nicht
reichen da das ROM (EEPROM) nicht beliebig schnell werden kann.
Vielleicht wird es für 8 MHz reichen .... und das Layout wird
sicher auch ein Gegenstand der Diskussion werden (sein müssen).

von Falk B. (falk)


Lesenswert?

Harald K. schrieb:
> Möchte man aber wie der Threadstarter das ganze mit 16 MHz betreiben,
> dann sieht die Geschichte gleich ganz anders aus. Insbesondere, wenn
> CMOS-Bausteine mit ihren doch deutlich knackigeren Flanken verwendet
> werden.

Aber auch das sind keine Laufzeitprobleme sondern Signalführungsproblem!

16 MHz sind 62,5ns Periodendauer! Das entspricht einer Laufzeit von 
12,5m Kabel mit 5ns/m! Selbst wenn wir nur 10% der Zeit als kritisch 
betrachten, sind das immer noch 1,2m, die man auf so einem Brett als 
Einzelleitung kaum erreicht, schon gar nicht als Differenz zwischen zwei 
kritischen Signalen!

von Bradward B. (Firma: Starfleet) (ltjg_boimler)


Lesenswert?

> Ok, Danke, werde ich mir ansehen. Ich verwende einen 78S05CV.

2 Ampere Typ - könnte für die IC reichen, wobei ich die 
Leistungsaufnahme der Komponenten nur grob überschlagen habe.
Die 8xLED sind aber schon "halbe Scheinwerfer", bei "modernen" LED 
sollte man mit deutlich weniger Strom (und damit höheren 
Vorwiderständen) für diese auskommen. Wobei nir nicht bekannt ist, 
welche Schaltung hinter J2 folgt.

von Joachim B. (jar)


Lesenswert?

Johannes S. schrieb:
> bitte nicht falsch verstehen

wie soll man es denn verstehen?

1.
Johannes S. schrieb:
> Unterschiede zur Originalplatine sind nur der Speicherchip
Johannes S. schrieb:
> ich will eine Hauptplatine aus einem alten Schachcomputer nachbauen

und der hat SMD?

Johannes S. schrieb:
> Wie aus meinem Eingangspost hervorgeht habe ich
> hier eine mit 16MHz getaktete Platine die ich nachbauen möchte.

Bild, ICs lesbar?

Es gibt nicht nur 74-F sondern auch S AS ALS AC ACT usw. such dir die 
passenden in Spannung und Schaltzeit, kann ein Glücksspiel werden und 
manchmal mit Erfolg, aber da du ja auf einen thermischen Fehler 
bestehst, Kältespray und Föhn.

von Johannes S. (vamogu05)


Angehängte Dateien:

Lesenswert?

Wastl schrieb:
> Wenn dein System prinzipiell läuft dann sollten wir auch mal
> einen Blick auf dein Layout werfen (dürfen) ....


Anbei zwei Fotos meines Layouts dieser Platine. Bitte beachten: das ist 
das erste Layout wie die Platinen gefertigt wurden. Offene Eingänge habe 
ich auf der Platine direkt mit Drahtbrücken auf GND gelegt. den 74HC4020 
verwende ich nicht, da ich später erst erkannt habe, dass das nicht 
funktionieren kann.
Bitte um Mitteilung wie man das professionell macht. Welche Dinge sind 
besonders wichtig beim Layout solcher Systeme?

Danke für die rege Beteiligung mir zu helfen!

von Joachim B. (jar)


Lesenswert?

mir fiel noch ein das es bei dynamischen Steinen auch um den PI 0 bzw PI 
1 Takt geht der nach den stabilen Daten passend den Pegel wechseln muß.

Als ich selber Erweiterungen mit einer VIA 65C22 an den LH5801 (Sharp) 
ging, mußte ich manchmal den Takt un eine HC Gatterlaufzeit verzögern 
bis es passte, aber auch da waren 1,3MHz echt lahm, nur so ein Gedanke.

von Johannes S. (vamogu05)


Lesenswert?

Joachim B. schrieb:
> und der hat SMD?

Nur die Koppelkondensatoren sind SMD und der 74F02. Alle anderen 
Bauteile sind ebenfalls bedrahtet bzw. DIP.

Joachim B. schrieb:
> Bild, ICs lesbar?

Ja, alle ICs sind einwandfrei lesbar und habe ich bereits benannt.

Joachim B. schrieb:
> aber da du ja auf einen thermischen Fehler
> bestehst, Kältespray und Föhn.

Nein, ich bestehe nicht auf einen thermischen Fehler, ich erkenne nur, 
dass es nach 20min. funktioniert. Warum, weiß ich leider nicht.
Vielleicht bringt das Layout Klarheit warum sich das System so verhält.
Natürlich mache ich mir auch Gedanken dazu und habe tagelang rumprobiert 
den Fehler zu finden, leider ohne Erfolg. Ihr habt viel mehr Erfahrung 
mit solchen Aufbauten, darum denke ich, dass Ihr mir dabei helfen könnt 
den Fehler zu finden.

von Johannes S. (vamogu05)


Lesenswert?

Bradward B. schrieb:
> Die 8xLED sind aber schon "halbe Scheinwerfer", bei "modernen" LED
> sollte man mit deutlich weniger Strom (und damit höheren
> Vorwiderständen) für diese auskommen. Wobei nir nicht bekannt ist,
> welche Schaltung hinter J2 folgt.

Es handelt sich um einen alten Schachcomputer aus Ende 70 Anfang 80. 
Damals wurden noch 20mA LEDs verwendet. Hinter J2 verbirgt sich die LED 
bzw. Tastenmatrix der einzelnen Felder und noch acht Bedienungstasten.

von Johannes S. (vamogu05)


Lesenswert?

Johannes S. schrieb:
> Wastl schrieb:
>> a, der Ausgangs-Kondensator darf nicht beliebig gross sein
>> sonst leiden die Regeleigenschaften deutlich. Dagegen darf
>> der Eingangs-Kondensator beliebig gross sein, denn darauf
>> stützt sich der Spannungsregler. Eine an diesem Punkt
>> "weiche" Spannung bringt einen Regler schon mal zum Schwingen.
>
> Danke Wastl, werde heute Abend mal ein wenig experimentieren und dann
> berichten.

Ich habe nun den 330µF Elko durch einen 10µF ersetzt, leider mit dem 
gleichen Fehlerbild. Das 16MHz-System läuft nach ca. 20min. einwandfrei! 
Vorher scheint es so, als ob er zeitweise falsche Werte aus dem RAM 
lesen würde, da sich gewisse Funktionen des Schachcomputers immer wieder 
selbst einschalten und sich nicht ausschalten lassen. Wie z.B. die 
Anzeige des besten Zugs während seines Rechenvorgangs.

von Wastl (hartundweichware)


Lesenswert?

Johannes S. schrieb:
> Das 16MHz-System läuft nach ca. 20min. einwandfrei!

Reiner Zufall dass es dann funktioniert.
Solange die Speicherzugriffszeiten nicht penibel eingehalten
werden brauchst du nicht weiter experimentieren. Das ist ein
entscheidendes Kriterium. Nimmst du irgendein anderes EEPROM
und/oder SRAM, schon kann es nicht mehr funktionieren.

Das Elko-Dimensionierungs-Thema ist ein untergeordnetes,
sollte aber trotzdem nicht total unterschlagen werden.

von Johannes S. (vamogu05)


Lesenswert?

Das heisst ich brauche schnelleres RAM und EEPROM. Das ist schon mal gut 
zu wissen. SRAM habe ich hier mit 15ns Zugriffszeit. ROM muss ich erst 
schauen ob ich vielleicht was pinkompatibles finde.
Danke schon mal für diesen Input.
Hat sich schon jemand das Layout angesehen und da schwere Mängel/Fehler 
entdeck? Ich möchte demnächst beginnen eine neue Platine zu routen und 
dabei gleich die Leiterbahnführung optimieren.

von Bradward B. (Firma: Starfleet) (ltjg_boimler)


Lesenswert?

Johannes S. schrieb:
> Das heisst ich brauche schnelleres RAM und EEPROM.

Nicht unbedingt, IMHO bietet auch eine 6502 CPU die Möglichkeit 
Waitstates einzuschieben und den Zugriff für langsame Busteilnehmer zu 
verlängern.

https://hackaday.io/project/174128-db6502/log/187116-wait-states-explained-14mhz-part-ii

 Falls das langsame device nicht selbst eine entsprechende Leitung hat, 
musste extra logic an den RDY-Eingang der CPU stricken.

http://6502.org/mini-projects/rdy-generation/index.html

Wenn es nur um den Speicher für die Eröffnungsbibliothek geht sollte die 
Gesamt leistung nicht sonderlich beeinträchtigt werden.

BTW: In welcher liegt die Eröffnungsbibliothek vor ? Ist das 
ausführbarer Code oder ist das lediglich ein Parametersatz der wie eine 
Tabelle (vom Code im RAM) ausgelesen wird?

Es gibt auch Architekturen bei denen der ROM-Inhalt aus 
Geschwindigkeitsgründen vor der Ausführung in den RAM kopiert wird.

von Vanye R. (vanye_rijan)


Lesenswert?

> Solange die Speicherzugriffszeiten nicht penibel eingehalten
> werden brauchst du nicht weiter experimentieren. Das ist ein
> entscheidendes Kriterium.

Das ist richtig solange er bei 16Mhz bleibt. Aber ich meine gelesen
zu haben das die Probleme auch bei geringeren Taktfrequenzen bestehen
bleiben. Das spricht dann noch zusaetzlich fuer ernste Layoutprobleme
weil auch eine langsam getaktete schnelle MCU dieselben schnellen 
Flanken behaelt und daher dieselben Ansprueche an das Layout stellt.

Vermutlich klingeln die Signale da ueberall lustig rum.

Ist natuerlich nachtraeglich Pfusch, aber da man die Platine sonst eh
nur in die Tonne werfen kann, wuerde ich mal alle Daten/Adressleitungen
an der MCU auftrennen und da einen 100R in 0402 drueber loeten.

Vanye

von Soul E. (soul_eye)


Lesenswert?

Rüdiger B. schrieb:
> Die ersten Apple II nachbauten hatten das Problem das eine Leitung
> kürzer geroutet war und daher das Timing nicht mehr stimmte.
> https://www.youtube.com/watch?v=ZWf8t_mHocM

Der clock stretch hat nichts mit zu kurzen Leitungen auf der Platine zu 
tun. "line" meint eine Zeile des Fernsehbildes.

Beim Analogfernsehen gibt es zwei Takte, die zwar phasenverkoppelt sind, 
aber die kein ganzzahliges Teilerverhältnis haben. Das ist zum einen die 
Farbe mit 3.579545 MHz, und zum anderen die Synchronisation mit 15.734 
kHz. Der Apple II gewinnt seinen Takt aus einem 14,318 MHz-Quarz. Diese 
Frequenz geteilt durch vier ergibt den Color Burst, den 
Farbreferenzträger. Durch das Teilen hat man vier Impulse, die zum Burst 
um -90°, +90°, 0° und 180° phasenverschoben sind. Das sind die vier 
Farben.

Jetzt muss man aber noch auf die 63,557 µs Zeilenlänge kommen, also die 
15,734 kHz. Durch reines Abzählen von 3,579 MHz Takten funktioniert das 
nicht, daher müssen einzelne Pulse verlängert werden. Dazu dient der 
clock stretch.

Das ist also kein Fehler, sondern ein ziemlich genialer Schachzug, um 
das gesamte Timing der Maschine auf einem einzelnen Takt aufzubauen. Die 
meisten Computer aus der Ära hatten zwei Quarze. Einen für den CPU-Takt 
und einen für die Fernseh-Farbe.

von Johannes S. (vamogu05)


Lesenswert?

Bradward B. schrieb:
> Nicht unbedingt, IMHO bietet auch eine 6502 CPU die Möglichkeit
> Waitstates einzuschieben und den Zugriff für langsame Busteilnehmer zu
> verlängern.
>
> 
https://hackaday.io/project/174128-db6502/log/187116-wait-states-explained-14mhz-part-ii
>
>  Falls das langsame device nicht selbst eine entsprechende Leitung hat,
> musste extra logic an den RDY-Eingang der CPU stricken.
>
> http://6502.org/mini-projects/rdy-generation/index.html

Danke Bradward, genau so etwas schwebt mir vor. Ich werde mir das heute 
mal genau durchlesen. Das wäre sicher die optimalste Lösung, die Platine 
muss ich sowieso neu machen.

Bradward B. schrieb:
> Wenn es nur um den Speicher für die Eröffnungsbibliothek geht sollte die
> Gesamt leistung nicht sonderlich beeinträchtigt werden.
>
> BTW: In welcher liegt die Eröffnungsbibliothek vor ? Ist das
> ausführbarer Code oder ist das lediglich ein Parametersatz der wie eine
> Tabelle (vom Code im RAM) ausgelesen wird?

Die 16MHz-Platine die mir vorliegt und die einwandfrei funktioniert, hat 
einen entscheidenden Nachteil. Der Speicherbereich von $2000 - $3FFF 
wird sowohl vom RAM als auch vom ROM verwendet, ist praktisch also nicht 
verwendbar. Darum will ich diese Platine nachbauen und diesen Bereich 
vom SRAM ausblenden indem ich zusätzlich noch die Adressleitung A13 zur 
Codierung des CE-Eingangs des RAMs heranziehe. Also sobald auch nur eine 
Leitung A15, A14 oder A13 High-Pegel aufweist bleibt CE ebenfalls High. 
Das EPROM hingegen bekommt das Signal am CE-Eingang über ein Nand-Gatter 
deren Eingänge mit A14 und A13 belegt sind.
Die OE-Eingänge liegen beide auf GND. Dann habe ich die Möglichkeit 
große Eröffnungsbücher in den Speicherbereich von $2000 - 7FFF zu legen. 
Von $8000-$9FFF liegt die VIA 65C22. Von $A000 - $FFFF das übrige EPROM.
Das Eröffnungsbuch ist nur ein Datensatz im EPROM.

Vanye R. schrieb:
> Aber ich meine gelesen
> zu haben das die Probleme auch bei geringeren Taktfrequenzen bestehen
> bleiben. Das spricht dann noch zusaetzlich fuer ernste Layoutprobleme
> weil auch eine langsam getaktete schnelle MCU dieselben schnellen
> Flanken behaelt und daher dieselben Ansprueche an das Layout stellt.

Ja, auch bei 8MHz habe ich Probleme. Da tritt auch nach längerer 
Wartezeit kein stabiler Betrieb auf. Man kann zwar spielen, aber 
zwischendurch kommt es immer wieder zu kurzen Störungen (Tonausgaben, 
wie wenn eine Figur vom Brett genommen wurde) bis hin zu Abstürzen. Bei 
16MHz kann ich nach einer Einschaltdauer von ca. 20min. ganz normal 
spielen. Es kommt auch nach längerer Rechendauer (über Nacht) zumkeinem 
Absturz.
Was mich allerdings noch verwundert ist folgender Umstand:
Wenn ich den Schachcomputer das erste Mal mit Strom versorge, spielt er 
Züge die nicht in der Eröffnungsbibliothek des Programms gespeichert 
sind. Auch zeigt er mir während des Rechenvorgangs seinen bis dahin 
gefundenen besten Zug an. Das sollte er erst tun, sobald ich diese 
Funktion eingeschaltet habe. Die ersten zwanzig Minuten nach dem 
Einschalten kann ich diese Funktion auch nicht wieder ausschalten, da 
sie sich sofort wieder einschaltet. Ich nehme an, dass da falsche Werte 
aus dem RAM gelesen werden.

von Johannes S. (vamogu05)


Lesenswert?

Vanye R. schrieb:
> Das spricht dann noch zusaetzlich fuer ernste Layoutprobleme
> weil auch eine langsam getaktete schnelle MCU dieselben schnellen
> Flanken behaelt und daher dieselben Ansprueche an das Layout stellt.
>
> Vermutlich klingeln die Signale da ueberall lustig rum.

Das ist durchaus möglich. Weiter oben habe ich Bilder von meinem Layout 
angehängt. Kannst du bitte mal drüber sehen und mir erklären was ich 
besser machen könnte? Ich habe mit manuellem Routing absolut keine 
Erfahrung.

Vanye R. schrieb:
> Ist natuerlich nachtraeglich Pfusch, aber da man die Platine sonst eh
> nur in die Tonne werfen kann, wuerde ich mal alle Daten/Adressleitungen
> an der MCU auftrennen und da einen 100R in 0402 drueber loeten.

Das werde ich mir überlegen. Ist doch ein ziemlicher Aufwand. Trotzdem 
Danke für diesen Tipp.

von Thomas W. (dbstw)


Lesenswert?

So richtig systematische Fehlersuche sehe ich nicht:
- Zeige bitte mal die Memory-Map fuer die Maschine. Prosa ist nicht so 
mein Ding, und dann kann man auch die CS-Logik pruefen.
- Wenn Deine Aussage "Das System laeuft nach 20 Minuten Uptime 
einwandfrei" wahr ist, dann hast Du thermisches Problem. Die Methoden 
sind dann Kaeltespray und Foehn.
- 16MHz fuer die 6502-CPU ziemlich viel, insbesondere durch die 
Besonderheit beim Speicherzugriff bei Phi1/2 (deswegen war ja der Apple 
][ und die CBM-Maschinen relativ schnell trotz "nur" 1MHz Taktbus). Ich 
wuerde versuchen, mit 1-2 Mhz das System stabil laufen zu bringen. Und 
dann spaeter ueberlegen, ob ich das RDY-Signal brauche/benutze.
- Was fuer Messgeraete hast Du? Wenn Du auf 1MHz runtergehst, kannst Du 
mit einem 10EUR-Logikanalyzer (z.B. 
https://www.ebay.de/itm/255283244102) den Bits beim Klickern zugucken.
- Mir ist nicht klar, welches das Orginal-Geraet, der 16MHz-Nachbau und 
Dein eigener Nachbau sind.
- Software-Fehler sind ausgeschlossen?

Th. (der Sargon II auf einer 8Mhz-Z80 laufen laesst)

: Bearbeitet durch User
von H. H. (Gast)


Lesenswert?

Thomas W. schrieb:
> - 16MHz fuer die 6502-CPU ziemlich viel,

Insbesondere wenn sie nur für 14MHz spezifiziert ist.

Aber es scheint sich ja um ein generelles Timingproblem zu handeln.

von Johannes S. (vamogu05)


Lesenswert?

Thomas W. schrieb:
> So richtig systematische Fehlersuche sehe ich nicht:
> - Zeige bitte mal die Memory-Map fuer die Maschine. Prosa ist nicht so
> mein Ding, und dann kann man auch die CS-Logik pruefen.

Hi Thomas,

$A000 - $FFFF  ROM (EPROM W27C512-45Z)
$8000 - $9FFF  VIA W65C22S (Western Design Center)
$2000 - $7FFF  ROM (EPROM W27C512-45Z siehe oben)
$0000 - $1FFF  RAM (SRAM As6C62256 55ns)

Thomas W. schrieb:
> - Wenn Deine Aussage "Das System laeuft nach 20 Minuten Uptime
> einwandfrei" wahr ist, dann hast Du thermisches Problem. Die Methoden
> sind dann Kaeltespray und Foehn.

Ja, kann durchaus sein, aber vermutlich durch unterdimensionierten / 
falsch dimensionierten Baustein, kein mechanisches Problem durch kalte 
Lötstelle oder ähnliches, da eine zweite Platine genau das selbe 
Verhalten zeigt.

Thomas W. schrieb:
> - 16MHz fuer die 6502-CPU ziemlich viel, insbesondere durch die
> Besonderheit beim Speicherzugriff bei Phi1/2 (deswegen war ja der Apple
> ][ und die CBM-Maschinen relativ schnell trotz "nur" 1MHz Taktbus).

Es handelt sich nicht um die NMOS-Variante sondern um die neuere, 
modernere CMOS-Variante von Western Design Center (W65C02S) die sogar 
mit 24MHz noch stabil laufen kann.

Thomas W. schrieb:
> - Was fuer Messgeraete hast Du? Wenn Du auf 1MHz runtergehst, kannst Du
> mit einem 10EUR-Logikanalyzer (z.B.
> https://www.ebay.de/itm/255283244102) den Bits beim Klickern zugucken.

Habe Multimeter und ein 50MHz Rigol Oszilloskop. Gute Idee mit dem 
Logikanalyzer. Kann man immer brauchen. Danke für den Tipp.

Thomas W. schrieb:
> Mir ist nicht klar, welches das Orginal-Geraet, der 16MHz-Nachbau und
> Dein eigener Nachbau sind.

Die Original-Platinde von Applied Concepts aus den späten 70ern 
verwendet eine 6502 CPU, VIA 6522, vier 2114 static Rams, und hat einen 
Printanschluss für externe Module in denen ein EPROM mit dem Programm 
vorhanden ist. Diese Platine läuft mit CPU-Takt von 2MHz. Dieser Takt 
wird durch zwei geteilt und tastet dann die VIA 6522. Um diese Platine 
geht es nicht. Ein Elektroniker hat einen Nachbau entwickelt mit der 
W65C02S und o.a. Bauteilen. Das Rom befindet sich schon auf dieser 
Platine. Diese Platine bezeichne ich in diesem Thread als "Original" da 
diese einwandfrei läuft.
Tut mir leid wenn's hier zu Missverständnissen gekommen ist.

Thomas W. schrieb:
> Software-Fehler sind ausgeschlossen?

Ja, da gegengecheckt in der "Original-Platine"

von Harald K. (kirnbichler)


Lesenswert?

Johannes S. schrieb:
> Ein Elektroniker hat einen Nachbau entwickelt mit der
> W65C02S und o.a. Bauteilen.

Dieser Nachbau ist halt Pfusch, weil er sich nicht an die 
Spezifikationen der Bauteile hält, sondern sie alle recht gründlich 
übertaktet. Das kann gutgehen, muss es aber nicht.

Sowohl die CPU als auch die VIA sind für maximal 14 MHz spezifiziert, 
Dein "Elektroniker" betreibt sie mit 16 MHz. Das ist jetzt nicht 
besonders viel, da aber auch das EPROM und das SRAM weit jenseits der 
spezifizierten Parameter betrieben werden, wird das ganze um so 
unzuverlässiger.

Wenn ein Hersteller eines Bausteines eine Zugriffszeit spezifiziert, 
heißt das, daß der Baustein diese bei spezifizierte Umgebungsbedingungen 
(saubere Versorgungsspannung, gesamter Temperaturbereich) einhält. In 
deutlich engeren Bereichen (Temperatur) kann der Baustein auch viel 
schneller sein. Das ist das, was Dein "Elektroniker" als Übertakter 
ausgenutzt hat, genauso übrigens wie es auch die PC-Übertakter machen, 
die dazu ihre CPUs teilweise sogar mit flüssigem Stickstoff kühlen.

Sowas kann man machen, aber wenn man ein stabil und zuverlässiges 
Gerät haben will, macht man das eben nicht. Da hält man sich an die 
Angaben aus dem Datenblatt, und dann funktioniert das Gerät auch bei 30° 
Raumtemperatur, und nicht nur bei 18°.

Wie schon ad nauseam wiederholt, die insgesamt zur Verfügung stehende 
Zeit für einen Speicher- oder Peripheriezugriff beträgt gerade mal 30 
nsec, wenn da nicht sehr sauber bei der Adressdecodierung gearbeitet 
wird, wenn die Spannungsversorgung nicht sehr stabil ausgeführt ist, mit 
wohlplazierten Abblockkondensatoren und ausreichend breiten 
Leiterbahnen, wenn die Bausteine für die Adressdecodierung ungünstig 
ausgewählt sind, dann funktioniert so ein Übertaktermonster halt 
irgendwann gar nicht mehr. Wenn Du Deinen Aufbau aktiv kühlst 
(Kühlschrank?), dann könnte er vermutlich etwas stabiler werkeln.

Was aber ist der Sinn des eigentlichen Unterfangens? Ein steinaltes 
Schachcomputerdesign schneller zu machen?

Wozu? Um ebenfalls steinalte für einen aus heutiger Sicht sehr 
ineffizienten Prozessor geschriebene Software etwas schneller laufen zu 
lassen?

von H. H. (Gast)


Lesenswert?

Was soll das /OE von RAM und ROM fest auf GND zu legen? Das gibt 
zusammen mit dem Adressdecoder ohne Phi2 jede Menge Buskollisionen.

von Thomas W. (dbstw)


Lesenswert?

Johannes S. schrieb:
> $A000 - $FFFF  ROM (EPROM W27C512-45Z)
> $8000 - $9FFF  VIA W65C22S (Western Design Center)
> $2000 - $7FFF  ROM (EPROM W27C512-45Z siehe oben)
> $0000 - $1FFF  RAM (SRAM As6C62256 55ns)
>

> Thomas W. schrieb:
>> - 16MHz fuer die 6502-CPU ziemlich viel, insbesondere durch die
>> Besonderheit beim Speicherzugriff bei Phi1/2 (deswegen war ja der Apple
>> ][ und die CBM-Maschinen relativ schnell trotz "nur" 1MHz Taktbus).
>
> Es handelt sich nicht um die NMOS-Variante sondern um die neuere,
> modernere CMOS-Variante von Western Design Center (W65C02S) die sogar
> mit 24MHz noch stabil laufen kann.

Das aendert nichts an der Problematik (verschaerft es sogar): Du hast 
sehr wenig Zeit, um die Daten stabil auf den Bus zu packen. Du solltest 
auch noch mal das Timing bei den Speicher (EPROM, RAM) angucken. Da war 
noch etwas mit dem Timing von /CS und /OE (das ist aber > 30Jahre her, 
da muss man sich noch mal einlesen).

> Die Original-Platinde von Applied Concepts aus den späten 70ern
> verwendet eine 6502 CPU, VIA 6522, vier 2114 static Rams, und hat einen
> Printanschluss für externe Module in denen ein EPROM mit dem Programm
> vorhanden ist. Diese Platine läuft mit CPU-Takt von 2MHz. Dieser Takt
> wird durch zwei geteilt und tastet dann die VIA 6522. Um diese Platine
> geht es nicht. Ein Elektroniker hat einen Nachbau entwickelt mit der
> W65C02S und o.a. Bauteilen. Das Rom befindet sich schon auf dieser
> Platine. Diese Platine bezeichne ich in diesem Thread als "Original" da
> diese einwandfrei läuft.
> Tut mir leid wenn's hier zu Missverständnissen gekommen ist.
>

Noe, dass kann nicht so richtig sein: Der Takt ist immer Phi1 und ist 
der System-Takt (Phi1 definiert die Gueltigkeit der Adresse [hhinz hatte 
Dich ja darauf hingewiesen]).

Du koenntest Dir einen Primer fuer 6502-Systeme angucken, schoen simple 
waere z.b. die Junior-Handbuecher (Band 1).

Gruesse

von Vanye R. (vanye_rijan)


Lesenswert?

> Was aber ist der Sinn des eigentlichen Unterfangens?

Das ist doch eine ziemlich dumme Frage. Wuerde man alles weit genug
hinterfragen haettest du heute Morgen im Bett bleiben koennen weil
alles sinnlos ist. .-)

> Ein steinaltes Schachcomputerdesign schneller zu machen?

Was spricht dagegen?


Aber das Problem ist natuerlich das man bei so schnellen MCUs schon
etwas Grundlagenwissen ueber Hardware braucht. Beim alten 6502
in meinem Apple][+ konnte ich noch im Kinderzimmer mit 15 meine
eigenen Karten faedeln ohne viel Ahnung von Details zu haben.
Wenn man also Hardware lernen will dann muss man halt sein Layout
mehrmals machen und jedesmal verbessern.

Will man das nicht und ist besser in Software wie in Hardware kann
man ja so ran gehen:

https://github.com/jfoucher/pico-6502

Also den 6502 komplett in einem Pi-Pico emulieren und die alten
Images darauf laufen lassen.

Vanye

von Joachim B. (jar)


Lesenswert?

Johannes S. schrieb:
> Das wäre sicher die optimalste Lösung

nur wenn man optimal steigern kann, wenn man aber optimal steigern kann 
war es vorher nicht optimal.

von (prx) A. K. (prx)


Lesenswert?

Soul E. schrieb:
> Die meisten Computer aus der Ära hatten zwei Quarze.
> Einen für den CPU-Takt und einen für die Fernseh-Farbe.

Wobei sich die 4,77 MHz der anfänglichen IBM PCs auch am NTSC Farbträger 
orientieren. Die Genialität dieser Entscheidung darf man indes in 
Zweifel ziehen. Das 14.31818 MHz Signal auf dem Bus sparte bei 
ausschliesslich für den NTSC-Markt produzierten CGAs ein paar Cent ein, 
war sonst aber völlig überflüssig, eher schädlich

: Bearbeitet durch User
von Klaus F. (klaus27f)


Lesenswert?

Für 6502 bin ich kein Spezialist, eher für Z80.

Aber mir fallen trotzdem paar Dinge zu deinen Fragen ein:

Layout:
Die 4 grossen ICs sollten möglicherweise "in einer Reihe" liegen, nicht 
nebeneinander. Könnte das Layout vereinfachen.
Optimal wäre natürlich 4 Layer.

6502: Ist dies hier bekannt?
http://forum.6502.org/viewtopic.php?f=4&t=7964#p106554

Richtigerweise sollte man konsequent 74AC Bauteile einsetzen.
Speziell bei der Decodierung 74AC138 oder 74AC139.
Unbedingt "einstufig", notfalls auf GAL 15ns ausweichen.

Ob jetzt Übertaktung was bringt, wenn dann Waitstates Generator 
gebraucht wird ist eher fraglich.

Ein stabiles System das statisch arbeitet muss dies auch, und vor allem, 
auch bei niedriger(er) Taktrate tun.
Wenn 8 MHz nicht stabil ist, braucht man an 14 oder 16 überhaupt nicht 
denken.

Den Takt aus 2x gewinnen (Osz. 32 MHz), wg. 50% Tastverhältnis (über 
74AC74 teilen z.B.). Manche Bauteile wollten kein 40:60 oder 45:55.

von Wastl (hartundweichware)


Lesenswert?

Klaus F. schrieb:
> Den Takt aus 2x gewinnen (Osz. 32 MHz), wg. 50% Tastverhältnis (über
> 74AC74 teilen z.B.). Manche Bauteile wollten kein 40:60 oder 45:55.

Guter Einwand bzw. Tipp. Ein im Pegel driftender Oszillator könnte
sein Tastverhältnis verändern und zum temporären Ausfall der auf
Kante genähten Schaltung beitragen.

von Harald K. (kirnbichler)


Lesenswert?

Klaus F. schrieb:
> Unbedingt "einstufig", notfalls auf GAL 15ns ausweichen.

Dann müssten RAM und ROM mit ebenfalls 15ns auskommen. Oder die 
Schaltung muss recht gründlich umgestellt werden, damit das RDY-Signal 
des 6502 bei Zugriffen auf zu langsame Bausteine passend bespielt wird.

Dem Wimmelbild kann man aber entnehmen, daß da nur ein Pullup dranhängt.

von Wolfgang S. (wolfgang_s278)


Lesenswert?

OE immer auf GND bei verschiedenen ICs geht garnicht. Dann sind bei den 
ICs und ggf. von der CPU die Date-Leitungen gleichzeitig aktiv,
Der Stärkere Output gewinnt dabei, ggf. auch temperaturabhängig.

Ist es korrekt, dass die CA und CB-Anschlüsse offen sind?

Lass das System doch mal mit einem geringeren Takt laufen.

von Harald K. (kirnbichler)


Lesenswert?

Wolfgang S. schrieb:
> OE immer auf GND bei verschiedenen ICs geht garnicht

Ganz so schlimm ist es nicht, denn die ICs haben ja auch einen 
/CS-Eingang. Ist der nicht aktiv, hat /OE keine Funktion.

Ist trotzdem Pfusch.

von Wolfgang S. (wolfgang_s278)


Lesenswert?

Der 65C22 wird bei fast jeder Adresse angesprochen ohne Berücksichtigung 
der Zustände von A4 bis A12.

von H. H. (Gast)


Lesenswert?

Wolfgang S. schrieb:
> Der 65C22 wird bei fast jeder Adresse angesprochen ohne
> Berücksichtigung
> der Zustände von A4 bis A12.

Das soll und darf so sein.

von Johannes S. (vamogu05)


Lesenswert?

Harald K. schrieb:
> Sowohl die CPU als auch die VIA sind für maximal 14 MHz spezifiziert,
> Dein "Elektroniker" betreibt sie mit 16 MHz. Das ist jetzt nicht
> besonders viel, da aber auch das EPROM und das SRAM weit jenseits der
> spezifizierten Parameter betrieben werden, wird das ganze um so
> unzuverlässiger.

Was soll die Abbildung 6-2 (F Max vs Vdd) im Datasheet der W65C02S auf 
Seite 24 zeigen? Wenn ich das richtig deute, sieht man hier bei 4.2V Vdd 
eine max. Frequenz von 19MHz! Oder was zeigt diese Abbildung?

Harald K. schrieb:
> Wenn Du Deinen Aufbau aktiv kühlst
> (Kühlschrank?), dann könnte er vermutlich etwas stabiler werkeln.

Bei mir scheint es ja genau umgekehrt zu sein. Die ersten 20min. nach 
Anlegen der Stromversorgung kommt es zu Problemen, danach nicht mehr!

Harald K. schrieb:
> Was aber ist der Sinn des eigentlichen Unterfangens? Ein steinaltes
> Schachcomputerdesign schneller zu machen?
>
> Wozu? Um ebenfalls steinalte für einen aus heutiger Sicht sehr
> ineffizienten Prozessor geschriebene Software etwas schneller laufen zu
> lassen?

Ganz einfach: um die alten Programme etwas stärker zu machen. Ein 
Betrieb von 16MHz ist zumindest ein 8x höhere Geschwindigkeit in dem das 
System wesentlich tiefer rechnen kann als mit 2MHz. Natürlich bleibt das 
Spielerei. Die Jungs machen das mit ihren Mopeds, die Älteren mit den 
Autos - warum nicht?

H. H. schrieb:
> Was soll das /OE von RAM und ROM fest auf GND zu legen? Das gibt
> zusammen mit dem Adressdecoder ohne Phi2 jede Menge Buskollisionen.

Warum? Ich dachte solange CE high-Pegel hat ist der Baustein inaktiv und 
belegt den Datenbus nicht, da seine Datenausgänge im hochohmigen Bereich 
liegen. Wo soll es da zu Buskollisionen kommen? Habe ich da irgendwas 
nicht richtig verstanden? Bitte um Aufklärung. Ich achte darauf, dass 
egal welche Adresse anliegt immer nur ein Baustein ausgewählt 
(selektiert) sein kann.

Thomas W. schrieb:
> Das aendert nichts an der Problematik (verschaerft es sogar): Du hast
> sehr wenig Zeit, um die Daten stabil auf den Bus zu packen. Du solltest
> auch noch mal das Timing bei den Speicher (EPROM, RAM) angucken. Da war
> noch etwas mit dem Timing von /CS und /OE (das ist aber > 30Jahre her,
> da muss man sich noch mal einlesen).

Ja, das ist eben meine Problematik, dass ich diese Dinge nicht sofort 
verstehe. Ich hätte gerne, dass mir jemand mal so einen Lese bzw. 
Schreibvorgang detailliert beschreiben kann. Aus den Timing-Diagrammen 
werde ich nicht so recht schlau daraus. Leider.

Thomas W. schrieb:
> Noe, dass kann nicht so richtig sein: Der Takt ist immer Phi1 und ist
> der System-Takt (Phi1 definiert die Gueltigkeit der Adresse [hhinz hatte
> Dich ja darauf hingewiesen]).

Ok, die Bezeichnung des Takteingangs weiß ich jetzt nicht mehr genau. 
Aber an diesen Platinen werden an der CPU Pin 37 2MHz Clock angelegt und 
an der VIA 6522 Pin 25 1MHz. Das ist Fakt!
Bitte nicht von der älteren 6502 auf die neuere W65C02S schliessen. Da 
kann es nur zu Missverständnissen kommen.

Thomas W. schrieb:
> Du koenntest Dir einen Primer fuer 6502-Systeme angucken, schoen simple
> waere z.b. die Junior-Handbuecher (Band 1).

Danke, das ist ein guter Ratschlag. Werde ich machen. Ist sicher sehr 
interessant und lehrreich.

Joachim B. schrieb:
> nur wenn man optimal steigern kann, wenn man aber optimal steigern kann
> war es vorher nicht optimal.

Sehr weise Worte :-)

Klaus F. schrieb:
> Layout:
> Die 4 grossen ICs sollten möglicherweise "in einer Reihe" liegen, nicht
> nebeneinander. Könnte das Layout vereinfachen.
> Optimal wäre natürlich 4 Layer.

Danke Klaus, endlich mal ein Hinweis zum Layout. Klingt einleuchtend, 
werde mich mal damit spielen die großen ICs nebeneinander anzuordnen.
Gibt es generell Probleme bei meinem Layout?

Klaus F. schrieb:
> Richtigerweise sollte man konsequent 74AC Bauteile einsetzen.
> Speziell bei der Decodierung 74AC138 oder 74AC139.
> Unbedingt "einstufig", notfalls auf GAL 15ns ausweichen.

Ok, werde mir mal die AC-Gatter besorgen und mir vorerst mal die 
Datenblätter dazu ansehen. Danke.

Klaus F. schrieb:
> Ein stabiles System das statisch arbeitet muss dies auch, und vor allem,
> auch bei niedriger(er) Taktrate tun.
> Wenn 8 MHz nicht stabil ist, braucht man an 14 oder 16 überhaupt nicht
> denken.

Ja, gebe ich dir vollkommen recht. Darum bin ich immer noch auf der 
Suche was bei meiner Platine nicht stimmt. Die läuft zumindest nach 
20min. stabil mit 16MHz, aber nicht mit 8MHz. Eventuell hat doch 
vielleicht der Spannungsregler Schuld? Habe im Datenblatt gelesen, dass 
der nur 1,5A kann. Jemand hat zuvor geschrieben 2A könnte sich gerade 
ausgehen.

Wolfgang S. schrieb:
> OE immer auf GND bei verschiedenen ICs geht garnicht. Dann sind bei den
> ICs und ggf. von der CPU die Date-Leitungen gleichzeitig aktiv,
> Der Stärkere Output gewinnt dabei, ggf. auch temperaturabhängig.

Ich dachte die Speicher können erst Daten auf den Bus legen wenn sie 
auch über CS bzw. CE angesteuert werden? Ist das nicht korrekt? Habe ich 
das falsch verstanden?

Wolfgang S. schrieb:
> Lass das System doch mal mit einem geringeren Takt laufen.

Wie bereits mehrmals geschrieben: Bei 8MHz immer Probleme, bei 16MHz 
nach 20min Einschaltdauer stabiler Betrieb über mehrere Stunden 
getestet!

von Johannes S. (vamogu05)


Lesenswert?

Wolfgang S. schrieb:
> Der 65C22 wird bei fast jeder Adresse angesprochen ohne Berücksichtigung
> der Zustände von A4 bis A12.

Wieso?
ER wird nur angesprochen wenn A15 high ist und A14 und A13 low!

von Johannes S. (vamogu05)


Lesenswert?

H. H. schrieb:
> Das soll und darf so sein.

Meinem Verständnis nach, darf das eben nicht so sein. Es darf immer nur 
ein Baustein (Speicher, IO etc.) selektiert sein. Sonst kann das nicht 
funktionieren! In meiner Schaltung wird das sehr wohl berücksichtigt! 
Der 65C22S wird nur im Adressbereich $8000 - $9FFF selektiert.

von H. H. (Gast)


Lesenswert?

Johannes S. schrieb:
> H. H. schrieb:
>> Was soll das /OE von RAM und ROM fest auf GND zu legen? Das gibt
>> zusammen mit dem Adressdecoder ohne Phi2 jede Menge Buskollisionen.
>
> Warum? Ich dachte solange CE high-Pegel hat ist der Baustein inaktiv und
> belegt den Datenbus nicht, da seine Datenausgänge im hochohmigen Bereich
> liegen. Wo soll es da zu Buskollisionen kommen? Habe ich da irgendwas
> nicht richtig verstanden?

Die Adressleitungen wechseln weder instantan noch synchron ihren Pegel. 
Dadurch kann und kommts es zu Überschneidungen.

von Joachim B. (jar)


Lesenswert?

H. H. schrieb:
> Die Adressleitungen wechseln weder instantan noch synchron ihren Pegel.
> Dadurch kann und kommts es zu Überschneidungen.

deswegen gab es ja den PI 0 und invers den PI 1 Pin der signalisiert 
wann die Daten übernommen werden können bzw. wann die Adressdaten stabil 
sind.

von (prx) A. K. (prx)


Lesenswert?

Zu beachten ist auch, dass die 6502 CPU mangels gegenteiliger 
Signalisierungsmöglichkeit in jedem Zyklus einen Zugriff durchführt, ob 
sinnvoll oder nicht. Nicht genutzte Zugriffe sind allerdings stets 
lesend.

Will man sicherstellen, dass die Adressbits gültig sind, muss phi2=high 
eingebunden werden. Das verkürzt allerdings die Zugriffszeit ab 
vorhandener Adresse.

Ob man OE nutzt oder nicht, ist dann eine Frage des Timings. Wenn die 
Zugriffszeit ab OE kürzer als ab CE ist, kann es sinnvoll sein, OE/WE 
mit phi2 zu verknüpfen und CE nur aus den Adressen abzuleiten.

: Bearbeitet durch User
von Johannes S. (vamogu05)


Lesenswert?

H. H. schrieb:
> Johannes S. schrieb:
>> H. H. schrieb:
>>> Was soll das /OE von RAM und ROM fest auf GND zu legen? Das gibt
>>> zusammen mit dem Adressdecoder ohne Phi2 jede Menge Buskollisionen.
>>
>> Warum? Ich dachte solange CE high-Pegel hat ist der Baustein inaktiv und
>> belegt den Datenbus nicht, da seine Datenausgänge im hochohmigen Bereich
>> liegen. Wo soll es da zu Buskollisionen kommen? Habe ich da irgendwas
>> nicht richtig verstanden?
>
> Die Adressleitungen wechseln weder instantan noch synchron ihren Pegel.
> Dadurch kann und kommts es zu Überschneidungen.

Ok, kann ich das so lösen, dass ich das an CE führende Signal dann auch 
auf OE führe?

von H. H. (Gast)


Lesenswert?

Johannes S. schrieb:
> Ok, kann ich das so lösen, dass ich das an CE führende Signal dann auch
> auf OE führe?

Natürlich nicht.

von Johannes S. (vamogu05)


Lesenswert?

H. H. schrieb:
> Johannes S. schrieb:
>> Ok, kann ich das so lösen, dass ich das an CE führende Signal dann auch
>> auf OE führe?
>
> Natürlich nicht.

Und wie macht man das nun? Was kommt dann an OE?

von H. H. (Gast)


Lesenswert?

Johannes S. schrieb:
> Was kommt dann an OE?

R/W mit PHI2 verknüpft.

von (prx) A. K. (prx)


Lesenswert?

Johannes S. schrieb:
> Und wie macht man das nun? Was kommt dann an OE?

Kommt auf das Device an.

- 65xx/68xx Peripherie wird selbst schon über ϕ2 gesteuert. Da reicht 
es, die CEs nur aus den Adressleitungen abzuleiten.

- Bei Speicher mit /OE und ggf /WE ist die höflichste und schnellste 
Variante, /CE nur aus Adressleitungen zu decodieren, und /OE,/WE als 
f(R/W, ϕ2).

In älteren auf 1 MHz NMOS und LSTTL getrimmten Schaltungen kann man auch 
Varianten finden, die /OE bei ROMs auf low legen, und es auf einen 
Konflikt auf dem Bus ankommen lassen. Bei treiberstärkeren Devices und 
Logikbausteinen ist das weniger ratsam.

: Bearbeitet durch User
von Thomas W. (dbstw)


Lesenswert?

H. H. schrieb:
> Johannes S. schrieb:
>> Was kommt dann an OE?
>
> R/W mit PHI2 verknüpft.

Das macht er auch dem Wimmelbild "R/W-Signal generation": R/W_CPU und 
PHI2 fuer das R/W zu RAM.

von Thomas W. (dbstw)


Lesenswert?

Wenn Du das Datenblatt anguckst (p.26) siehst Du, dass die fallende 
Flanke von Phi2 die Adressen auf dem Bus definiert (die Fussnote im 
Datenblatt sagt explizit).

Es waere jetzt pfiffig, Phi2 mit dem Adressbus zu verknuepfen, so dass 
die Chipselect stabil fuer den gesamten Halbtakt bleiben.

Wenn Du jetzt schon das Datenblatt anguckst, siehst Du, dass die tACC 
(also die Zeit, nach dem die Daten vom Speicher auf den Bus anliegen), 
bei Deiner Frequenz 30ns sind (die 30ns tADS (Adress-setuptime) kommen 
nach dazu).

D.h. Dein EPROM muss eine max. Zugriffzeit von 70ns haben. Bringt Dein 
EPROM diese Zugriffzeit? Wenn das z.b. ein EPROM mit Zugriffzeit von 
100ns hat, werden einige Daten schon gueltig sein, manche aber nicht 
(genau das Fehlerbild das Du hast).

-> Du koenntest mit Wait-States arbeiten, aber dann stellt sich die 
Frage: Why bother?

Das erklaert aber leider nicht, warum das Ding nicht bei 1 - 2 MHz nicht 
funktioniert.

von (prx) A. K. (prx)


Lesenswert?

Harald K. schrieb:
> Dem Wimmelbild kann man aber entnehmen, daß da nur ein Pullup dranhängt.

Den Knubbel an GND nicht übersehen. :)

In der Ära klassischer 1 MHz 6502 war das ziemlich egal. Wenn zwei NMOS 
Ausgänge gegeneinander laufen, weil man versehentlich ins ROM schreibt, 
brennt bei denen nichts an. Bei schnellem CMOS sind die Ströme grösser, 
und daher auch die damit verbundenen Transienten.

von Johannes S. (vamogu05)


Angehängte Dateien:

Lesenswert?

Thomas W. schrieb:
>> R/W mit PHI2 verknüpft.
>
> Das macht er auch dem Wimmelbild "R/W-Signal generation": R/W_CPU und
> PHI2 fuer das R/W zu RAM.

Also kann ich das im Schaltplan dargestellte R/W vom Pin 11 des 74F32 
direkt an OE des RAMs und ROMs legen? Wäre das dann korrekt? Phi2 wird 
dort  invertiert bevor es mit CPU_R/W verodert wird. Ich habe das aus 
der funktionierenden Platine so ausgemessen.

von (prx) A. K. (prx)


Lesenswert?

Johannes S. schrieb:
> Also kann ich das im Schaltplan dargestellte R/W vom Pin 11 des 74F32
> direkt an OE des RAMs und ROMs legen? Wäre das dann korrekt?

Ja. Und lass ϕ2 aus /CE der RAMs und ROMs draussen.

: Bearbeitet durch User
von Johannes S. (vamogu05)


Lesenswert?

Thomas W. schrieb:
> D.h. Dein EPROM muss eine max. Zugriffzeit von 70ns haben. Bringt Dein
> EPROM diese Zugriffzeit? Wenn das z.b. ein EPROM mit Zugriffzeit von
> 100ns hat, werden einige Daten schon gueltig sein, manche aber nicht
> (genau das Fehlerbild das Du hast).

Ich verwende ein Winbond 27C512 mit 45ns Zugriffszeit.

Thomas W. schrieb:
> Das erklaert aber leider nicht, warum das Ding nicht bei 1 - 2 MHz nicht
> funktioniert.

Ja, und auch nicht warum es nach 20min. Einschaltdauer dann plötzlich 
stabil läuft. Über Nacht getestet.

von Thomas W. (dbstw)


Lesenswert?

Johannes S. schrieb:

> Thomas W. schrieb:
>> Das erklaert aber leider nicht, warum das Ding nicht bei 1 - 2 MHz nicht
>> funktioniert.
>
> Ja, und auch nicht warum es nach 20min. Einschaltdauer dann plötzlich
> stabil läuft. Über Nacht getestet.

OK. CPU PHI2_Out (Pin 39) ist unbeschaltet?

Ansonsten, jetzt ist der Punkt: Send Pics. Zeige den Aufbau. Denn wenn 
Du die Frequenz auf 1 - 2MHz runtergehst, sollte das Ding funktionieren 
(die 16MHz sind wohl wishful thinking, aber 1MHz sollte es schaffen).

von Thomas W. (dbstw)


Lesenswert?

Du hattest geschrieben, dass das Ding mehr als 1A bei 5V zieht. Warum?

von H. H. (Gast)


Lesenswert?

Johannes S. schrieb:
> Also kann ich das im Schaltplan dargestellte R/W vom Pin 11 des 74F32
> direkt an OE des RAMs und ROMs legen?

Nein, das hat die falsche Polarität.

Beitrag #7717922 wurde vom Autor gelöscht.
von (prx) A. K. (prx)


Lesenswert?

Johannes S. schrieb:
> Also kann ich das im Schaltplan dargestellte R/W vom Pin 11 des 74F32
> direkt an OE des RAMs und ROMs legen?

Ich hatte vorhin überlesen, dass du damit /OE machen willst, nicht /WE. 
Nimm dieses Signal als das, was es sein soll und im Plan auch ist: Als 
/WE der RAMs.

: Bearbeitet durch User
von Wastl (hartundweichware)


Lesenswert?

(prx) A. K. schrieb im Beitrag #7717922:
> Es mag etwas unglücklich sein, ein Signal R/W zu nennen

Naja, das hat schon seinen Sinn. Schliesslich gibt es beim
6502 (et al) kein explizites Read-Signal wie es bei anderen
Prozessoren oder Controllern meist ein /RD und ein /WR-
Signal gibt.

Ich habe es mir als Eselsbrücke immer "Read_not_Write"
gemerkt, also Lesen high, Schreiben low.

: Bearbeitet durch User
von (prx) A. K. (prx)


Lesenswert?

Wastl schrieb:
> Naja, das hat schon seinen Sinn. Schliesslich gibt es beim
> 6502 (et al) kein explizites Read-Signal wie es anderen
> Prozessoren oder Controllern meist ein /RD und ein /WR-
> Signal gibt.

Eben. Mit obigem OR(INV(ϕ2), CPU-RW) baut man sich genau das fehlende 
/WR. Dieses Signal R/W zu nennen, führt eher zu Verwirrung.

Und mit NAND(ϕ2, CPU-RW) kriegt man ein /RD, das man als /OE verwenden 
kann, wenn man vor Übergangs-Transienten in der ϕ1 Phase sicher sein 
will. Hat allerdings früher anno NMOS kaum jemanden interessiert.

: Bearbeitet durch User
von Martin M. (wellenkino)


Lesenswert?

ist das mal mit einem IR betrachtet worden während dieser 20min ?

von (prx) A. K. (prx)


Lesenswert?

(prx) A. K. schrieb:
> OR(INV(ϕ2), CPU-RW)

Wem der OR/NAND Mix bei /OE und /WE auf den Geist geht: Das ist 
äquivalent zu NAND(ϕ2, INV(CPU-RW)), und so obendrein schneller.

: Bearbeitet durch User
von H. H. (Gast)


Lesenswert?

Gibts denn vom WDC keine AppNotes?

von (prx) A. K. (prx)


Lesenswert?

H. H. schrieb:
> Gibts denn vom WDC keine AppNotes?

Wenn ich mal annehmen darf, dass WDC das Rad nicht neu erfunden hat, 
findet man eine epische Beschreibung der 6500 Familie in:
http://retro.hansotten.nl/uploads/aim65/r6500_hard.pdf

Feine Unterschiede zwischen den WDC und NMOS-Implementierungen kann man 
suchen, wenn man die Grundlagen der 6500 drauf hat.

: Bearbeitet durch User
von H. H. (Gast)


Lesenswert?

(prx) A. K. schrieb:
> H. H. schrieb:
>> Gibts denn vom WDC keine AppNotes?

> http://retro.hansotten.nl/uploads/aim65/r6500_hard.pdf

Bezieht sich auf die lahmen alten NMOS Teile.


> Feine Unterschiede zwischen den WDC und NMOS-Implementierungen kann man
> suchen, wenn man die Grundlagen der 6500 drauf hat.

Kann man, aber es hätte ja sein können, dass das WDC das schon getan 
hat.

von Joachim B. (jar)


Lesenswert?

H. H. schrieb:
> PHI2 verknüpft

ok, habe noch mal nachgesehen, die beiden von der CPU zur Abstimmung mit 
externe Bausteine hießen PI1 & PI2

PI0 war für die CPU ein in

von (prx) A. K. (prx)


Lesenswert?

H. H. schrieb:
> Bezieht sich auf die lahmen alten NMOS Teile.

Klar. Aber um Arbeitsweise und Signale zu verstehen, reicht es. Dazu 
dann das Datasheet der schnellen CMOS Teile verwenden.

Man kann nicht ernsthaft erwarten, dass WDC sich wegen Komponenten die 
Finder wund schreibt, die es schon lange gibt, und die Anwender 
adressieren, die sich bereits auskennen. Der AIM65 adressierte 
Einsteiger auf genau dieser Ebene, war deshalb sehr gut dokumentiert. 
Dieses Manual betrachtet die 6500 Familie allgemein, nicht den AIM65 
speziell.

: Bearbeitet durch User
von H. H. (Gast)


Lesenswert?

(prx) A. K. schrieb:
> AIM65

Hab meinen noch, incl aller Handbücher.


Bei mehr als dem zehnfachen Takt tauchen aber damals unbekannte Probleme 
auf.

von (prx) A. K. (prx)


Lesenswert?

H. H. schrieb:
> Bei mehr als dem zehnfachen Takt tauchen aber damals unbekannte Probleme
> auf.

Wobei es in seinem Fall ja wohl schon ein Erfolg wäre, wenn das Teil bei 
1 MHz sauber funktioniert.

von (prx) A. K. (prx)


Lesenswert?

H. H. schrieb:
> Hab meinen noch, incl aller Handbücher.

Und wann das letzte Mal eingeschaltet? Meiner landete von ein paar 
Jahren umzugsbedingt im Müll. Kein Platz, kein Sinn ausser Nostalgie.

von Irgend W. (Firma: egal) (irgendwer)


Lesenswert?

Johannes S. schrieb:
> Was mich allerdings noch verwundert ist folgender Umstand:
> Wenn ich den Schachcomputer das erste Mal mit Strom versorge, spielt er
> Züge die nicht in der Eröffnungsbibliothek des Programms gespeichert
> sind.

Hört sich ein Stück weit nach der Resetlogik an. Kann es sein das du den 
Reset zufrüh aufhebst, bevor die Spannung überhaupt stabil ist? 
Eventuell mal die Spannung und Reset gleichzeitig auf dem Oszi anzeigen 
lassen (beides am besten direkt an der CPU abgreifen). Dabei auch mal 
genauer auf die Pegel achten, diene Mischung aus TTL und CMOS kann gut 
gehen, muss es aber nicht.

- 
https://de.wikipedia.org/wiki/Logikfamilie#Entstehung_der_Logikfamilien

####

Was verstehst du unter "Abstürzen"? Betriebssysteme kennen diesen 
Begriff, aber eine CPU/µC kennen sowas eigentlich nicht. Die machen 
immer irgendwas und wenn es irgendwo in einer Dauerschleife 
herumspringen ist. Wenn RAM und ROM extern angebunden sind, kann mal das 
eigentlich anhand der Adressleitungen mit einem LA recht gut analysieren 
wo die CPU gerade herumeiert.

von H. H. (Gast)


Lesenswert?

(prx) A. K. schrieb:
> Nostalgie.

Ja.

von Thomas W. (dbstw)


Lesenswert?

Wenn das alles nicht so klappt, vielleicht koennte der TO diese 
Drop-In-Replacement-CPU verwenden:

https://monster6502.com/

OK, maximale Taktfrequenz von 50kHz, aber viele Blinken-Lights.

von Soul E. (soul_eye)


Lesenswert?

Diese hier läuft Echtzeit am C64: https://c74project.com/

von Harald K. (kirnbichler)


Lesenswert?

(prx) A. K. schrieb:
> Dieses Signal R/W zu nennen, führt eher zu Verwirrung.

Tatsächlich heißt das Signal R/W̅, wie alle negierten Signale trägt es 
ein  ̅ .

von Johannes S. (vamogu05)


Lesenswert?

Thomas W. schrieb:
> OK. CPU PHI2_Out (Pin 39) ist unbeschaltet?
>

Ja, Pin 39 ist unbeschaltet.

> Ansonsten, jetzt ist der Punkt: Send Pics. Zeige den Aufbau. Denn wenn
> Du die Frequenz auf 1 - 2MHz runtergehst, sollte das Ding funktionieren
> (die 16MHz sind wohl wishful thinking, aber 1MHz sollte es schaffen).

Gerne, kann ich morgen machen. Ich weiß jetzt noch nicht genau ob er mit 
1MHz funktioniert. Habe die Platine ausprobiert, da hat es nicht 
funktioniert, erst ca. 20min. später. Habe jetzt nochmals die Platine 
auskühlen lassen und nochmals probiert mit 1MHz, aber diesmal hat es 
sofort funktioniert. Kann sein dass alles noch zu warm war.

Thomas W. schrieb:
> Du hattest geschrieben, dass das Ding mehr als 1A bei 5V zieht. Warum?

Das hat Bradward gestern um 18:09 geschrieben. Wieviel die Platine Strom 
zieht weiß ich nicht.

H. H. schrieb:
> Nein, das hat die falsche Polarität.

Ok, müsste also nochmals invertiert werden oder besser gleich über ein 
Nor-Gatter ein separates Signal erzeugen?

Martin M. schrieb:
> ist das mal mit einem IR betrachtet worden während dieser 20min ?

Meinst Du Infrarot oder was genau?

(prx) A. K. schrieb:
> Wobei es in seinem Fall ja wohl schon ein Erfolg wäre, wenn das Teil bei
> 1 MHz sauber funktioniert.

Ja, irgendwo ist der Wurm drinnen!

Irgend W. schrieb:
> Hört sich ein Stück weit nach der Resetlogik an. Kann es sein das du den
> Reset zufrüh aufhebst, bevor die Spannung überhaupt stabil ist?
> Eventuell mal die Spannung und Reset gleichzeitig auf dem Oszi anzeigen
> lassen (beides am besten direkt an der CPU abgreifen). Dabei auch mal
> genauer auf die Pegel achten, diene Mischung aus TTL und CMOS kann gut
> gehen, muss es aber nicht.

Danke, das ist eine gute Idee. Hatte den Reset schon lange in Verdacht. 
Habe darum eine zweite Platine aufgebaut und den Widerstand R1 von 10k 
auf 22k erhöht. Diese zweite Platine macht das nach dem ersten 
Einschalten nicht mehr. Aber funktioniert auch erst nach 20min.

Irgend W. schrieb:
> Was verstehst du unter "Abstürzen"? Betriebssysteme kennen diesen
> Begriff, aber eine CPU/µC kennen sowas eigentlich nicht. Die machen
> immer irgendwas und wenn es irgendwo in einer Dauerschleife
> herumspringen ist.

Naja, Der Fehler zeigt sich indem der Schachcomputer keinen Zug mehr 
macht. Die "Thinking"-LED blinkt weiter im selben Takt wie wenn alles 
funktionieren würde, aber er spielt keinen Zug mehr. Auch durch Drücken 
der Taste, die normal den Rechenvorgang unterbricht, wird kein Zug 
ausgegeben. Wenn ich dann nach ca. 20min. resete, funktioniert er 
plötzlich einwandfrei.
Ich habe hier irgendwie den 7805 in Verdacht. Den Elko C6 am Ausgang mit 
330µF habe ich schon auf 10µF reduziert mit leicht verändertem 
Fehlerbild. Jetzt läuft er zwar, zeigt aber während seines Rechenvorgang 
den bis dahin besten Zug an, ohne dass ich das eingeschaltet habe. Das 
läßt sich auch nicht ausschalten, da er diese Funktion sofort wieder 
einschaltet, bzw. das irgendwie aus dem RAM liest.

von H. H. (Gast)


Lesenswert?

Johannes S. schrieb:
> Thomas W. schrieb:
>> OK. CPU PHI2_Out (Pin 39) ist unbeschaltet?
>>
>
> Ja, Pin 39 ist unbeschaltet.

Oha!

von Thomas W. (dbstw)


Lesenswert?

H. H. schrieb:
> Johannes S. schrieb:
>> Thomas W. schrieb:
>>> OK. CPU PHI2_Out (Pin 39) ist unbeschaltet?
>>>
>>
>> Ja, Pin 39 ist unbeschaltet.
>
> Oha!

Nein, das ist so geplant: Bei der wdc65c02 ist das so geplant, weil man 
den PHI2 einspeisen kann (oder man kann einen Oszilator bauen, dann muss 
aber PHI2_Out den Ausgang sein).

Da der TO ja einen Quarz-Oszilator benutzt: Alles wie gewuenscht. Das 
ist einer der offensichtliche Aenderungen zwischen der Original-6502 und 
dem WDC.

von Thomas W. (dbstw)


Lesenswert?

Johannes S. schrieb:

> Ich habe hier irgendwie den 7805 in Verdacht. Den Elko C6 am Ausgang mit
> 330µF habe ich schon auf 10µF reduziert mit leicht verändertem
> Fehlerbild.

In solchen Fehlern hole ich meine Powerbank raus: 5V mit einem 
USB-Anschluss.

von H. H. (Gast)


Lesenswert?

Thomas W. schrieb:
> Nein, das ist so geplant: Bei der wdc65c02 ist das so geplant, weil man
> den PHI2 einspeisen kann (oder man kann einen Oszilator bauen, dann muss
> aber PHI2_Out den Ausgang sein).

Ich hatte Bedenken wegen der Phasenverschiebung, aber:


3.8  Phase 2 In (PHI2), Phase 2 Out (PHI2O) and Phase 1 Out (PHI1O)

Phase 2 In (PHI2) is the system clock input to the microprocessor 
internal clock.  During the low power
Standby Mode, PHI2 can be held in either high or low state to preserve 
the contents of internal registers
since the microprocessor is a fully static design.  The Phase 2 Out 
(PHI2O) signal is generated from PHI2.
Phase 1 Out (PHI1O) is the inverted PHI2 signal.  An external oscillator 
is recommended for driving PHI2
and used for the main system clock.  All production test timing is based 
on PHI2.  PHI2O and PHI1O were
used in older systems for system timing and internal oscillators when an 
external crystal was used.


Man sollte aber kontrollieren ob der Oszillator auch ein taugliches 
Signal liefert.

von Johannes S. (vamogu05)


Lesenswert?

H. H. schrieb:
> Man sollte aber kontrollieren ob der Oszillator auch ein taugliches
> Signal liefert.

Gute Idee, werde ich mir mit dem Oszilloskop ansehen.
Danke.

von Thomas W. (dbstw)


Lesenswert?

Johannes S. schrieb:
> H. H. schrieb:
>> Man sollte aber kontrollieren ob der Oszillator auch ein taugliches
>> Signal liefert.
>
> Gute Idee, werde ich mir mit dem Oszilloskop ansehen.
> Danke.

Und das Reset-Signal auch. Man kann natuerlich den Kondensator mit einer 
Taste ueberbruecken.

von Manfred P. (pruckelfred)


Lesenswert?

(prx) A. K. schrieb:
> Feine Unterschiede zwischen den WDC und NMOS-Implementierungen kann man
> suchen, wenn man die Grundlagen der 6500 drauf hat.

Ein gemeiner Unterschied ist z.B., dass die 6502-CMOS ein paar Befehle 
kennen, die es bei den NMOS nicht gab.

Wenn man die Phasenbedingung einhält, kann man den CMOS anhalten, den 
Quarz abschalten und ein paar Minuten später an genau der Stelle weiter 
machen.

Das habe ich mal an einem Prüfplatz genutzt, weil der µC-Takt den 
Abgleich des Empfängers (um 150 MHz) störte. Der In-Circuit-Emulator für 
6502 nutzt das ebenfalls aus, fault hier im Regal vor sich hin und wird 
wohl nie wieder in Betrieb zu bringen sein.

H. H. schrieb:
>> AIM65
> Hab meinen noch, incl aller Handbücher.

Den gab es mit Gehäuse drum als Siemens PC-100, hat uns damals 
überfordert.

Beitrag #7718099 wurde vom Autor gelöscht.
von Johannes S. (vamogu05)


Angehängte Dateien:

Lesenswert?

Thomas W. schrieb:
> Ansonsten, jetzt ist der Punkt: Send Pics. Zeige den Aufbau. Denn wenn
> Du die Frequenz auf 1 - 2MHz runtergehst, sollte das Ding funktionieren
> (die 16MHz sind wohl wishful thinking, aber 1MHz sollte es schaffen).

Hallo Thomas,

im Anhang die versprochenen Bilder vom Aufbau der Platine. Diese Platine 
hat ein paar Designfehler die ich nachträglich korrigiert habe. So geht 
auf die VIA 65C22 (Kupferlitze) jetzt das CPU_R/W, vorher war das mit 
Phi2 veroderte CPU_R/W dran. Das funktionierte überhaupt nicht.
Die Drahtverbindungen sind nun offene Eingänge die ich auf Gnd gelegt 
habe.

Johannes S. schrieb:
> Gerne, kann ich morgen machen. Ich weiß jetzt noch nicht genau ob er mit
> 1MHz funktioniert. Habe die Platine ausprobiert, da hat es nicht
> funktioniert, erst ca. 20min. später. Habe jetzt nochmals die Platine
> auskühlen lassen und nochmals probiert mit 1MHz, aber diesmal hat es
> sofort funktioniert. Kann sein dass alles noch zu warm war.

Also mit 1MHz habe ich selbes Verhalten wie mit 16MHz. Eben nochmals 
geprüft.

Thomas W. schrieb:
> In solchen Fehlern hole ich meine Powerbank raus: 5V mit einem
> USB-Anschluss.

Ich habe stark die Stromversorgung in Verdacht. Ich werde heute 
versuchen eine externe Spannungsquelle mit ausreichend Leistung an die 
Platine zu hängen. Werde danach berichten.

von Vanye R. (vanye_rijan)


Lesenswert?

> Ich habe stark die Stromversorgung in Verdacht.

Du hast Verdacht? Aber kein Oszi um das in 3min zu pruefen?

Vanye

von Johannes S. (vamogu05)


Lesenswert?

Vanye R. schrieb:
> Du hast Verdacht? Aber kein Oszi um das in 3min zu pruefen?

Ja, doch ich habe ein Oszi. Ich werde mir das heute Abend mal genauer 
ansehen.
Kann es sein, dass der 7805 zu wenig Strom liefert? Habe den gleichen 
Typ verbaut (78S05CV) der auch in der funktionierenden Platine verbaut 
ist.

von Norbert (der_norbert)


Lesenswert?

Gehört die Spannungsversorgung nicht zu den ersten Dingen welche man im 
Fehlerfall testet?

von Harald K. (kirnbichler)


Lesenswert?

Johannes S. schrieb:
> Kann es sein, dass der 7805 zu wenig Strom liefert?

Welche Eingangsspannung gibst Du dem denn? Das ist kein LDO, d.h. er 
braucht am Eingang schon ein paar Volt mehr als 5V. Zu viel sollte das 
dann aber auch nicht sein, weil er die Spannungsdifferenz in Wärme 
umwandelt - je mehr Strom, desto mehr Wärme.

Es gibt auch Stepdown-Regler, man muss nicht unbedingt auf 
70er-Jahre-Niveau stehenbleiben.

von Johannes S. (vamogu05)


Lesenswert?

Harald K. schrieb:
> Welche Eingangsspannung gibst Du dem denn? Das ist kein LDO, d.h. er
> braucht am Eingang schon ein paar Volt mehr als 5V. Zu viel sollte das
> dann aber auch nicht sein, weil er die Spannungsdifferenz in Wärme
> umwandelt - je mehr Strom, desto mehr Wärme.

Angeschlossen wird ein 9V AC Netzteil.

von (prx) A. K. (prx)


Lesenswert?

Johannes S. schrieb:
> H. H. schrieb:
>> Nein, das hat die falsche Polarität.
>
> Ok, müsste also nochmals invertiert werden

Nein. @hhinz hat das sehr kurz gefasst. /OE und /WE dürfen nur dann low 
sein, wenn die CPU-R/W Leitung den dazu passenden Pegel hat und ϕ2 high 
ist.

: Bearbeitet durch User
von Joachim B. (jar)


Lesenswert?

(prx) A. K. schrieb:
> /OE und /WE

eben das / steht für ! oder auch NICHT also negiert seit den Zeiten als 
es keine grafischen Buchstaben und kein Überstrich gab, also ist:

Harald K. schrieb:
> Tatsächlich heißt das Signal R/W̅, wie alle negierten Signale trägt es
> ein  ̅ .

wieder reine Provokation oder eben doppelt gemoppelt wie LCD Display

von Vanye R. (vanye_rijan)


Lesenswert?

> Ja, doch ich habe ein Oszi. Ich werde mir das heute Abend mal genauer
> ansehen.

Denk daran kein Pigtail zu verwenden sonst ist die Messung sinnlos.

Vanye

von Harald K. (kirnbichler)


Lesenswert?

Johannes S. schrieb:
> Angeschlossen wird ein 9V AC Netzteil.

Gleichgerichtet sind das etwa 12V, d.h. Dein 7805 muss 7 Volt in Abwärme 
umsetzen. Hast Du mal den Kühlkörper angefasst, wenn der Kram 'ne Weile 
lang in Betrieb ist?

Warum nur macht man sowas? Wozu Wechselspannungsnetzteile? Sowas war in 
den 70ern und 80ern nötig, weil man da nichts besseres hatte, aber jetzt 
...

von Johannes S. (vamogu05)


Lesenswert?

Vanye R. schrieb:
> Denk daran kein Pigtail zu verwenden sonst ist die Messung sinnlos.

Danke für den Hinweis, aber so gut kenne ich mich damit nicht aus. Weiß 
nicht was ein Pigtail ist. Kannst Du mir das bitte näher erklären?
Problematisch ist, dass ich nicht mehr zur Platine komme wenn das Brett 
angeschlossen ist. Ohne Brett ist eine Messung sinnlos da keine Last 
dran hängt.

Harald K. schrieb:
> Gleichgerichtet sind das etwa 12V, d.h. Dein 7805 muss 7 Volt in Abwärme
> umsetzen. Hast Du mal den Kühlkörper angefasst, wenn der Kram 'ne Weile
> lang in Betrieb ist?

Ja, natürlich wird der Kühlkörper heiß. Der 7805 schaltet aber noch 
nicht ab.

Harald K. schrieb:
> Warum nur macht man sowas? Wozu Wechselspannungsnetzteile? Sowas war in
> den 70ern und 80ern nötig, weil man da nichts besseres hatte, aber jetzt

Ich möchte natürlich zum Original kompatibel bleiben. Wenn jemand in 
seinen originalen Schachcomputer dann diese Platine verwenden würde, 
müsste er darauf achten ein anderes Netzteil zu verwenden. Da ist es 
doch besser, das zu diesem Schachcomputer gehörende Netzteil auch für 
die getunte Platine verwenden zu können. Ich selber tue mir auch 
leichter.
Der Elektroniker der diese Platine entwickelte, hat auch eine mit 24MHz 
gemacht. Diese Platine wird direkt mit einem stabilisierten Netzteil mit 
5V betrieben, da sie für einen anderen Schachcomputer entwickelt wurde. 
Da kann man das Netzteil gar nicht verwechseln, da andere 
Anschlussbuchse. Natürlich könnte man das auch bei diesem alten 
Schachcomputer machen, aber ich möchte kompatibel bleiben und die 
Platinen zwischendurch auch tauschen können.

von Wastl (hartundweichware)


Lesenswert?

Johannes S. schrieb:
> im Anhang die versprochenen Bilder vom Aufbau der Platine.

Kondensatoren die dem Spannungsregler zugeordnet sind gehören
auch direkt zum Spannungsregler positioniert sonst funktionieren
sie nicht wie erwartet. Das gilt auch wenn es sich scheinbar um
eine Gleichspannungs-Problematik handelt. Das ist nämlich nicht
der Fall.

Auf der Platine sind diese Kondensatoren "irgendwo" platziert.

Wenn da vielleicht 1-2 Ampere fliessen sollten dann sind die
betreffenden Versorgungsleitungen zu dünn ausgelegt.

von Johannes S. (vamogu05)


Lesenswert?

Wastl schrieb:
> Johannes S. schrieb:
>> im Anhang die versprochenen Bilder vom Aufbau der Platine.
>
> Kondensatoren die dem Spannungsregler zugeordnet sind gehören
> auch direkt zum Spannungsregler positioniert sonst funktionieren
> sie nicht wie erwartet. Das gilt auch wenn es sich scheinbar um
> eine Gleichspannungs-Problematik handelt. Das ist nämlich nicht
> der Fall.
>
> Auf der Platine sind diese Kondensatoren "irgendwo" platziert.
>
> Wenn da vielleicht 1-2 Ampere fliessen sollten dann sind die
> betreffenden Versorgungsleitungen zu dünn ausgelegt.

Danke Wastl,
Power-Leitungen sind 0,9mm breit. Die Signale die zum Stecker führen 
sind 0,5mm und der Rest 0,3mm breit. Wie breit soll ich die machen?
Letztendlich kenne ich die gesamte Stromaufnahme nicht.

von Johannes S. (vamogu05)


Angehängte Dateien:

Lesenswert?

Thomas W. schrieb:
>> H. H. schrieb:
>>> Man sollte aber kontrollieren ob der Oszillator auch ein taugliches
>>> Signal liefert.
>>
>> Gute Idee, werde ich mir mit dem Oszilloskop ansehen.
>> Danke.
>
> Und das Reset-Signal auch. Man kann natuerlich den Kondensator mit einer
> Taste ueberbruecken.

Im Anhang das Taktsignal wie es am Eingang der CPU anliegt.
Die Resetleitung bleibt nach Anlegen der Spannung für ca. 20ms auf low. 
Gemessen auf der Platine auf der ich Einschalt-Reset-Probleme habe. R1 
ist auf dieser Platine 10k. Bei der zweiten Platine habe ich diesen 
Widerstand auf 22k erhöht und deshalb bleibt RESET auch für ca. 45ms auf 
low nach Anlegen der Versorgungsspannung.

von Vanye R. (vanye_rijan)


Lesenswert?

> Danke für den Hinweis, aber so gut kenne ich mich damit nicht aus. Weiß
> nicht was ein Pigtail ist.

Du darfst am Tastkopf nicht das angeschlossene Massekabel verwenden
sondern musst die hoffentlich mitgelieferte Massefeder nutzen damit
die Verbindung zu einer Masse so kurz wie moeglich ist.

Hier mal ein Bild:

https://www.admess.de/pmk-5x-massefedern-fuer-2-5mm-tastkopf-891-400-004

Ausserdem muss es ein 10:1 Tastkopf sein und du solltest dir
sicher sein das er korrekt an den Oszi angepasst ist.

Dann kannst du mal schauen ob Vcc sauber ist.

Ausserdem liefer doch mal einen Singelshot eines DAten und einer
Adressleitung damit man mal die Flanken beurteilen kann und zwar
so das man auf jedem Bild mehrere Pegelwechsel sehen kann.

Oh..und dein Oszi solltest wenigstens eine Bandbreite von 60Mhz haben, 
idealerweise sogar deutlich mehr.

Vanye

von Johannes S. (vamogu05)


Lesenswert?

Vanye R. schrieb:
>> Danke für den Hinweis, aber so gut kenne ich mich damit nicht aus. Weiß
>> nicht was ein Pigtail ist.
>
> Du darfst am Tastkopf nicht das angeschlossene Massekabel verwenden
> sondern musst die hoffentlich mitgelieferte Massefeder nutzen damit
> die Verbindung zu einer Masse so kurz wie moeglich ist.
>
> Hier mal ein Bild:
>
> https://www.admess.de/pmk-5x-massefedern-fuer-2-5mm-tastkopf-891-400-004
>

Sowas war bei meinem Rigol nicht dabei.


> Ausserdem muss es ein 10:1 Tastkopf sein und du solltest dir
> sicher sein das er korrekt an den Oszi angepasst ist.
>
> Dann kannst du mal schauen ob Vcc sauber ist.
>
> Ausserdem liefer doch mal einen Singelshot eines DAten und einer
> Adressleitung damit man mal die Flanken beurteilen kann und zwar
> so das man auf jedem Bild mehrere Pegelwechsel sehen kann.
>
> Oh..und dein Oszi solltest wenigstens eine Bandbreite von 60Mhz haben,
> idealerweise sogar deutlich mehr.
>
Ich habe nur 50MHz und nicht viel Erfahrung mit einem Oszilloskop. 
Leider!
Werde es morgen trotzdem mal versuchen.

: Bearbeitet durch User
von H. H. (Gast)


Lesenswert?

Johannes S. schrieb:
> Ich habe nur 50MHz und nicht viel Erfahrung mit einem Oszilloskop.

Dennoch sollte das Signal vom Oszillator erheblich eckiger aussehen.

von Bradward B. (Firma: Starfleet) (ltjg_boimler)


Lesenswert?

H. H. schrieb:
> Johannes S. schrieb:
>> Ich habe nur 50MHz und nicht viel Erfahrung mit einem Oszilloskop.
>
> Dennoch sollte das Signal vom Oszillator erheblich eckiger aussehen.

Problematischer als die rundgelutschten Flanken könnte die 
Spitzen-Spitzenspannung von ca. 5.6 V sein.  Erzeugt der 
Spannungswandler tatsächlich 5.0V ?

von Thomas W. (dbstw)


Lesenswert?

Johannes S. schrieb:
> Thomas W. schrieb:
>>> H. H. schrieb:
>>>> Man sollte aber kontrollieren ob der Oszillator auch ein taugliches
>>>> Signal liefert.
>>>
>>> Gute Idee, werde ich mir mit dem Oszilloskop ansehen.
>>> Danke.
>>
>> Und das Reset-Signal auch. Man kann natuerlich den Kondensator mit einer
>> Taste ueberbruecken.
>
> Im Anhang das Taktsignal wie es am Eingang der CPU anliegt.

Das ist Muell. No matter what. Denn Phi2 kommt direkt aus dem 
Quarz-Oszillator. Warum nicht mit freundlichen 1MHz starten und gucken, 
warum Du keinen Rechteck-Signal findest.

Spannungen an der CPU?

von Wastl (hartundweichware)


Lesenswert?

Thomas W. schrieb:
> Das ist Muell. No matter what. Denn Phi2 kommt direkt aus dem
> Quarz-Oszillator.

Wastl schrieb:
> Der Referenztakt PHI2 wird direkt vom Oszillator getrieben,
> sollte da nicht zumindest ein Gatter zum Puffern dazwischen?

von Wastl (hartundweichware)


Lesenswert?

H. H. schrieb:
> Dennoch sollte das Signal vom Oszillator erheblich eckiger aussehen.

Kommt drauf an welche Bandbreite der Rigol hat. Vielleich ist
es viel eckiger und die Messung trügt? Immerhin ist die 3.
Harmonische bereits bei 48 MHz .....

von Thomas W. (dbstw)


Lesenswert?

Johannes S. schrieb:

> Letztendlich kenne ich die gesamte Stromaufnahme nicht.

Dann nimmst Du Dein Multimeter und misst zumindest die 
Groessenordnungen. Der max. Strom der CPU ist 1.5mA/Mhz clock-Frequenz, 
Dein RAM zieht kaum Strom, das EPROM ca. 30mA -> max. 100mA. wenn der 
Kuehlkoerper warm ist ist das falsch.

von Manfred P. (pruckelfred)


Lesenswert?

Vanye R. schrieb:
>> Danke für den Hinweis, aber so gut kenne ich mich damit nicht aus.

Er hat vor allem noch nicht erkannt, die Relevanz der klugen Tipps den 
Verfassern zuzuordnen.

>> Weiß nicht was ein Pigtail ist.
> Du darfst am Tastkopf nicht das angeschlossene Massekabel verwenden
> sondern musst die hoffentlich mitgelieferte Massefeder nutzen damit
> die Verbindung zu einer Masse so kurz wie moeglich ist.

Du schreibst ab oder kannst wirklich eigene Vergleichsmessungen belegen? 
x-tausende Leute messen mit dem Kabelchen am Tastkopf und erzielen damit 
ausreichende Ergebnisse.

von Klaus F. (klaus27f)


Lesenswert?

Johannes S. schrieb:
> Letztendlich kenne ich die gesamte Stromaufnahme nicht.

Hmm, vielleicht mal messen ?? !
Da du einen 7808 auf der Platine hast, ist der Eingangsstrom exakt der 
Betriebsstrom bei 5 Volt hinter dem 7805.
Denn diese Regler machen ja nix anderes als die "überschüssige Spannung" 
in Wärme zu verwandeln.
Eine Amperemeter mit Messbereeich bis mind. 2A sollte ja vorhanden sein. 
ICh wie man's anschließt erklär ich jetzt hier nicht.
Alternativ kann man mit Oszi schauen daß die 5 Volt "glatt" sind und 
keine "Bögen" von 50 / 100 Hz haben.

Für das neue Layout schlage ich dringend vor, einen 
"7805-Pinkompatiblen" Schaltregler vorzusehen (braucht eigentlich nicht 
mehr Platz, v.a. auch kein Kühlblech (weitere Frage: ist so eines 
derzeit am 7805 dran???).
Pollin:    Produktnummer: 352856
Reichelt:  R-78B50-15L

Die Frage "Wie breit soll ich die machen?" zu den Power-Leitungen ist 
einfach zu beantworten: So breit wie möglich.
Keinesfalls weniger als 1,0 mm  , besser wäre 1,5 mm.
Vor allem vom Eingang bis hinter dem (neuen) Spannungsregler.
Wo es sich dann mal verteilt kann man etwas runtergehen.


Zu 6502 , Decodierung, Kuttelmuttel mit R/W, OE an Ram und Eprom:
Bereits gestern verwies ich auf 
http://forum.6502.org/viewtopic.php?f=4&t=7964#p106554
Dort weiter bei http://forum.6502.org/viewtopic.php?f=4&t=7964#p106557
wird das Schaltbild "pocv130.pdf" eines schnellen W65C816 Systems 
gezeigt. In diesem Schaltbild auf Seite 4/12 werden ordentliche "/RD" 
und "/WR" Signale generiert, die dann auf Seite 5/12 zu den "/OE" des 
Ram und Eprom, sowie "/WE" des Ram eingesetzt werden.
Das sieht vernünftig aus.

Mit den Phi-Zeugs bei 6502 kenne ich mich nicht aus (bei Z80 alles 
einfacher und klarer). Aber auch da mal in o.g. Plan schauen und 
vergleichen. Irgendwie ist da auch der "Wait" Generator noch mit drin.

von Johannes S. (vamogu05)


Lesenswert?

Bradward B. schrieb:
> Problematischer als die rundgelutschten Flanken könnte die
> Spitzen-Spitzenspannung von ca. 5.6 V sein.  Erzeugt der
> Spannungswandler tatsächlich 5.0V ?

Ja, ziemlich genau. Anzeige Multimeter: 4,98

Thomas W. schrieb:
> Das ist Muell. No matter what. Denn Phi2 kommt direkt aus dem
> Quarz-Oszillator. Warum nicht mit freundlichen 1MHz starten und gucken,
> warum Du keinen Rechteck-Signal findest.


Ok, werde ich morgen mit 1MHz wiederholen.

> Spannungen an der CPU?
Wie am Ausgang des 7805 5,0V.

Wastl schrieb:
> Kommt drauf an welche Bandbreite der Rigol hat.

50MHz.

Thomas W. schrieb:
> Dann nimmst Du Dein Multimeter und misst zumindest die
> Groessenordnungen. Der max. Strom der CPU ist 1.5mA/Mhz clock-Frequenz,
> Dein RAM zieht kaum Strom, das EPROM ca. 30mA -> max. 100mA. wenn der
> Kuehlkoerper warm ist ist das falsch.

Ja, Kühlkörper ist deutlich warm, auch wenn das Brett noch gar nicht 
dran hängt. Ist aber bei der funktionierenden Platine genau so.

von Johannes S. (vamogu05)


Lesenswert?

Klaus F. schrieb:
> Johannes S. schrieb:
>> Letztendlich kenne ich die gesamte Stromaufnahme nicht.
>
> Hmm, vielleicht mal messen ?? !
 Naja, da muss ich zumindest irgendwo eine Leiterbahn auftrennen. Das 
wollte ich mir noch ersparen. Werde ich aber probieren.

> Da du einen 7808 auf der Platine hast, ist der Eingangsstrom exakt der
> Betriebsstrom bei 5 Volt hinter dem 7805.

Ahh, ok, dann kann ich mich schon vor dem Spannungsregler rein hängen. 
Das müsste relativ einfach gehen. Danke für den Tipp.

> Denn diese Regler machen ja nix anderes als die "überschüssige Spannung"
> in Wärme zu verwandeln.
> Eine Amperemeter mit Messbereeich bis mind. 2A sollte ja vorhanden sein.
> ICh wie man's anschließt erklär ich jetzt hier nicht.
> Alternativ kann man mit Oszi schauen daß die 5 Volt "glatt" sind und
> keine "Bögen" von 50 / 100 Hz haben.

Ja, wie man Strom misst weiß ich. Die 5 Volt rauschen schon leicht, wenn 
ich das mit dem Oszi betrachte. So ca. +-0,2V.

>
> Für das neue Layout schlage ich dringend vor, einen
> "7805-Pinkompatiblen" Schaltregler vorzusehen (braucht eigentlich nicht
> mehr Platz, v.a. auch kein Kühlblech (weitere Frage: ist so eines
> derzeit am 7805 dran???).

Ja, ein kleiner Alu-Kühlkörper für TO220 Bauteile.

> Pollin:    Produktnummer: 352856
> Reichelt:  R-78B50-15L
>

Ok, werde ich mir besorgen. Habe hier noch einen Traco der allerdings 
nur bis 1A liefert. Mal sehen wieviel Stromaufnahme ich wirklich habe.

> Die Frage "Wie breit soll ich die machen?" zu den Power-Leitungen ist
> einfach zu beantworten: So breit wie möglich.
> Keinesfalls weniger als 1,0 mm  , besser wäre 1,5 mm.
> Vor allem vom Eingang bis hinter dem (neuen) Spannungsregler.
> Wo es sich dann mal verteilt kann man etwas runtergehen.

Danke ist ein guter Hinweis. Werde ich beim nächsten Layout so umsetzen.
>
> Zu 6502 , Decodierung, Kuttelmuttel mit R/W, OE an Ram und Eprom:
> Bereits gestern verwies ich auf
> http://forum.6502.org/viewtopic.php?f=4&t=7964#p106554
> Dort weiter bei http://forum.6502.org/viewtopic.php?f=4&t=7964#p106557
> wird das Schaltbild "pocv130.pdf" eines schnellen W65C816 Systems
> gezeigt. In diesem Schaltbild auf Seite 4/12 werden ordentliche "/RD"
> und "/WR" Signale generiert, die dann auf Seite 5/12 zu den "/OE" des
> Ram und Eprom, sowie "/WE" des Ram eingesetzt werden.
> Das sieht vernünftig aus.

Danke, ich hab es jetzt gefunden. Hatte es gestern nicht mehr auf dem 
Schirm. Werde ich bei der nächsten Version dieser Platine so umsetzen.

> Mit den Phi-Zeugs bei 6502 kenne ich mich nicht aus (bei Z80 alles
> einfacher und klarer). Aber auch da mal in o.g. Plan schauen und
> vergleichen. Irgendwie ist da auch der "Wait" Generator noch mit drin.

von Vanye R. (vanye_rijan)


Lesenswert?

> Du schreibst ab oder kannst wirklich eigene Vergleichsmessungen belegen?
> x-tausende Leute messen mit dem Kabelchen am Tastkopf und erzielen damit
> ausreichende Ergebnisse.

Machst du Witze? Es geht hier um 16MHz Rechteck. Da hast du Frequenzen 
bis in den UKW Bereich die du sehen musst um die Kurvenform zu 
beurteilen.

Vorhanden ist aber ein 50MHz Rigol, keine Ahnung wie man damit umgeht, 
falsche Anbindung an die Platine und vermutlich ein Tastkopf der noch 
niemals kompensiert wurde. Damit kannst du Messungen bei zappelnden 
Gleichstrom machen, aber nicht mehr.
BTW: Fuer Messungen an Versorgungsspannunge hab ich sogar eine TPR4000 
hier rumliegen die extra dafuer gemacht wurde. Aber natuerlich kann man 
das bei Leuten die ihr Geld nicht mit sowas verdienen eher nicht 
erwarten. Aber man kann sich wenigstens Anstrengen so gut wie moeglich 
zu messen.
Da Bild vom Takt hier ist doch von vorne bis hinten ein Witz. Wuerde 
mich nicht wundern wenn das ein 1:1 Tastkopf war.

Vanye

von Johannes S. (vamogu05)


Angehängte Dateien:

Lesenswert?

Im Anhang zwei Oszillogramme. Das eine zeigt das 1MHz- Taktsignal. Das 
zweite den Flankenanstieg eines Datenbits.
Das Überschwingen des Taktsignals finde ich schon ein wenig 
beunruhigend.
Zum Flankenanstieg kann ich nichts dazu sagen. Schätze etwas langsam 
vielleicht.
Die Stromaufnahme der Platine liegt bei maximal 300 - 350mA. Mit 
angestecktem Schachbrett. Im "Idle-Mode" zeigt das Multimeter 0,27A 
während eines Rechenvorgangs 0,29A und knapp über 0,3A bei Zugausgabe 
mit Signalton.

Da ich noch einen deutlich schnelleren SRAM hier habe werde ich 
versuchen den einzubauen. Muss mir dafür aber erst einen Adapter bauen. 
Von 600mil auf 300mil, da der schnelle RAM schmäler ist.
Irgendwelche Vorschläge was ich noch testen könnte?
Nochmals Danke für die vielen Vorschläge und Anregungen.

von (prx) A. K. (prx)


Lesenswert?

Johannes S. schrieb:
> Das Überschwingen des Taktsignals finde ich schon ein wenig
> beunruhigend.

Wäre typisch für eine lange Masseanbindung des Tastkopfs per Krokokabel, 
der erwähnte "Pigtail". Eine steile Flanke produziert Oszillationen in 
einem solchen Tastkopf-Anschluss. Wer misst misst Mist.

: Bearbeitet durch User
von (prx) A. K. (prx)


Lesenswert?

Manfred P. schrieb:
> kannst wirklich eigene Vergleichsmessungen belegen?

Sowas hatte ich vor vielen Jahren selbst ausprobiert. Mit Takt aus 74AC, 
für extra ruppige Flanken, weil es mir genau darum ging. Der Unterschied 
zwischen klassischem Massekabel und einer kurzen Anbindung zum 
Masserahmen des Tastkopfs war erheblich. 100 MHz Rigol.

> x-tausende Leute messen mit dem Kabelchen am Tastkopf und erzielen damit
> ausreichende Ergebnisse.

Wer um solche Effekte weiss, ignoriert sie ggf auch schon mal.

Es hilft gewissermassen, solche Messungen mit einem 20 MHz Oszi zu 
machen. Das vermeidet Irritationen, die bei einem Oszi mit ausreichend 
hoher Bandbreite auftreten. :)

: Bearbeitet durch User
von (prx) A. K. (prx)


Lesenswert?

Johannes S. schrieb:
> Da ich noch einen deutlich schnelleren SRAM hier habe werde ich
> versuchen den einzubauen.

Spar dir den Aufwand, so lange es auch bei 1 MHz nicht stabil läuft. Je 
schneller die Bauteile sind, ob RAMs oder Logikbausteine, desto 
anspruchsvoller ist das Layout, wenn dadurch die Flanken steiler und die 
Transienten im Stromverbrauch höher werden. Ersetze 74LS/HC durch 74AC, 
oder normale RAMs durch Cache-RAMs, und du kriegst vielleicht Probleme, 
die überhaupt erst dadurch auftreten.

: Bearbeitet durch User
von Vanye R. (vanye_rijan)


Lesenswert?

> Das Überschwingen des Taktsignals finde ich schon ein wenig
> beunruhigend.

Wenn das wirklich so vorhanden ist, ja dann ist das beunruhigend.
Deshalb hab ich gesagt das es wichtig ist vernuenftig zu messen weil
du sonst genau sowas siehst obwohl es nicht da ist.

Also:

1. Tastkopf auf 10:1 stellen.

2. Am Oszi kompensieren

3. Krokoklemme ab und Federklemme aus etwas Silberdraht
   am Tastkopf selber draufwickeln und dann GND in 1-2cm
   Abstand vom Messpunkt auf der Platine suchen.

Vanye

von Joachim B. (jar)


Lesenswert?

Vanye R. schrieb:
> Machst du Witze? Es geht hier um 16MHz Rechteck. Da hast du Frequenzen
> bis in den UKW Bereich die du sehen musst um die Kurvenform zu
> beurteilen.

jau, der Faktor >=5 also über 80MHz Bandbreite wäre nicht schlecht will 
man noch die Anstiegszeiten vernünftig auflösen (besser wäre natürlich 
10-fache Bandbreite 160MHz)

von Klaus F. (klaus27f)


Lesenswert?

Joachim B. schrieb:
> Vanye R. schrieb:

>> Machst du Witze? Es geht hier um 16MHz Rechteck.
>> Da hast du Frequenzen bis in den UKW Bereich
>> die du sehen musst um die Kurvenform zu beurteilen.

Naja, Leute, etwas überbewertet hier.
Weil, wenn der Oszillator läuft und die Frequenz stimmt, dann passt das.
16 MHz auf Eurokarte, das ist eher unkritisch.
Man sieht ja Leitungslänge und Anzahl Pins an diesem Netz.
Wie wird sie dann denn sein, die Kurvenform aus 'nem digitalen IC?
Ja: Rechteckig.
Am Hameg 412 sah das vor 40 Jahren auch so aus und hat funktioniert.
Wichtig ist aber: Tastkopf 1:10 verwenden (wurde bereits geschrieben).

von Vanye R. (vanye_rijan)


Lesenswert?

> Weil, wenn der Oszillator läuft und die Frequenz stimmt, dann passt das.
> 16 MHz auf Eurokarte, das ist eher unkritisch.

Nein, es ist beherrschbar wenn man alles richtig gemacht hat. Aber der 
Ausgangspunkt dieses Threads ist das nicht alles richtig gemacht wurde 
und wenn man dann nicht die Flanken sehr gut sehen kann dann kann man 
das nicht beurteilen. Und wir haben hier keine 16Mhz. Du hast hier jeder 
Menge Oberwellen die du sehen willst und zwar so wie sie sind, nicht so 
wie sie bei schlechter Messung vergurkt werden.

Vanye

von Axel R. (axlr)


Angehängte Dateien:

Lesenswert?

Bei mir ist das nun auch schon wieder 30Jahre her (AH52BASIC oder so?).
War jetzt auch kein zweiphasentakt, sondern 8052 mit eingebautem 
Basic-Interpreter (hatten sich viele). Das Layout war aber dort so 
organisiert, dass die Daten- und Adressleitungen so kurz wie möglich 
gehalten wurden. Ob die nun bei 16Mhz auch schon alle gleich lang sein 
müssen, weiß ich nicht und ob evtl. einige steuerleitungen absichtlich 
länger oder kürzer sein müssen, kann ich mir auch nicht vorstellen. Aber 
man kann das ja, bei den heutigen Möglichkeiten, beim routing mit in 
Betracht ziehen. So kann man den Adressbus und den Datenbus doch sicher 
als „Drahthaufen“ Routen und hat beispielsweise D0-D7 gemeinsam am 
Mauszeiger hängen. Durch die Beine von ThT (dachte, das soll SMD werden) 
kommt man ja wohl locker hindurch.
Ich hatte damals so ein dickes Buch „U880 und Peripherie“ aus m 
Militärverlag. Da war alles(!) haarklein erklärt, wer was wann macht und 
wer welche Signale zu welcher Zeit erwartet. Sowas muss es doch hier 
auch geben.
Ich weiß nicht recht; man kann sowas nicht mal eben einfach so nachbauen 
und hoffen, dass es funktioniert.

Na auf jeden Fall tät ich die ICs so anordnen, dass die AdressPins und 
auch die Daten-Pins schön in einer Reihe liegen und sinngemäß, am Timing 
angelegt, so Routen, dass Signale auch alle halbwegs übernommen werden 
(hab gelesen, dass die hier sogar bei JEDER Takflanke Neachtung finden). 
Von daher: Timings studieren, neues Layout.
Das kommt nämlich davon, wenn man für 8Mark ein komplettes Design 
gefertigt bekommt. Wenn das 800 gekostet hätte, wärest du garnicht auf 
die Idee gekommen, da irgendeinen „freerouter“ dranzusetzen, sondern 
hättest dich solange mit dem Timing-Diagrammen beschäftigt, bis du sie 
verstanden hättest.
Jetzt kannste alles nochmal von vorne entwerfen. Scheisse. Schade um die 
viele, gutgemeinte, Arbeit bis hierher.

von Vanye R. (vanye_rijan)


Lesenswert?

> Bei mir ist das nun auch schon wieder 30Jahre her (AH52BASIC oder so?).
> War jetzt auch kein zweiphasentakt, sondern 8052 mit eingebautem
> Basic-Interpreter (hatten sich viele).

[Doublepalmface]

Die ollen Schnarchkisten liefen mit 1Mhz. Sie liefen deshalb nur mit 
1Mhz weil die olle Elektronik damals so lahm war. Die Frequenz ist nur 
ein Nebenprodukt der Anstiegszeit.
Das erlaubt ueberhaubt keinen Vergleich mit aktuellen Bauteilen.

Schau mal hier:

https://de.wikipedia.org/wiki/Rechteckschwingung#Fourieranalyse

Und falls man da Ringing bis zum abwinken hat dann kann man, wie ich 
schon sagte da mal einen 100R zwischen machen und schauen ob es dann 
zumindest mal besser wird. So kann man vielleicht aus einem schlechten 
Layout ein funktionierende machen. Es muss ja nicht in den EMV test. :-D

Vanye

von Johannes S. (vamogu05)


Lesenswert?

Axel R. schrieb:
> Na auf jeden Fall tät ich die ICs so anordnen, dass die AdressPins und
> auch die Daten-Pins schön in einer Reihe liegen und sinngemäß, am Timing
> angelegt, so Routen, dass Signale auch alle halbwegs übernommen werden
> (hab gelesen, dass die hier sogar bei JEDER Takflanke Neachtung finden).
> Von daher: Timings studieren, neues Layout.
> Das kommt nämlich davon, wenn man für 8Mark ein komplettes Design
> gefertigt bekommt. Wenn das 800 gekostet hätte, wärest du garnicht auf
> die Idee gekommen, da irgendeinen „freerouter“ dranzusetzen, sondern
> hättest dich solange mit dem Timing-Diagrammen beschäftigt, bis du sie
> verstanden hättest.
> Jetzt kannste alles nochmal von vorne entwerfen. Scheisse. Schade um die
> viele, gutgemeinte, Arbeit bis hierher.

Danke Axel,
du hast natürlich vollkommen recht. Ich wußte halt nicht, dass das 
Timing so wichtig ist. Ich gebe zu, dass ich da etwas zu naiv an die 
Sache gegangen bin.
Ja, an einem neuen Routing führt kein Weg vorbei.
Ich sehe das eher als Lehrgeld, da es sich um ein Hobbyprojekt handelt, 
spielt die (verlorene) Zeit nur eine untergeordnete Rolle.
Prinzipiell funktioniert die Platine ja mit 16MHz, aber eben erst nach 
20min. Einschaltdauer. Dafür hätte ich schon gerne eine Erklärung. Ist 
es wirklich so, dass das Timing so knapp daneben ist, dass erst nach 
einer gewissen Temperaturerhöhung eines Bauteils alles funktioniert? 
Kaum zu glauben.

von Jens G. (jensig)


Lesenswert?

Vanye R. schrieb:
> Machst du Witze? Es geht hier um 16MHz Rechteck. Da hast du Frequenzen
> bis in den UKW Bereich die du sehen musst um die Kurvenform zu
> beurteilen.
>
> Vorhanden ist aber ein 50MHz Rigol,

Ja - macht ja nix? Aus der gesehenen Anstiegszeit, der Anstiegszeit des 
Oszis lt. Datenblatt, und hoffentlich einigermaßen abgeglichenem 
Tastkopf läßt sich lässig der Anstieg des Signals selber bestimmen, 
solange die Signal-Zeiten nicht zu sehr von der Oszi-Anstiegszeit gegen 
0 zustreben. Für übliche MOS, CMOS, TTL völlig ausreichend, um die 
Signalanstiegszeiten als ausreichend oder schon als kritisch zu 
betrachten, oder Flankendifferenzen zu ermitteln. Um mehr geht es hier 
ja nicht ...

von Jens G. (jensig)


Lesenswert?

Johannes S. schrieb:
> Danke Axel,
> du hast natürlich vollkommen recht. Ich wußte halt nicht, dass das
> Timing so wichtig ist. Ich gebe zu, dass ich da etwas zu naiv an die
> Sache gegangen bin.
> Ja, an einem neuen Routing führt kein Weg vorbei.

Ach, laß Dich nicht so einwickeln. Wenn hier, wie von manchen 
angesprochen, irgendwelche Signallaufzeiten auf dem Kupfer eine Rolle 
spielen sollten, dann ist das gesamte Schaltungsdesign schon 'eh Kacke, 
und nicht das PCB-Design. Selbst bei einem Leiterzug mit ein paar 10cm 
Länge hat man gerade Signallaufzeiten weit unterhalb einer 
Gatterlaufzeit von "normalen" TTL- oder HC-CMOS. Und dann kommt es auch 
eher nur auf Laufzeit-Differenzen an, und nicht so sehr auf absolute 
Werte. Da sind paar cm oder gar dm noch immer unkritisch bei einem 
16MHz-System (Taktzeiten bei reichlich 60ns).
Viel wichtiger ist da das Schaltungsdesign, bei dem Gatterlaufzeiten 
sauber mit eingerechnet sind, so daß die Timing-Angaben der ICs lt. 
Datenblatt sicher mit etwas Reserve erfüllt sind.
Wenn das System erst nach einer Warmlaufphase sicher läuft, selbst bei 
nur wenigen MHz, dann hast Du wohl irgendwo ein Problem mit zu knappen 
Flanken-Timings zw. irgendwelchen "zueinander gehörenden" Signalen. Da 
muß man eben die Datenblätter hernehmen, und schauen, ob der Schaltplan 
potentiell sicher die Timings der IC erfüllen kann.

> Ich sehe das eher als Lehrgeld, da es sich um ein Hobbyprojekt handelt,
> spielt die (verlorene) Zeit nur eine untergeordnete Rolle.
> Prinzipiell funktioniert die Platine ja mit 16MHz, aber eben erst nach
> 20min. Einschaltdauer. Dafür hätte ich schon gerne eine Erklärung. Ist
> es wirklich so, dass das Timing so knapp daneben ist, dass erst nach
> einer gewissen Temperaturerhöhung eines Bauteils alles funktioniert?
> Kaum zu glauben.

Ja, so wird es eben sein ...

von Norbert (der_norbert)


Angehängte Dateien:

Lesenswert?

Mit einigem Amüsement beobachte ich die Diskussion um die schlimmen und 
kaum zu bändigenden 16MHz und das überaus delikate Routing auf der 
Leiterplatte.

Hier mal ein ›Quick and dirty hack‹ mit einem fliegend verdrahteten TFT 
Display. Spezifiziert isses übrigens für ~15MHz auf dem SPI.
Läuft aber problemlos schneller (mit einem wirklich uralten analogen 
50MHz Oszilloskop verifiziert).

von Thomas W. (dbstw)


Lesenswert?

Jens G. schrieb:
> Johannes S. schrieb:
>> Danke Axel,
>> du hast natürlich vollkommen recht. Ich wußte halt nicht, dass das
>> Timing so wichtig ist. Ich gebe zu, dass ich da etwas zu naiv an die
>> Sache gegangen bin.
>> Ja, an einem neuen Routing führt kein Weg vorbei.
>
> Ach, laß Dich nicht so einwickeln. Wenn hier, wie von manchen
> angesprochen, irgendwelche Signallaufzeiten auf dem Kupfer eine Rolle
> spielen sollten, dann ist das gesamte Schaltungsdesign schon 'eh Kacke,
> und nicht das PCB-Design. Selbst bei einem Leiterzug mit ein paar 10cm
> Länge hat man gerade Signallaufzeiten weit unterhalb einer
> Gatterlaufzeit von "normalen" TTL- oder HC-CMOS.

Insbesondere weil die Maschine schon ein Problem hat, wenn er einen 1MHz 
Oszillator verwendet. Und das das Ding nach 20min Burn-In einwandfrei 
laeuft (unabhaengig von Takt-Frequenz).

Ein paar Sachen waeren schon verbesserungsfaehig, aber da das Ding ja 
nach 20 Minuten laeuft, laeuft es ja prinzipiell.

Meine Vorschlaege waren leider auch in flasche Richtung (Was man noch 
gucken koennte waere die Guete der Stromversorgung, aber so schlecht ist 
ein 7805 auch wiederum nicht, die Schaltung ist auch Deppen geeignet).

Mir faellt z.Z. nichts dazu ein.

Mah!

Gruesse

Th.

von H. H. (Gast)


Lesenswert?

Norbert schrieb:
> Mit einigem Amüsement

Habe ich deinen Apfel/Kartoffel-Vergleich gelesen.

von Norbert (der_norbert)


Lesenswert?

H. H. schrieb:
> Norbert schrieb:
>> Mit einigem Amüsement
>
> Habe ich deinen Apfel/Kartoffel-Vergleich gelesen.

Na dann denkst du bestimmt, das mögliche Signalverzerrung/Verschleifung 
und Phasenverschiebungen bei 62.5 MHz auf dem SPI keinerlei Bedeutung 
haben. Da gratuliere ich aber herzlich. ;-)

von H. H. (Gast)


Lesenswert?

Norbert schrieb:
> Na dann denkst du bestimmt,

An ganz was anderes als du.

von Dietrich L. (dietrichl)


Lesenswert?

Johannes S. schrieb:
> Ja, an einem neuen Routing führt kein Weg vorbei.

Dann würde ich auch gleich auf 4 Layer übergehen: GND, VCC und 2x 
Signale.
Neben einer stabilen Versorgung können dann auch die Signale kurz und 
direkt verdrahtet werden.

Wenn nicht gleich 4-fach-Layer, dann sollte zumindest der GND besser 
vernetzt sein. Bei dir sind beim GND etliche "Halbinseln" entstanden, 
die teilweise recht locker "rumhängen". Also zumindest diese Inseln mit 
dicken Leiterbahnen zusammenhäkeln.
Hintergrund: Das Schalten von CMOS produziert hohe kurze Stromspitzen 
auf den Versorgungsleitungen. Wenn dann die GNDs an verschiedenen Orten 
gegeneinander "hüpfen" können die dazwischen ausgetauschten Signale 
falsche Ergebnisse liefern. Der GND ist die Basis, auf die sich alle 
Signale beziehen.
Zu dem Thema gehört auch die richtige Anordnung der Stützkondensatoren: 
mindestens einer an jedem IC (was du lt. Schaltplan ja auch gemacht 
hast) in der Nähe der Vorsorgungs-Pins.

: Bearbeitet durch User
von Axel R. (axlr)


Lesenswert?

Okay okay; noch ein blöder Vergleich, der evtl. genauso hinkt.
Mich erinnert das daran, „als wie als wenn“ wenn man bei SPI den 
falschen Mode verwendet und die Daten trotzdem irgendwie als gültig 
erklärt werden, trotz falscher Clock-Flanke, weils eben gerade noch so 
passt.

von Norbert (der_norbert)


Lesenswert?

Axel R. schrieb:
> Okay okay; noch ein blöder Vergleich, der evtl. genauso hinkt.
> Mich erinnert das daran, „als wie als wenn“ wenn man bei SPI den
> falschen Mode verwendet und die Daten trotzdem irgendwie als gültig
> erklärt werden, trotz falscher Clock-Flanke, weils eben gerade noch so
> passt.

Es ging auch nicht darum, das die beiden Dinge verglichen werden 
sollten. Das scheint — wie man weiter oben erkennen kann — bei einigen 
Lesern nicht vollständig angekommen zu sein.

Es geht vielmehr darum, das hier ein riesiges Bohei um eine Schaltung 
macht, welche man auf einer Lochstreifenplatine (funktionierend) 
aufbauen kann.

Das die Schaltung ja selbst bei einem 1MHz Takt (etwas schneller als 
Morsetaste) nicht läuft, scheint geflissentlich ignoriert zu werden.

Dafür wird über dringend benötigtes Laborequipment philosophiert, 
welches selbst für den Bau eines Raumschiffes Overkill wäre.

von Johannes S. (vamogu05)


Lesenswert?

Dietrich L. schrieb:
> Wenn nicht gleich 4-fach-Layer, dann sollte zumindest der GND besser
> vernetzt sein. Bei dir sind beim GND etliche "Halbinseln" entstanden,
> die teilweise recht locker "rumhängen". Also zumindest diese Inseln mit
> dicken Leiterbahnen zusammenhäkeln.

Danke Dietrich, ich werde beim nächsten Layout darauf achten. Das war 
mir gar nicht bewußt, dass ich GND-Halbinseln habe.

Dietrich L. schrieb:
> Zu dem Thema gehört auch die richtige Anordnung der Stützkondensatoren:
> mindestens einer an jedem IC (was du lt. Schaltplan ja auch gemacht
> hast) in der Nähe der Vorsorgungs-Pins.

Ja, darauf habe ich auch geachtet.

Norbert schrieb:
> Das die Schaltung ja selbst bei einem 1MHz Takt (etwas schneller als
> Morsetaste) nicht läuft, scheint geflissentlich ignoriert zu werden.

Ja, momentan ist es so, dass die Platine schon nach ca. 10min. 
Einschaltdauer einwandfrei läuft, weil es mittlerweile im Zimmer schon 
27°C hat. Also eindeutig ein thermisches Problem. Leiterbahnen schlecht 
geroutet, zu dünn oder ähnliches, vermutlich. Sofort nach dem 
Einschalten läuft die Platine zwar, aber der Schachcomputer zeigt 
während des Rechenvorgangs seinen bis dahin gefundenen, besten Zug an. 
Diese Funktion dürfte aber nicht eingeschalten sein und läßt sich auch 
nicht ausschalten. Erst wenn das System ausreichend warm ist.

Ich habe mir überlegt wie ich rausfinden könnte ob es zu Problemen beim 
RAM oder ROM-Zugriff kommt. Dazu könnte ich mal ein kleines Testprogramm 
ins EProm brennen und schauen was passiert. Eine Art Speichertest.
Parallel dazu arbeite ich bereits an einer neuen Schaltung. Werde OE vom 
RAM/ROM wie oben empfohlen ansteuern. Möchte diesmal alles richtig 
machen :-). Danke für die vielen Hinweise und Tipps.

: Bearbeitet durch User
von Manfred P. (pruckelfred)


Lesenswert?

H. H. schrieb:
>> Mit einigem Amüsement
> Habe ich deinen Apfel/Kartoffel-Vergleich gelesen.

Ich habe hier Kartoffeln, die geschält wie ein Apfel aussehen und 
schlecht schmecken.

Zu anderen Spekulationen: Ich hatte eine CMOS-Logik layouten lassen und 
drei Platinen bestückt, nur eine davon funktionierte.

Ich hatte mich an einer Stelle mit den Flanken (Zähler / FlipFlops) 
vertan, weshalb sie theoretisch garnicht funktioniert. Bei der einen war 
wohl ein Gatter zufällig etwas langsamer ... in die Richtung könnte man 
auch bei Johannes' Aufbau gucken.

von Carsten W. (eagle38106)


Lesenswert?

Berücksichtige bei einem neuen Layout doch mal die Klassiker bei 
doppelseitigen Leiterplatten:
* Beim Placement die 100nF Caps beim VCC-Anschluss ansiedeln
* Top: Nur waagerechte Leiterbahnen
* Bottom: Nur senkrechte Leiterbahnen
* Dicke Power-Leitungen als erstes routen
* Taktleitungen (Clock, R/W etc.) mit mehr Abstand zum Rest verlegen
* Busse möglichst gleichförmig routen
* min. 20% auf die minimalen Breiten- bzw. Abstandsvorgaben des 
LP-Herstellers aufschlagen. Gibt hinterher Reserven.
* Wenn beim fertigen Layout das Design vereinfacht werden kann, kann man 
auch von der waagerecht/senkrecht Aufteilung abweichen und Vias sparen. 
Aber erst, wenn das Layout fertig ist!

waagerecht/senkrecht bezogen auf die Ausrichtung der ICs (senkrecht)

von Wolfgang S. (wolfgang_s278)


Lesenswert?

Hat schon mal jemand an eine kalte Lötstelle gedacht?
Also mal nachlöten.

Sind in der Ausfallzeit die Zustände an allen Adress- und Datenleitungen 
an der CPU und den anderen Bausteinen jeweils gleich?

Gibt es überhaupt Signalveränderungen während den toten 20 Minuten?

Gibt es beim erneuten Einschalten eine  Minuten nach der ersten Totzeit 
wieder eine 20minütige Totzeit?

von Johannes S. (vamogu05)


Lesenswert?

Carsten W. schrieb:
> Berücksichtige bei einem neuen Layout doch mal die Klassiker bei
> doppelseitigen Leiterplatten:
> * Beim Placement die 100nF Caps beim VCC-Anschluss ansiedeln
> * Top: Nur waagerechte Leiterbahnen
> * Bottom: Nur senkrechte Leiterbahnen
> * Dicke Power-Leitungen als erstes routen
> * Taktleitungen (Clock, R/W etc.) mit mehr Abstand zum Rest verlegen
> * Busse möglichst gleichförmig routen
> * min. 20% auf die minimalen Breiten- bzw. Abstandsvorgaben des
> LP-Herstellers aufschlagen. Gibt hinterher Reserven.
> * Wenn beim fertigen Layout das Design vereinfacht werden kann, kann man
> auch von der waagerecht/senkrecht Aufteilung abweichen und Vias sparen.
> Aber erst, wenn das Layout fertig ist!
>
> waagerecht/senkrecht bezogen auf die Ausrichtung der ICs (senkrecht)

Danke Carsten, das sind sehr gute Tipps, die ich mir merken werde.

Wolfgang S. schrieb:
> Hat schon mal jemand an eine kalte Lötstelle gedacht?
> Also mal nachlöten.

Ich habe mittlerweile schon eine zweite Platine aufgebaut mit dem 
gleichen Fehlerbild.

> Sind in der Ausfallzeit die Zustände an allen Adress- und Datenleitungen
> an der CPU und den anderen Bausteinen jeweils gleich?
Ein richtiger Ausfall ist es meist nicht. Der Schachcomputer ist nicht 
tot, rechnet noch, zeigt aber Funktionen an, die nicht eingeschaltet 
wurden, oder läßt sich nicht mehr unterbrechen.

> Gibt es überhaupt Signalveränderungen während den toten 20 Minuten?
Wie oben erwähnt, tot ist er nicht, er arbeitet nur anders. Manchmal 
kommt es aber auch zu Fehlern wo er nicht mehr bedienbar ist. Ich habe 
den Eindruck, dass er fehlerhafte Werte aus dem RAM liest. Wieso er 
dabei nicht komplett unspielbar wird, weiß ich nicht. Es scheint nur 
gewisse Speicherzellen zu betreffen. Das RAM wurde schon getauscht.
Meistens wird aber die IRQ-Routine abgearbeitet, da LEDs blinken und er 
mit einer Tonausgabe auf Tastendrucke reagiert.

> Gibt es beim erneuten Einschalten eine  Minuten nach der ersten Totzeit
> wieder eine 20minütige Totzeit?
Nein, wenn er mal "warm" ist dann funktioniert es mehrere Stunden lang 
(über Nacht getestet.

von Tom K. (katdroid)


Lesenswert?

Hallo Johannes,

erstmal Respekt für deine bisherige Arbeit. Da gehört schon Einiges 
dazu, mal eben so ne Platine zu reengineeren und komplett mit KiCad neu 
machen und aufzubauen.

Du hast ja leider nicht (vielleicht hab ich es auch überlesen) 
geschrieben, welcher Schachcomputer das genau ist, ich hab aber gesehen, 
dass du dein Layout ARB genannt hast. Handelt es sich da um einen Auto 
Response Bord(ARB) von Chafitz? Dann verstehe ich, warum du das wieder 
zum Laufen bringen willst, das scheinen ja tolle Dinger gewesen zu sein 
damals in den 80ern.
Jedenfalls die, die ich bei - 
https://www.schachcomputer-online-museum.de/index-1/applied-conceps-chafitz/chafitz-auto-response-board-1980 
gesehen habe.

Wenn ich dich richtig verstanden habe, dann hast du das Board zweimal 
aufgebaut und beides Mal den gleichen Fehler und mit 1Mhz Quarz 
ebenfalls das gleiche Fehlerbild. Dann ist das sehr deterministisch und 
deutet m. M. nicht auf Timing Problem hin, jedenfalls solltest du andere 
Ursachen erst ausschließen.

Besorge dir unbedingt Kältespray, wie oben schon mehrfach empfohlen, 
damit wirst du den thermischen Fehler vielleicht schnell eingrenzen 
können.

Johannes S. schrieb:
> Ich habe mir überlegt wie ich rausfinden könnte ob es zu Problemen beim
> RAM oder ROM-Zugriff kommt. Dazu könnte ich mal ein kleines Testprogramm
> ins EProm brennen und schauen was passiert. Eine Art Speichertest.
Das wollte ich dir auch vorschlagen. Vielleicht kannst du den Code 
soweit nachvollziehen um zu verstehen, wie die LEDs auf dem Schachfeld 
angesteuert werden, dass wird ja sicher mit dem VIA über ne Matrix 
passieren, oder ist in dem Schachbrett selbst auch noch Hardware 
verbaut?
Vielleicht postest du mal ein Photo.

Dann könntest du alle 1KByte eine LED weiterschalten und immer A5 5A 
oder sowas ins RAM schreiben und auslesen und testen, die ganzen 64KB 
durch. Womöglich fällt dir dann auf, welche Speicherbank/Adressbit die 
Probleme macht und du weißt, wo du den Fehler suchen musst, oder du 
weißt wenigstens, dass der Speicher in Ordnung ist.

Vielleicht erklärst du nochmal, was du mit dem Vergrößern der 
Eröffnungbibliothek genau meinst, das hab ich nicht verstanden, was du 
da geändert hast. Es zeigt sich halt immer wieder, dass genau das nicht 
funktioniert, was man gegenüber dem Original verändert hat, da würde ich 
auch nochmal drüberschauen.

Ich wünsche dir weiterhin gutes Gelingen und viel Erfolg bei der 
elendigen Fehlersuche

VG Thomas

von Johannes S. (vamogu05)


Lesenswert?

Hallo Tom,

danke für Deinen freundlichen Post.

Tom K. schrieb:
> Du hast ja leider nicht (vielleicht hab ich es auch überlesen)
> geschrieben, welcher Schachcomputer das genau ist, ich hab aber gesehen,
> dass du dein Layout ARB genannt hast. Handelt es sich da um einen Auto
> Response Bord(ARB) von Chafitz? Dann verstehe ich, warum du das wieder
> zum Laufen bringen willst, das scheinen ja tolle Dinger gewesen zu sein
> damals in den 80ern.

Ja, es ist das Auto Response Board von Chafitz. Ich habe vier Stück 
davon. Einen komplett Original. Vor Jahren restaurieren lassen, sieht 
schöner aus als Neu. Zwei mit 130MHz Emulation auf einem Beaglebone und 
eben diesen der eine 16MHz-Platine verbaut hat, die ein Elektroniker vor 
ca. 10 Jahren entwickelte. Leider hat er sich bei der Decodierung des 
Adressbereichs nicht allzu sehr bemüht und den Bereich von $2000 - $3FFF 
sowohl mit ROM als auch mit RAM belegt. Daher ist dieser Bereich nicht 
nutzbar. Darum habe ich mich entschlossen die Platine komplett neu 
nachzumachen und das RAM vom Bereich $2000 - $3FFF auszuschliessen. Das 
klappt auch einwandfrei.

> Wenn ich dich richtig verstanden habe, dann hast du das Board zweimal
> aufgebaut und beides Mal den gleichen Fehler und mit 1Mhz Quarz
> ebenfalls das gleiche Fehlerbild. Dann ist das sehr deterministisch und
> deutet m. M. nicht auf Timing Problem hin, jedenfalls solltest du andere
> Ursachen erst ausschließen.

Ja, ich könnte mir vorstellen, dass es an einem zu geringen Abstand 
einer Adressleitung zu einer anderen Leitung liegen könnte.
Welche anderen Ursachen könnten noch in Frage kommen?

> Besorge dir unbedingt Kältespray, wie oben schon mehrfach empfohlen,
> damit wirst du den thermischen Fehler vielleicht schnell eingrenzen
> können.

Das hätte ich schon längst gemacht, aber ich komme nicht mehr zur 
Platine wenn das Brett darauf ist. Ohne montiertem Brett sehe ich aber 
keine Fehler und das Board wäre auch unbelastet. Naja, vielleicht geht 
es doch irgendwie, mal sehen.

> Das wollte ich dir auch vorschlagen. Vielleicht kannst du den Code
> soweit nachvollziehen um zu verstehen, wie die LEDs auf dem Schachfeld
> angesteuert werden, dass wird ja sicher mit dem VIA über ne Matrix
> passieren, oder ist in dem Schachbrett selbst auch noch Hardware
> verbaut?

Ja, den Code versteht ich ganz gut, außer das Schachprogramm selbst. Ich 
werde mal versuchen eine Taste des Schachcomputers auf eine eigene 
Testroutine umzuprogrammieren.

> Vielleicht erklärst du nochmal, was du mit dem Vergrößern der
> Eröffnungbibliothek genau meinst, das hab ich nicht verstanden, was du
> da geändert hast. Es zeigt sich halt immer wieder, dass genau das nicht
> funktioniert, was man gegenüber dem Original verändert hat, da würde ich
> auch nochmal drüberschauen.

Im Rom des Schachcomputers ist die Eröffnungsbibliothek in Form eines 
Datenbereichs abgelegt. Nach mühsamen, wochenlangen Tüfteln ist es mir 
gelungen die Codierung dieses Buchs zu verstehen. Daraufhin habe ich mir 
ein Programm für meinen Mac geschrieben, dass Eröffnungsbücher im 
PGN-Format in dieses "ARB-Format" übersetzen kann und ein neues Buch ins 
ROM "eingepflanzt". Das funktionierte einwandfrei. Wurde wochenlang mit 
der Emulation und der funktionierenden 16MHz-Platine getestet. Dieses 
Buch, das ich unbedingt im ROM haben möchte ist aber so groß, dass es 
den Bereich von $2000 bis $7xxx einnimmt. Das geht auf der "originalen" 
16MHz-Platine nicht, da der Bereich von $2000 - $3000 auch von RAM 
belegt ist. Das habe ich in meinem Nachbau modifiziert. Nach Warmlaufen 
der Platine funktioniert auch alles. Ich kann mir ansehen ob der 
Schachcomputer alle Eröffnungszüge kennt, und das tut er.

> Ich wünsche dir weiterhin gutes Gelingen und viel Erfolg bei der
> elendigen Fehlersuche
Danke, die Fehlersuche kann ja auch richtig Spaß machen :-)
Lg

von Norbert (der_norbert)


Lesenswert?

Vielleicht können ja noch einige prüfende Blicke auf das Adress-Decoding 
geworfen werden.

Ich sehe da momentan (alles 4Kib Blöcke):
1
RAM ¬CE:      0…1                 —  ¬(15∧14∧13)
2
ROM ¬CE:      2…7 und 10…15       —  14∨13
3
VIA CS1/CS2B: 10…15               —  (15∧(14∨13)

¬OE ist ja knallhart immer enabled.
Da hätten wir mit der Dekodierung dann ein Problem.
Oder habe ich da etwas übersehen?

von Thomas W. (dbstw)


Lesenswert?

Johannes S. schrieb:
>  Leider hat er sich bei der Decodierung des
> Adressbereichs nicht allzu sehr bemüht und den Bereich von $2000 - $3FFF
> sowohl mit ROM als auch mit RAM belegt. Daher ist dieser Bereich nicht
> nutzbar. Darum habe ich mich entschlossen die Platine komplett neu
> nachzumachen und das RAM vom Bereich $2000 - $3FFF auszuschliessen. Das
> klappt auch einwandfrei.

Pruef bitte noch mal, ob Deine Adressdekodierung (
1
$A000 - $FFFF  ROM (EPROM W27C512-45Z)
2
$8000 - $9FFF  VIA W65C22S (Western Design Center)
3
$2000 - $7FFF  ROM (EPROM W27C512-45Z siehe oben)
4
$0000 - $1FFF  RAM (SRAM As6C62256 55ns)
) richtig funktioniert, insbesondere fuer das EPROM (0x2000 - 0x7fff und 
0xa000 - 0xffff) und einen Konflikt mit dem RAM (0x0000 - 0x1fff): Ich 
habe so haeufig auf den Schaltplan geguckt, dass ich jetzt so oder so 
nix mehr sehe :-)

Gruesse

Th. (der mit Sargon II und 8MHz Z80)

Beitrag #7720211 wurde vom Autor gelöscht.
von Norbert (der_norbert)


Lesenswert?

Thomas W. schrieb:
> $8000 - $9FFF  VIA W65C22S (Western Design Center)

Hmmm, VIA wird auf CS1 von A15 angesteuert, also 0x8000…0xFFFF
Zusätzlich auf CS2B sobald A14∨A13, ergibt also 0xA000…0xFFFF
Und damit schepperts.

EDIT:
Ich nehme das zurück. Anscheinend muss CS2B auf ›0‹ sein, was man durch 
die blödsinnige Bezeichnung und ohne studieren des Datenblatts nicht 
erkennen kann. Die Dekodierung lautet also:
1
RAM ¬CE:      0…1                 —  ¬(15∧14∧13)
2
ROM ¬CE:      2…7 und 10…15       —  14∨13
3
VIA CS1/CS2B: 8…9                 —  15∧¬(14∨13)

: Bearbeitet durch User
von Johannes S. (vamogu05)


Lesenswert?

Norbert schrieb:
> ¬OE ist ja knallhart immer enabled.
> Da hätten wir mit der Dekodierung dann ein Problem.
> Oder habe ich da etwas übersehen?

Nicht unbedingt. Die Decodierung erfolgt am CE. Das das schlechter Stil 
ist, OE grundsätzlich auf Und zu legen weiß ich mittlerweile. Die 
funktionierende Vorlage hat das aber genauso.

> Hmmm, VIA wird auf CS1 von A15 angesteuert, also 0x8000…0xFFFF
> Zusätzlich auf CS2B sobald A14∨A13, ergibt also 0xA000…0xFFFF

Die VIA wird selektiert wenn CS1 high Pegel führt und CS2B Low-pegel.
In meinem Fall wenn A15 gesetzt ist und beide Adressleitungen A14 und 
A13 low sind (Or-Gatter).

Thomas W. schrieb:
> Pruef bitte noch mal, ob Deine Adressdekodierung (1$A000 - $FFFF  ROM
> (EPROM W27C512-45Z)
> 2$8000 - $9FFF  VIA W65C22S (Western Design Center)
> 3$2000 - $7FFF  ROM (EPROM W27C512-45Z siehe oben)
> 4$0000 - $1FFF  RAM (SRAM As6C62256 55ns)
> ) richtig funktioniert, insbesondere fuer das EPROM (0x2000 - 0x7fff und
> 0xa000 - 0xffff) und einen Konflikt mit dem RAM (0x0000 - 0x1fff): Ich
> habe so haeufig auf den Schaltplan geguckt, dass ich jetzt so oder so
> nix mehr sehe :-)
>
> Gruesse

Also, ich erkenne da jetzt kein Problem. Das EPROM wird nur dann 
selektiert wenn eine der beiden Adressleitungen A14/A13 high ist. DAs 
ist weder bei 0x0000 noch bei 0x1fff so.
Schön langsam komme ich auch schon durcheinander :-)

von Johannes S. (vamogu05)


Lesenswert?

Norbert schrieb:
> EDIT:
> Ich nehme das zurück. Anscheinend muss CS2B auf ›0‹ sein, was man durch
> die blödsinnige Bezeichnung und ohne studieren des Datenblatts nicht
> erkennen kann. Die Dekodierung lautet also:1RAM ¬CE:      0…1
> —  ¬(15∧14∧13)
> 2ROM ¬CE:      2…7 und 10…15       —  14∨13
> 3VIA CS1/CS2B: 8…9                 —  15∧¬(14∨13)

Ja, genau.

von Norbert (der_norbert)


Lesenswert?

Johannes S. schrieb:
> Also, ich erkenne da jetzt kein Problem.

Dekodierung sieht OK aus. 8K RAM, 24K ROM, 8K VIA, 24K ROM
Die Verwirrung kam daher, das Western sich blödsinnigerweise 
entschlossen hat CS1 active high zu machen und CS2B active low.
Da sollte es gemäß allgemeiner Konventionen ¬CS2B oder /CS2B oder mit 
Überstrich heißen.

von Wastl (hartundweichware)


Lesenswert?

Da das System ja sowieso einen neuen Design-Durchgang braucht
würde ich auf jeden Fall die gesamte Dekodier-Logik in ein
oder zwei GALs implementieren. GALs weil man ja 5V Logik
braucht, ersatzweise auch ein XILINX CPLD welches in 5V
arbeitet. In beide Fällen ist man im fertigen Design flexibel
bei der Ausdekodierung und man könnte sich redundante
Ausgänge schaffen um leichter zu debuggen und zu
diagnostizieren.

von Harald K. (kirnbichler)


Lesenswert?

Johannes S. schrieb:
> Ja, ich könnte mir vorstellen, dass es an einem zu geringen Abstand
> einer Adressleitung zu einer anderen Leitung liegen könnte.

Das ist eher unwahrscheinlich. Zwar ist Übersprechen zwischen 
Signalleitungen tatsächlich ein Thema, nicht aber zwischen 
Signalleitungen, die gleichzeitig geschaltet werden - und das ist bei 
Adress- und auch Datenleitungen der Fall.

von Klaus F. (klaus27f)


Lesenswert?

Ja, die Decodierung ist "fragwürdig".
Und daß es sowohl bei 1 / 2 MHz nicht stabil läuft,
angeblich aber dann nach 20 Minuten auch mit 16 MHz,
hmmm, da mache ich paar Fragezeichen dran???

Falls du selbst (kleine) 6502 Programme erstellen kannst,
so schlage ich vor ein kleines Testprogramm zu schreiben:

Start:  (Reset-Vector hierher)
  Schreibe ins Ram Adresse 0x?555  Wert 0xAA (? == dein Ram 
Adressbereich)
  NOP
  Schreibe ins Ram Adresse 0x?AAA  Wert 0x55
  NOP
  Lese aus Ram     Adresse 0x?555
  NOP
  Lese aus Ram     Adresse 0x?AAA
  NOP
  JMP  Start

Das sollte sich dann gut mit Scope verfolgen lassen.
= Wann liegt Adresse an
= Wann kommt /CE /OE und /WR des Ram  (Laufzeit Decodierung)  <-- 
Wichtig
= Wann stehen Daten an schreibend
= Wann stehen Daten an lesend

Im zweiten Schritt o.g. Programm ohne die NOPs.

Das erstmal mit kleinem Takt 1 MHz verifizieren.
Ein Kanal bzw. Trigger immer von /CE des Eproms oder des Rams.
Ggf. eine Platine umbauen auf "bessere" Decodierung,
auch unter Berücksichtigung der Sachen in Doku "pocv130.pdf"


Für das neue Layout hatte ich ja bereits Hinweise gegeben
Beitrag "Re: 6502 System funktioniert nicht richtig"

von Johannes S. (vamogu05)


Lesenswert?

Wastl schrieb:
> Da das System ja sowieso einen neuen Design-Durchgang braucht
> würde ich auf jeden Fall die gesamte Dekodier-Logik in ein
> oder zwei GALs implementieren. GALs weil man ja 5V Logik
> braucht, ersatzweise auch ein XILINX CPLD welches in 5V
> arbeitet.

Was bitte sind GALs? So tief bin ich nicht in der Marterie drinnen. Ich 
lerne aber gerne dazu. Bitte um kurze Erklärung.

Klaus F. schrieb:
> Ja, die Decodierung ist "fragwürdig".
> Und daß es sowohl bei 1 / 2 MHz nicht stabil läuft,
> angeblich aber dann nach 20 Minuten auch mit 16 MHz,
> hmmm, da mache ich paar Fragezeichen dran???

Naja, so sieht es aber leider aus. Kann nur berichten, wie es sich 
verhält.

Klaus F. schrieb:
> Falls du selbst (kleine) 6502 Programme erstellen kannst,
> so schlage ich vor ein kleines Testprogramm zu schreiben:
>
> Start:  (Reset-Vector hierher)
>   Schreibe ins Ram Adresse 0x?555  Wert 0xAA (? == dein Ram
> Adressbereich)
>   NOP
>   Schreibe ins Ram Adresse 0x?AAA  Wert 0x55
>   NOP
>   Lese aus Ram     Adresse 0x?555
>   NOP
>   Lese aus Ram     Adresse 0x?AAA
>   NOP
>   JMP  Start

Ok, klingt einleuchtend. Ich hoffe, dass ich das noch mit meinem 50MHz 
Oszi messen kann. Bei 1Mhz sollte das auf jeden Fall möglich sein.

Ich habe mir eben ein kleines Ramtest-Programm geschrieben, das den Wert 
$55 in den Speicher des RAM schreibt und anschließend wieder ausliest. 
Sobald Unterschiede in einer Zelle auftreten, soll das Programm die 
beiden Adressbytes am Schachbrett ausgeben.
Ergebnis: kein Fehler im Ramtest feststellbar. Vielleicht war es aber 
auch nur zu warm im Raum. Werde das bei kühleren Temperaturen 
wiederholen.

Dein Test klingt aber noch besser, da man hier dann auch wirklich 
falsches  Timing erkennen könnte. Bin gespannt. Werde ich morgen machen.

Klaus F. schrieb:
> Für das neue Layout hatte ich ja bereits Hinweise gegeben
> Beitrag "Re: 6502 System funktioniert nicht richtig"

Ja, das habe ich mittlerweile kapiert. Die nächste Platine wird diese 
Ansteuerung berücksichtigen. Bin froh das ich nun weiß wie man das 
wirklich richtig macht. Danke.

von Joachim B. (jar)


Lesenswert?

Johannes S. schrieb:
> Ergebnis: kein Fehler im Ramtest feststellbar. Vielleicht war es aber
> auch nur zu warm im Raum. Werde das bei kühleren Temperaturen
> wiederholen.

Der Thread geht schon seit 5 Tagen, du hättest schon längst eine Büchse 
Kältespray haben können, statt dessen wird hier weitergeeiert obwohl 
sich noch Details auftaten.

von Wastl (hartundweichware)


Lesenswert?

Johannes S. schrieb:
> Was bitte sind GALs? So tief bin ich nicht in der Marterie drinnen. Ich
> lerne aber gerne dazu. Bitte um kurze Erklärung.

Programmierbare und löschbare Logik-Bausteine. Vorläufer sind
die PALs, Nachfolger die CPLDs. Haben auch den Vorteil dass
man viel passende Logik auf kleinem Raum unterbringen kann.

https://f-ei.hszg.de/fileadmin/user_upload/Redakteure/PRIVAT/sbischoff/Digitaltechnik/Versuchsanleitungen/Grundlagen_der_GALs.pdf

: Bearbeitet durch User
von Manfred P. (pruckelfred)


Lesenswert?

Wastl schrieb:
>> Was bitte sind GALs?
> Programmierbare und löschbare Logik-Bausteine.

Und das Problem ist, dass man einen Compiler und das passende 
Programmiergerät braucht. Damit kommt es für Johannes eher nicht in 
Betracht.

von Johannes S. (vamogu05)


Lesenswert?

Joachim B. schrieb:
> Der Thread geht schon seit 5 Tagen, du hättest schon längst eine Büchse
> Kältespray haben können, statt dessen wird hier weitergeeiert obwohl
> sich noch Details auftaten.

Das Problem ist, dass ich bei angeschlossenem Brett nicht mehr so 
einfach an die Platine komme. Da müsste ich mir ein Gestell bauen, damit 
das funktioniert.

Wastl schrieb:
> Programmierbare und löschbare Logik-Bausteine. Vorläufer sind
> die PALs, Nachfolger die CPLDs. Haben auch den Vorteil dass
> man viel passende Logik auf kleinem Raum unterbringen kann.

Danke für die Aufklärung. Ist mir noch nicht untergekommen, klingt aber 
sehr interessant.

Manfred P. schrieb:
> Und das Problem ist, dass man einen Compiler und das passende
> Programmiergerät braucht. Damit kommt es für Johannes eher nicht in
> Betracht.

Ja, wahrscheinlich.

von Joachim B. (jar)


Lesenswert?

Johannes S. schrieb:
> Das Problem ist

das du immer noch kein Kältespray hast obwohl du auch weißt, daß das 
Problem auch/nicht nur thermisch ist.

: Bearbeitet durch User
von Rick (rick)


Lesenswert?

Norbert schrieb:
> Anscheinend muss CS2B auf ›0‹ sein, was man durch
> die blödsinnige Bezeichnung und ohne studieren des Datenblatts nicht
> erkennen kann.
Na wenn man genau hinschaut, sieht man das schon:
CS1  -> high active
CS2B -> low  active

Das angehängte 'B' (='BAR') steht in der englischsprachigen Welt für low 
active oder negiert.

von Norbert (der_norbert)


Lesenswert?

Rick schrieb:
> Das angehängte 'B' (='BAR') steht in der englischsprachigen Welt für low
> active oder negiert.

Ich habe zwar nur einige Jahre in den V S von A gelebt und gearbeitet, 
aber bin da anscheinend nur mit den vormals genannten, gängigen 
Bezeichnungen konfrontiert worden. Gibt's denn für das angehängte ›B‹ an 
Signalbezeichnungen auch irgendwo eine formelle Definition?

inquiring minds…

von Harald K. (kirnbichler)


Lesenswert?

Norbert schrieb:
> Gibt's denn für das angehängte ›B‹ an
> Signalbezeichnungen auch irgendwo eine formelle Definition?

Das ist ein (schlechter) Notbehelf, wenn der verwendete Zeichensatz so 
etwas wie C̅S̅2̅ nicht zulässt.

Alternative Schreibweisen sind /CS2 oder !CS2, manchmal auch #CS2 oder 
nCS2.

Alle Varianten beschreiben ein Active-Low-Signal.

von Norbert (der_norbert)


Lesenswert?

Harald K. schrieb:
> Das ist ein (schlechter) Notbehelf, wenn der verwendete Zeichensatz so
> etwas wie C̅S̅2̅ nicht zulässt.

Habe hier einen Sack voll Manuals aus USA(SCII). Von 1976. Da konnten 
die das schon.

von (prx) A. K. (prx)


Lesenswert?

Norbert schrieb:
> Habe hier einen Sack voll Manuals aus USA(SCII). Von 1976. Da konnten
> die das schon.

Kenne ich. Auf Schreibmaschine gesetzt und übereinander getippt - oder 
auch von Hand nachgetragen. Und so ging es dann in den Druck.

Als Input für Weiterverarbeitung taugt diese Technik indes weniger. Etwa 
bei einem PAL.

Norbert schrieb:
> irgendwo eine formelle Definition

Vorzugsweise DIN. Deutscher gehts nicht. :)

Amis sind lockerer. Der Autor lässt sich etwas einfallen, und wenn der 
Adressat nichts versteht, ist er vielleicht sowieso falsch. Oder es 
findet sich irgendwo ein Glossar.

: Bearbeitet durch User
von Norbert (der_norbert)


Lesenswert?

(prx) A. K. schrieb:
> Als Input für Weiterverarbeitung

Dafür war ja bereits:
1
/CS oder auch /CS/ oder auch ~CS später dann noch ¬CS
vollumfänglich etabliert. Kein wirklich guter Grund sich etwas Weiteres 
aus den Fingern zu saugen.

(prx) A. K. schrieb:
> Amis sind lockerer.

Ach das musst du mir nicht erzählen. Aber auch die denken sich nicht 
irgend etwas aus und hoffen dann das alle anderen es schon irgendwie 
korrekt interpretieren werden. **

**OK, das mag bei Boeing vielleicht anders sein…


Jetzt sollte es aber gut sein, der ansonsten erstaunlich zivile ›thread‹ 
zerfranst gerade…

: Bearbeitet durch User
von Wastl (hartundweichware)


Lesenswert?

Norbert schrieb:
> hoffen dann das alle anderen es schon irgendwie
> korrekt interpretieren werden.

Nein!

Sie hoffen dann dass alle anderen es schon irgendwie
korrekt interpretieren werden.

von Max G. (l0wside) Benutzerseite


Lesenswert?

Joachim B. schrieb:

> Der Thread geht schon seit 5 Tagen, du hättest schon längst eine Büchse
> Kältespray haben können, statt dessen wird hier weitergeeiert obwohl
> sich noch Details auftaten.

Joachim hat leider Recht. Auch wenn es schwierig ist, das Spray zu 
applizieren: momentan stocherst du komplett im Nebel und löst mit einem 
Neulayout vielleicht Probleme, die eigentlich keine sind.

Kannst du nicht eine Art Adapter vom Board zum Schachbrett bauen, so 
dass du auch im Betrieb am Board messen kannst?

von Johannes S. (vamogu05)


Angehängte Dateien:

Lesenswert?

Klaus F. schrieb:
> Start:  (Reset-Vector hierher)
>   Schreibe ins Ram Adresse 0x?555  Wert 0xAA (? == dein Ram
> Adressbereich)
>   NOP
>   Schreibe ins Ram Adresse 0x?AAA  Wert 0x55
>   NOP
>   Lese aus Ram     Adresse 0x?555
>   NOP
>   Lese aus Ram     Adresse 0x?AAA
>   NOP
>   JMP  Start
>
> Das sollte sich dann gut mit Scope verfolgen lassen.
> = Wann liegt Adresse an
> = Wann kommt /CE /OE und /WR des Ram  (Laufzeit Decodierung)  <--
> Wichtig
> = Wann stehen Daten an schreibend
> = Wann stehen Daten an lesend

Hallo Klaus,

ich habe jetzt mal Deinen Vorschlag umgesetzt und o.a. Testprogramm in 
ein EPROM gebrannt und mit dem Oszilloskop gemessen (siehe Bilder).
Das Programm:
    org $A000
start:    lda #$aa
    sta $0555
    nop
    lda #$55
    sta $0aaa
    nop
    lda $0555
    nop
    lda $0aaa
    nop
    jmp start

    org $fffc
    dw start
gemessen mit 1MHz Taktfrequenz!

Nach meinem Verständnis nach, sehe ich nichts außergewöhnliches.
Bitte teile mir doch mit welche Signale du gerne sehen möchtest um dir 
ein Urteil zu bilden.

von Johannes S. (vamogu05)


Lesenswert?

Max G. schrieb:
> Kannst du nicht eine Art Adapter vom Board zum Schachbrett bauen, so
> dass du auch im Betrieb am Board messen kannst?

Hallo Max,

so einfach ist das leider nicht. Das Schachbrett ist ca. 50x50cm groß 
und hat an der Unterseite jede Menge Leitungen. Die Verdrahtungen der 
LEDs und der Reed-Kontakte etc. Das Flachbandkabel zur Platine ist 
relativ kurz. Aber eine Möglichkeit werde ich finden.
Die Frage ist aber: was zeigt mir der Kältespray? Ich werde damit 
vielleicht eine Region ausmachen können,  die, wenn ich gezielt kühle 
das Fehlverhalten wieder auftreten läßt. Vielleicht läßt sich der Fehler 
dann doch irgendwie erkennen, mal sehen. Ich bestelle mir mal eine Dose.

von Robert W. (paulplan)


Lesenswert?

Aber du könntest die Messungen einmal mit kalter CPU machen und dann 
nochmal, wenn sie nach 20 Minuten warmgelaufen ist.
Wenn du Kältespray hast, dann nochmal einsprühen.
Abweichung im Timing könnte man da vielleicht schon  sehen.

von Harald K. (kirnbichler)


Lesenswert?

Johannes S. schrieb:
> Das Flachbandkabel zur Platine ist relativ kurz.

Dann nimm halt ein längeres.

von Rick (rick)


Lesenswert?

Johannes S. schrieb:
> gemessen mit 1MHz Taktfrequenz!
Und jetzt - zum Vergleich - dieselben Messungen mit 16 MHz bitte!

von Johannes S. (vamogu05)


Lesenswert?

Harald K. schrieb:
> Dann nimm halt ein längeres.

Lieber Harald,
ich weiß nicht was Dich so stört an meinen Posts, aber Deine Antworten 
sind immer mit einem gewißen negativen Unterton.

Das Flachbandkabel ist nicht austauschbar. Der Stecker ist im Internet 
gar nicht mehr zu finden. Die einzelnen Drähte gehen über die gesamte 
Brettbreite. Seinerzeit hat man das alles noch ganz anders gebaut.
Glaubst Du wirklich ich wüßte mir nicht zu helfen wenn das 
Flachbandkabel so einfach tauschbar wäre? Glaub' mir, ich werde eine 
Lösung finden!

Rick schrieb:
> Und jetzt - zum Vergleich - dieselben Messungen mit 16 MHz bitte!

Mache ich gerne!

Robert W. schrieb:
> Aber du könntest die Messungen einmal mit kalter CPU machen und dann
> nochmal, wenn sie nach 20 Minuten warmgelaufen ist.
> Wenn du Kältespray hast, dann nochmal einsprühen.
> Abweichung im Timing könnte man da vielleicht schon  sehen.

Das werde ich gerne ausprobieren. Kältespray bekomme ich erst Mitte 
nächster Woche.

von Axel R. (axlr)


Lesenswert?

> Das Flachbandkabel ist nicht austauschbar. Der Stecker ist im Internet
gar nicht mehr zu finden.

Würde mich auch interessieren.
Zeig doch mal bitte ein Foto hierzu

von Johannes S. (vamogu05)


Angehängte Dateien:

Lesenswert?

Axel R. schrieb:
>> Das Flachbandkabel ist nicht austauschbar. Der Stecker ist im Internet
> gar nicht mehr zu finden.
>
> Würde mich auch interessieren.
> Zeig doch mal bitte ein Foto hierzu

Hi Axel,

anbei ein Foto vom Stecker dieses Boards. Ich habe seinerzeit nichts 
dazu gefunden. Ist ein 2x18 Stecker. Wäre nett wenn Du mir einen Link 
mitteilen könntest wo dieser Stecker zu bekommen wäre. Danke für Deine 
Bemühungen.

von H. H. (Gast)


Lesenswert?


von Irgend W. (Firma: egal) (irgendwer)


Lesenswert?

Harald K. schrieb:
> Johannes S. schrieb:
>> Ja, ich könnte mir vorstellen, dass es an einem zu geringen Abstand
>> einer Adressleitung zu einer anderen Leitung liegen könnte.
>
> Das ist eher unwahrscheinlich. Zwar ist Übersprechen zwischen
> Signalleitungen tatsächlich ein Thema, nicht aber zwischen
> Signalleitungen, die gleichzeitig geschaltet werden - und das ist bei
> Adress- und auch Datenleitungen der Fall.

Ich würde auch sagen, eher unwahrscheinlich. Erst recht da der Fehler 
auch bei 1MHz auftritt und sowas ist eher nicht Temperaturabhängig.

Da das Problem auch bei 1MHz auf triff, dürfte es auch nichts mit zu 
langsamen Bausteinen zu tun haben. Da wäre eher: große Probleme bei 
16MHz, weniger Probleme bei 8MHz und keine bei 1MHz oder so in der Art.

Vermutung, da sind irgendwo einige Signale, die eigentlich gewisse 
Abstände  zueinander haben sollten, zeitlich so eng beieinander, dass 
eine leicht unterschiedliche Erwärmung schon ausreicht, um wieder in den 
"geht gerade so Bereich" zu kommen.

So ein LA mit 32 Kanälen ist schon was feines (aber auch teuer und ein 
Kabelsalat:-) -> 16 Adressleitungen, 8 Datenleitungen und dann noch 8 
für die wichtigsten Steuerleitungen. Da sieht man eventuell auch wo das 
Programm im Fehlerfall rumeiert. Da der Fehler ja auch bei 1MHz 
auftritt, muss der LA ja garnicht so viele Samples/Sek. liefern um auch 
die zeitlichen Abstände der Signale zueinander zu sehen. Das dann einmal 
"kalt" und einmal "warm" nebeneinander gelegt, dann sollte auch 
erkennbar sein, was sich da verändert. Mit nur 2 Kanälen wird das schon 
schwierig, wenn man nicht genau weiß wo man suchen muss. Mit 16Ch sollte 
man schon einiges sehen können.

Ich würde hier, bevor ich ein neues Layout mache und das auch noch 
fertigen lasse, erstmal suchen wo das Problem sitzt. Nicht, dass das 
neue genau dasselbe macht. Nur vielleicht bei ein paar °C mehr oder 
weniger.

von Joachim B. (jar)


Lesenswert?


von Johannes S. (vamogu05)


Angehängte Dateien:

Lesenswert?

Rick schrieb:
> Und jetzt - zum Vergleich - dieselben Messungen mit 16 MHz bitte!

Hi Rick,

anbei die Bilder von den Oszillogrammen mit 16MHz Taktfrequenz gemessen.
Ich hoffe, Du kannst da was brauchbares erkennen.

von Johannes S. (vamogu05)


Lesenswert?

Irgend W. schrieb:
> Vermutung, da sind irgendwo einige Signale, die eigentlich gewisse
> Abstände  zueinander haben sollten, zeitlich so eng beieinander, dass
> eine leicht unterschiedliche Erwärmung schon ausreicht, um wieder in den
> "geht gerade so Bereich" zu kommen.

Danke für Deine Meinung. Also Du denkst, dass es am Timing liegt. Evtl. 
zu lange Zugriffszeit oder zu lange Gatterlaufzeiten? Ja, kann natürlich 
sehr gut sein.

Was hält ihr davon, gezielt mal das RAM und das EPROM mit Heißluft 
vorzuwärmen und schauen ob der Fehler nach dem Einschalten dann weg ist? 
Sich so herantasten ob es an einem Baustein liegt oder es vielleicht 
doch ein mechanisches Problem ist, wie Leiterbahnen zu knapp 
nebeneinander.

von Axel R. (axlr)


Lesenswert?

Was soll ich da schreiben? Ist halt ein „Card-Edge-Connector“ mit 
36(2x18) Polen.
Hier ein Link
https://www.ebay.de/itm/404414772355
Vielleicht reicht das ja schon. Als Stecker nimmst Du einfach ein 
passend abgesägtes Stück einer der Platinen (sind ja sicher 5Stück 
gefertigt worden).
Ich hätte das bunte Kabel in der Mitte geteilt und einreihige 
präzisionsfassungen als Stecker/Buchse zwischengelötet und zur 
Fehlersuche mit eine (vielleicht ebenso bunte) verlängerungsschur 
gebastelt.
Komplett auf etwas „modernes“ würde ich, der Originalität wegen, wohl 
auch verzichten. Daher wäre die Idee, das Kabel zu zerschneiden auch 
meine zweite Wahl.

von Tom K. (katdroid)


Lesenswert?

Moin Johannes,

deine Diagramme bei 1 MHz sehen doch rechteckig aus, diese Überschwinger 
sind bei der Geschwindigkeit wohl kein Problem.

Was ich nicht verstehe ist das Diagramm mit der Clk, da solltest du eine 
andere Auflösung wählen, nicht nur ein paar Nanosekunden.
Das PHI2 Signal sollte nach 500 ns auf high gehen und dann immer 
toggeln.
Vielleicht verstehe ich das ja vollkommen falsch, aber ich meine, dass 
der 6502 die Daten bei jeder fallenden Flanke von PHI2 übernimmt, macht 
es nicht Sinn A0/D0/... über PHI2 also Clk statt CE zu triggern, so dass 
man sieht, ob die Signale da stabil sind?

Vielleicht schaust du dir auch mal A13, A14, A15 an, da ist ja noch 
etwas zusätzliche Gatterlogik. Du musst dann natürlich auch von den 
oberen Adressen zumindest lesen (das sollte immer möglich sein, im VIA 
Bereich vielleicht nochmal genau überlegen, was du tust), momentan 
bleibst du ja in den unteren 4K, da sind A13-A15 logischerweise Null, 
außer beim Lesen des program counters, da solltest du zumindest 0xA000 = 
1010...b also A15 und A13 sehen.

Statt Kältespray Heissluft einzusetzen ist natürlich auch ne gute Idee, 
so gehts auch, nur das Warten, bis alles wieder abgekühlt ist, ist 
nervig.

Weiterhin viel Erfolg

Thomas

von (prx) A. K. (prx)


Lesenswert?

Tom K. schrieb:
> Vielleicht verstehe ich das ja vollkommen falsch, aber ich meine, dass
> der 6502 die Daten bei jeder fallenden Flanke von PHI2 übernimmt

Richtig.

> über PHI2 also Clk statt CE zu triggern, so dass
> man sieht, ob die Signale da stabil sind?

Richtig. In CE steckt kein Takt drin, das ergibt sich nur aus den 
Adressleitungen.

von Joachim B. (jar)


Lesenswert?

Tom K. schrieb:
> Statt Kältespray Heissluft einzusetzen ist natürlich auch ne gute Idee,
> so gehts auch, nur das Warten, bis alles wieder abgekühlt ist, ist
> nervig.

das mußt du übersetzen, welches "warten" mit Kältespray und Föhn?

von (prx) A. K. (prx)


Lesenswert?

Tom K. schrieb:
> ber PHI2 also Clk statt CE zu triggern

Im Prinzip ja. Nur gibts dann wahrscheinlich keine eindeutige Sequenz. 
Könnte man dann aber mit Dauersample als eye diagram nutzen.

von Tom K. (katdroid)


Lesenswert?

Joachim B. schrieb:
> Tom K. schrieb:
>> Statt Kältespray Heissluft einzusetzen ist natürlich auch ne gute Idee,
>> so gehts auch, nur das Warten, bis alles wieder abgekühlt ist, ist
>> nervig.
>
> das mußt du übersetzen, welches "warten" mit Kältespray und Föhn?

Vergiss es!

Ich meinte, dass du ja von heiß(kein Fehler) auf kalt(Fehlerfall) bei 
den warmen Temperaturen im Moment warten musst, bis alles abgekühlt ist.

Aber erstens: Es ist ja heute nicht mehr so affenwarm

und Zweitens: man kann den Föhn ja auf kalt stellen, das sollte schon 
gehen.

(wenn ich so drüber nachdenke ;-)

Ach ja, vielleicht schreibts du mal an das Schachcomputer online Museum, 
die refurbishen ihre Computer ja auch, was ich so gelesen habe.
Die haben vielleicht Tipps auf Lager, wo man die Teile, die heute keiner 
mehr baut, noch bekommt oder wie man sich behilft.

LG Thomas

von Tom K. (katdroid)


Lesenswert?

(prx) A. K. schrieb:
> Tom K. schrieb:
>> ber PHI2 also Clk statt CE zu triggern
>
> Im Prinzip ja. Nur gibts dann wahrscheinlich keine eindeutige Sequenz.
> Könnte man dann aber mit Dauersample als eye diagram nutzen.

Da hast du recht, da sieht man nix.

Vielleicht über A15 oder A13 triggern, das wird ja nur selten beim Lesen 
des PC high sein, vielleicht kann man dann die nächsten Takte 
nachvollziehen.

von Johannes S. (vamogu05)


Lesenswert?

Tom K. schrieb:
> Ach ja, vielleicht schreibts du mal an das Schachcomputer online Museum,
> die refurbishen ihre Computer ja auch, was ich so gelesen habe.
> Die haben vielleicht Tipps auf Lager, wo man die Teile, die heute keiner

Die kenne ich alle sehr gut. Wir treffen uns einmal im Jahr. Bin mit 
denen laufend in Kontakt.

Ich werde als nächstes einen neuen Schaltplan mit der empfohlenen 
Ansteuerung machen (schon in Arbeit). Dann bitte ich Euch mal drüber zu 
sehen bevor ich das neue Layout versuche. Muss schauen, dass die nächste 
Platine bald bestellt wird. Dann kann ich mich wieder um die Fehlersuche 
kümmern.

Danke an Alle für die wertvollen Tipps. Ich halte Euch auf dem 
Laufenden.

von Johannes S. (vamogu05)


Angehängte Dateien:

Lesenswert?

Ach ja, bevor ich es vergesse. Was ist denn an meinem Schaltplan 
wirklich so schlecht?
Im Anhang nochmals der ursprüngliche Schaltplan. Ich möchte jetzt nicht 
die selben Fehler machen wie zuerst.
Ich verwende halt globale Labels bei den Bauteilen. Findet Ihr Busse 
besser zu lesen? Was könnte ich besser machen?

von Thomas W. (dbstw)


Lesenswert?

Johannes S. schrieb:
> Ich werde als nächstes einen neuen Schaltplan mit der empfohlenen
> Ansteuerung machen (schon in Arbeit). Dann bitte ich Euch mal drüber zu
> sehen bevor ich das neue Layout versuche. Muss schauen, dass die nächste
> Platine bald bestellt wird. Dann kann ich mich wieder um die Fehlersuche
> kümmern.

Wozu? Du hast doch den Fehler der aktuellen Platine noch nicht einmal 
eingrenzen koennen (OK, ich habe z.z. keine neue Idee) aber jetzt eine 
neue Platine entwerfen und gucken ob es jetzt besser funktioniert ist, 
vorsichtig ausgedrueckt, sinnfrei.

Auch ganz banal: Wo hast Du denn die CPU und VIA gekauft und gibt es 
eine einwandfreie Platine, auf der die spezifische CPU funktioniert? 
(Hintergrund: Es laesst sich fast alles faelschen. Und auch Chinesen 
koennen Laserbeschriften :-)).

Denn Deine Signal sehen so auf den ersten Blick einwandfrei aus (bei 
1MHz so oder so, und bei 16MHz auch noch).

von Klaus F. (klaus27f)


Lesenswert?

Johannes S. schrieb:
> anbei die Bilder von den Oszillogrammen mit 16MHz Taktfrequenz gemessen.
> Ich hoffe, Du kannst da was brauchbares erkennen.

Hallo,
habe mir die Bilder jetzt auch angesehen.
Also prinzipiell sieht das brauchbar aus, keine Auffälligkeiten.
Wobei --wie schon geschrieben-- bin ich bzgl. 6502 nicht der Spezialist, 
weiss also nicht an welcher Stelle welchen "Phi" clocks die CPU die 
gültigen Daten ünenimmt.
Prinzipiell sollte das aber natürlich im Datenblatt der CPU exakt 
dokumentiert sein.

Daß es bei de eher geringen Stromaufnahme "grosse" Hitzeprobleme gibt 
ist auch wenig plausibel.
Da wäre nicht äusserst geringe Verschiebungen im Bereich weniger 
einzelner ns erwartbar.
Schwierig.
Vielleicht noch Decodierung von "HC" auf "AC" Bauteile austauschen, als 
Versuch. Aber mit mikrigen 1 MHz sind HC schnell genug.

Evtl. --jeweils einzeln-- Bauteile gegen "andere Charge" tauschen, nicht 
daß du von einen Bauteiltyp eine "schlechte Sorte" bekommen hast.

Sonst habe ich momentan keine weitere Idee, leider.

von Klaus F. (klaus27f)


Lesenswert?

Da wäre   nur   äusserst geringe Verschiebungen

von Johannes S. (vamogu05)


Lesenswert?

Thomas W. schrieb:
> Johannes S. schrieb:
>> Ich werde als nächstes einen neuen Schaltplan mit der empfohlenen
>> Ansteuerung machen (schon in Arbeit). Dann bitte ich Euch mal drüber zu
>> sehen bevor ich das neue Layout versuche. Muss schauen, dass die nächste
>> Platine bald bestellt wird. Dann kann ich mich wieder um die Fehlersuche
>> kümmern.
>
> Wozu? Du hast doch den Fehler der aktuellen Platine noch nicht einmal
> eingrenzen koennen (OK, ich habe z.z. keine neue Idee) aber jetzt eine
> neue Platine entwerfen und gucken ob es jetzt besser funktioniert ist,
> vorsichtig ausgedrueckt, sinnfrei.
>
> Auch ganz banal: Wo hast Du denn die CPU und VIA gekauft und gibt es
> eine einwandfreie Platine, auf der die spezifische CPU funktioniert?
> (Hintergrund: Es laesst sich fast alles faelschen. Und auch Chinesen
> koennen Laserbeschriften :-)).
>
> Denn Deine Signal sehen so auf den ersten Blick einwandfrei aus (bei
> 1MHz so oder so, und bei 16MHz auch noch).

Hallo Thomas,

Ich habe eine Platine, die so aufgebaut sein müsste wie meine, die 
einwandfrei läuft. Mein Nachbau hat allerdings die o.a. Probleme und 
funktioniert erst nach einer gewißen Aufwärmzeit. Ich denke, dass es am 
Layout liegt.
Die Teile habe ich bei Mouser und Digikey gekauft und schon in der 
funktionierenden Platine gegengecheckt.

von Johannes S. (vamogu05)


Lesenswert?

Klaus F. schrieb:
> Evtl. --jeweils einzeln-- Bauteile gegen "andere Charge" tauschen, nicht
> daß du von einen Bauteiltyp eine "schlechte Sorte" bekommen hast.

Hallo Klaus,

danke, für den Tipp. Das wäre natürlich eine Erklärung wenn die 
Decoderbausteine zu lange Gatterlaufzeiten hätten. Ich werde mir mal ein 
paar Stück "AC" zum Testen kaufen. Momentan habe ich ja die "F"-Typen 
verbaut.

von Thomas W. (dbstw)


Lesenswert?

Johannes S. schrieb:

> Ich habe eine Platine, die so aufgebaut sein müsste wie meine, die
> einwandfrei läuft. Mein Nachbau hat allerdings die o.a. Probleme und
> funktioniert erst nach einer gewißen Aufwärmzeit. Ich denke, dass es am
> Layout liegt.

> Die Teile habe ich bei Mouser und Digikey gekauft und schon in der
> funktionierenden Platine gegengecheckt.

Schade eigentlich, denn Faelschungen gibt es immer. Aber Kreuztausch und 
"richtiger" Distributor spricht dagegen.

von Irgend W. (Firma: egal) (irgendwer)


Lesenswert?

Klaus F. schrieb:
> an welcher Stelle welchen "Phi" clocks die CPU die gültigen Daten ünenimmt.

Eventuell mal die Sache mit dem phi2, r/w, ce und Adressdecoder nochmal 
genauer untersuchen. Eventuell genau diese Signale auch nochmal mit der 
Originalplatine vergleichen. Nicht das da irgendwo eine Signal 
"vertauscht" ist und dadurch auf der "falsche" flanke gearbeitet wird.
Kann beim "Durchklingeln" durchaus mal passieren, dass man da was 
vertauscht wird.

Das ist hier z.B. ist etwas anders gelöst:
- https://eater.net/6502

von Tom K. (katdroid)


Lesenswert?

Irgend W. schrieb:
> Eventuell mal die Sache mit dem phi2, r/w, ce und Adressdecoder nochmal
> genauer untersuchen. Eventuell genau diese Signale auch nochmal mit der
> Originalplatine vergleichen. Nicht das da irgendwo eine Signal
> "vertauscht" ist und dadurch auf der "falsche" flanke gearbeitet wird.

Laut Datenblatt RAM, werden die Daten beim Schreibzugriff übernommen, 
wenn CE#
und WE# beide low sind, allerdings darf sich die Adresse nur ändern, 
wenn CE# und WE# beide high sind, steht da jedenfalls unter dem Diagram.

Also irgendwie ist das blöd ausgedrückt. Ein RAM ist doch nichts 
anderes, als ein Flipflop, oder? Da nehme ich doch an, dass der 
Flankenwechsel von low nach high doch der Zeitpunkt ist, wann die Daten 
stabil auf dem Bus liegen müssen.
Das Timing Diagramm legt das auch nahe, finde ich. Der Text verwirrt 
mich mehr, als er hilft.

Na sei es, wie es ist.
Auf jeden Fall dekodierst du CE# aus A13-15, d.h. die Adressbits ändern 
sich und dann erst (nach dem Durchlaufen der Gatter) wird CE# wieder 
high, falls die neue Adresse nicht mehr passt. Das würde gegen obigen 
Satz aus dem Datasheet verstoßen. (Um wenige Picosekunden? Wie schnell 
ist denn so ein Gatter?)
Versuche doch mal, CE# noch mit dem PHI2# zu ANDen, dann müsste CE# 
früher, also zur Mitte des Taktes, was m. E. ja auch sinnvoll wäre, high 
werden.

Ich hoffe, man kann verstehen, was ich hier meine ;-)

LG Thomas

von Norbert (der_norbert)


Lesenswert?

Tom K. schrieb:
> (Um wenige Picosekunden? Wie schnell
> ist denn so ein Gatter?)

Die Annahme würde ich gleich mal um einige Größenordnungen nach oben 
korrigieren. ;-)

von Thomas W. (dbstw)


Lesenswert?

Tom K. schrieb:
> Satz aus dem Datasheet verstoßen. (Um wenige Picosekunden? Wie schnell
> ist denn so ein Gatter?)

https://homepages.uni-regensburg.de/~erc24492/TTL/TTL.html

von Irgend W. (Firma: egal) (irgendwer)


Lesenswert?

Norbert schrieb:
> Tom K. schrieb:
>> (Um wenige Picosekunden? Wie schnell
>> ist denn so ein Gatter?)
>
> Die Annahme würde ich gleich mal um einige Größenordnungen nach oben
> korrigieren. ;-)

Der 74F04 hat ca. 3ns (Seite 3)
- https://www.ti.com/lit/ds/symlink/sn54f04.pdf
- https://www.ti.com/lit/ds/symlink/sn74hc04.pdf
- https://www.ti.com/lit/ds/symlink/sn54als04b.pdf

HC und ALS sind sogars langsamer.

von Joachim B. (jar)


Lesenswert?

Tom K. schrieb:
> Ich meinte, dass du ja von heiß(kein Fehler) auf kalt(Fehlerfall) bei
> den warmen Temperaturen im Moment warten musst, bis alles abgekühlt ist.

mit Kältespray bewaffnet muß man warten?

von Tom K. (katdroid)


Lesenswert?

Joachim B. schrieb:
> Tom K. schrieb:
>> Ich meinte, dass du ja von heiß(kein Fehler) auf kalt(Fehlerfall) bei
>> den warmen Temperaturen im Moment warten musst, bis alles abgekühlt ist.
>
> mit Kältespray bewaffnet muß man warten?
Nee, mit Kältespray kühlst du ja ganz schnell runter, da brauchst du 
nicht Warten, da wird sich der Fehler hoffentlich schnell wieder zeigen.
Ich wollte sagen, wenn du keins hast, dann musst du entweder warten, bis 
alles wieder Raumtemperatur hat, oder du kannst mit einem Gebläse ein 
bisschen nachhelfen.
Also Kältespray ist prima, aber mit Fön geht halt auch.
LG Thomas

von Tom K. (katdroid)


Lesenswert?

Irgend W. schrieb:
> Norbert schrieb:
>> Tom K. schrieb:
>>> (Um wenige Picosekunden? Wie schnell
>>> ist denn so ein Gatter?)
>>
>> Die Annahme würde ich gleich mal um einige Größenordnungen nach oben
>> korrigieren. ;-)
>
> Der 74F04 hat ca. 3ns (Seite 3)
> - https://www.ti.com/lit/ds/symlink/sn54f04.pdf
> - https://www.ti.com/lit/ds/symlink/sn74hc04.pdf
> - https://www.ti.com/lit/ds/symlink/sn54als04b.pdf
>
> HC und ALS sind sogars langsamer.

Ich sach doch, wenige Tausend Picosekunden später.... ;-)
Ok, Danke für die Links, kommen sofort in die Sammlung.

VG Thomas

von Tom K. (katdroid)


Lesenswert?

Ich hab das Datenblatt vom RAM nochmal studiert:

Notes :
1.WE#, CE# must be high during all address transitions.
2.A write occurs during the overlap of a low CE#, low WE#.
[...]

Da drüber sind zwei Timing Diagramme, eins für WE# controlled, eins für 
CE# controlled.

Es war wohl WE# resp. CE# gemeint, je nachdem, was kontrolliert wird. 
Daher sollte deine Schaltung doch funktionieren.
Aber hier kam doch der Vorschlag, bei https://eater.net/6502 zu schauen, 
das würde ich dir auch empfehlen.

LG Thomas

von Johannes S. (vamogu05)


Angehängte Dateien:

Lesenswert?

Ich habe nun neue Erkenntnis gewonnen:
Im Anhang seht Ihr das Layout meiner Platine mit einem weißen Kreis 
gekennzeichnet. Wenn ich diesen Bereich erwärme funktioniert die Platine 
sofort.
Zuerst habe ich mit meiner Heißluftstation das RAM erwärmt und der 
Schachcomputer lief daraufhin einwandfrei. Danach habe ich das RAM aber 
ausgebaut, erwärmt und wieder eingebaut. Lief wieder nicht richtig. Es 
ist also nicht der SRAM-IC selbst. Sobald ich aber die eingekreiste 
Stelle erwärme, läuft er sofort einwandfrei.
Ich brauche nur die Pins, so im Bereich A2-A5 (Pin 5-8) mit dem Finger 
berühren und der Fehler verschwindet. Dabei ist es egal ob ich diese 
Pins am RAM selbst oder dem nebenan gelegenen EPROM berühre.
Liegt es an den zu knappen Abständen? Ich habe dort zwischen A2-Leitung 
und dem CE-Signal nur 0,2mm Abstand über ein kurzes Stück (siehe Bild). 
Kann das die Ursache sein? Wie kann ich den Fehler weiter einkreisen? 
Habt Ihr Ideen dazu?
Danke für eure Bemühungen.

von Wolfgang S. (wolfgang_s278)


Lesenswert?

Alle Lötstellen nachlöten.
Enge Stellen mit einer Klinge reinigen/trennen.
Durchkontaktieungen im Umfeld können im Loch unterbrochen sein.
Also ein Stück Draht hinein stecken und oben und unten verlöten.
Ebenso der PIN 1 am IC.

von Klaus F. (klaus27f)


Lesenswert?

> Ich brauche nur die Pins, so im Bereich A2-A5 (Pin 5-8)
> mit dem Finger berühren und der Fehler verschwindet.

Irgend ein offenes Signal.
Ein Haar-Riss in einer Leiterbahn, eine Durchkontaktierung defekt.

Oder, das ich ich schonmal, ein Präzisions-IC-Sockel, wo an einem Pin 
ein Teil der "inneren Hülse" fehlt.

Es gibt nix was es nicht gibt.

von Johannes S. (vamogu05)


Lesenswert?

Klaus F. schrieb:
>> Ich brauche nur die Pins, so im Bereich A2-A5 (Pin 5-8)
>> mit dem Finger berühren und der Fehler verschwindet.
>
> Irgend ein offenes Signal.
> Ein Haar-Riss in einer Leiterbahn, eine Durchkontaktierung defekt.
>
> Oder, das ich ich schonmal, ein Präzisions-IC-Sockel, wo an einem Pin
> ein Teil der "inneren Hülse" fehlt.
>
> Es gibt nix was es nicht gibt.

Danke für die Hinweise. Ich werde mal den Bereich nachlöten und 
genauestens kontrollieren.
Gegen eine schlechte Verbindung  spricht allerdings, dass eine weitere 
Platine genau das selbe Verhalten zeigt wie diese.
Ich konnte nun den Bereich noch genauer eingrenzen. Der Fehler ist weg, 
sobald ich A1 oder A2 berühre. Egal an welchem Baustein. Direkt an der 
CPU oder am EPROM oder SRAM.
Was kann das sein?

von Wulf D. (holler)


Lesenswert?

Johannes S. schrieb:
> Ich konnte nun den Bereich noch genauer eingrenzen. Der Fehler ist weg,
> sobald ich A1 oder A2 berühre. Egal an welchem Baustein. Direkt an der
> CPU oder am EPROM oder SRAM.
> Was kann das sein?

Seltsam. Dein Bild von A0 sieht eigentlich ganz gut aus. Sind auf A1 und 
A2 irgendwelche Glitches drauf? Gehe mal mit dem Oszi drauf. Verändert 
sich dann was?
Ggf mal testweise 10p auf A1 und A2 gegen Masse schalten, direkt auf der 
Platine. Oder wie schon an anderer Stelle bemerkt, einen niederohmigen 
Widerstand einschleifen.

von Johannes S. (vamogu05)


Lesenswert?

Wulf D. schrieb:
> Ggf mal testweise 10p auf A1 und A2 gegen Masse schalten, direkt auf der
> Platine.

Hallo Wulf,

danke für den Hinweis!
Ich habe je einen 10pF Kerko an Pin 8 (A2) und Pin 9 (A1) des RAM-Chips 
gelötet und siehe da, die Platine läuft einwandfrei. Zuerst hatte ich 
noch mit dem Oszilloskop die Signale dieser beiden Adressleitungen mit 
anderen Adressleitungen verglichen, aber keine Unterschiede feststellen 
können.

Kann mir jemand erklären was da bei dieser Platine schief lief, dass man 
an A1 und A2 Kerkos gegen Masse schalten musste? Das kann doch nur ein 
schlechtes Layout sein, oder?
Zumindest werde ich bei der nächsten Platine die Ansteuerung der 
OE-Eingänge so lösen wie von Euch vorgeschlagen.
Danke an Alle für die kompetente Hilfestellung.

von Klaus F. (klaus27f)


Lesenswert?

Johannes S. schrieb:
> Das kann doch nur ein
> schlechtes Layout sein, oder?

Das kann man schlecht sagen.
Mit deinem Scope ist man da auch über der Grenze der Möglichkeiten, denn 
auch angeklemmter Tastkopf hat ungefähr diese Eingangskapazität von 
10-20pF.
Der Effekt kann auch die "ungünstige Charge" von Bauteilen kommen.
Um warum gerade A1 und A2, wohl nicht jedoch A0, oder A3, komisch, 
komisch.
---
Ich hatte vor vielen Jahren mal den Effekt daß an einer Grafikkarte das 
Pixel-Ausgangs-Schieberegister 74xx165 am Bildschirm sichtbare 
Unsauberheiten produzierte. So Art "flimmern", also was an der Grenze 
von Dateneingang, Übernahmetakt. Meißt ok (sonst wäre kein Bild gewesen) 
aber doch einzelne Pixel fehlerhaft.
Trat nur auf bei Fabrikat Texas Instruments, da auch bei anderer Charge, 
anderer Datecode. Takt war 14 oder 16 MHz, alle Specs erfüllt. Rätsel.
Herausgefunden: 74xx165 Bauteile anderer Hersteller funktionieren 
problemlos!
Also die Stückliste angepasst und konkreten Hersteller des Standardteils 
definiert, was (damals) sonst unüblich und unnötig war.
Keine weitere Änderung; das Gerät wurde noch jahrelang produziert.

von Vanye R. (vanye_rijan)


Angehängte Dateien:

Lesenswert?

> Kann mir jemand erklären was da bei dieser Platine schief lief, dass man
> an A1 und A2 Kerkos gegen Masse schalten musste?

Reflexionen wegen schlechten Layout bei hohen Frequenzen, aber du willst 
ja nichts verstehen. Und nebenbei einen 10pF einfach parallel schalten 
ist eine schlechte Loesung weil der einen knallhalten Kurzschluss macht. 
Entweder 10/47pF+100R in serie, gegen GND oder 100R direkt einschleifen.

Versuch den Anhang zu verstehen. Das gehoert zu den Grundlagen der NT 
die man drauf haben muss. Abmalen von Google reicht nicht.

Vanye

von Johannes S. (vamogu05)


Lesenswert?

Vanye R. schrieb:
>> Kann mir jemand erklären was da bei dieser Platine schief lief,
> dass man
>> an A1 und A2 Kerkos gegen Masse schalten musste?
>
> Reflexionen wegen schlechten Layout bei hohen Frequenzen, aber du willst
> ja nichts verstehen. Und nebenbei einen 10pF einfach parallel schalten
> ist eine schlechte Loesung weil der einen knallhalten Kurzschluss macht.
> Entweder 10/47pF+100R in serie, gegen GND oder 100R direkt einschleifen.
>
> Versuch den Anhang zu verstehen. Das gehoert zu den Grundlagen der NT
> die man drauf haben muss. Abmalen von Google reicht nicht.
>
> Vanye

Danke für Deinen Beitrag.
Wie kommst Du drauf, dass ich nichts verstehen möchte? Ich bin froh, 
wenn mir jemand erklären kann warum sich das so verhält. Ich weiß nur 
nicht, wo im Layout ich mir das Problem eingefangen habe? Die Leitungen 
sind sicher nicht zu lange. Evtl. zu dünn, das könnte gut sein.
Gut ich werde jetzt noch einen 100Ohm Widerstand in Reihe zum C 
schalten. Danke für den Tipp.

von Thomas W. (dbstw)


Lesenswert?

Johannes S. schrieb:
> Wulf D. schrieb:
>> Ggf mal testweise 10p auf A1 und A2 gegen Masse schalten, direkt auf der
>> Platine.
>
> Hallo Wulf,
>
> danke für den Hinweis!
> Ich habe je einen 10pF Kerko an Pin 8 (A2) und Pin 9 (A1) des RAM-Chips
> gelötet und siehe da, die Platine läuft einwandfrei.

Ich haette mehr auf einen Fabrikationsfehler bei der Platine gesetzt 
(die Platinen werden haeufig im Stapel bearbeitet, wenn eine einen 
Fehler hat, haben alle Fehler).

Ich habe mal stundenlang nach einem Fehler gesucht (Z80-Board startet 
einwandfrei, irgendwann hat es keine Lust mehr, nach stromlos-schalten 
wieder alles gut). In der Verzweifelung habe ich alle Loetstellen 
nachgeloetet, auch die bei der 39-pin-CPU...

Gruesse

von Wulf D. (holler)


Angehängte Dateien:

Lesenswert?

Vanye R. schrieb:
> Und nebenbei einen 10pF einfach parallel schalten
> ist eine schlechte Loesung weil der einen knallhalten Kurzschluss macht.

Na, nun bleib mal auf dem Teppich, 10p haben bei 16 MHz einen 
Blindwiderstand um 1k. Und komm mir nicht mit Oberwellen, dann überwiegt 
bald der induktive Widerstand der geschätzten 10cm Leiterbahnlänge. 
Vielleicht solltest Du zur Auffrischung auch mal deinen Anhang lesen? 
Ist jedenfalls ein guter Text.

Thomas W. schrieb:
> Ich haette mehr auf einen Fabrikationsfehler bei der Platine gesetzt
> (die Platinen werden haeufig im Stapel bearbeitet, wenn eine einen
> Fehler hat, haben alle Fehler).
Wäre auch meine Vermutung gewesen. Und Nachlöten kann nie schaden. Aber 
um die Sache einzugrenzen, eben der Tipp mit den 10pF. Klar, ist nicht 
als finale Lösung gedacht.

Eigentlich braucht man bei 16 MHz noch keine abgeschlossenen Leitungen 
auf den Bussen. Habe in den 90ern etliche solche Systeme designed (68k, 
PPC), war bis rauf zu 50 MHz nie nötig.

Tippe schon auf ein ungünstiges Layout, so dass sich die beiden 
Adressleitungen irgendwas einfangen, was dein 50MHz Oszi nicht auflösen 
kann. Kann man ohne das Layouttool nur schwer allein anhand der Bilder 
verfolgen: es fällt aber auf, dass die beiden Adressleitungen A1 und A2 
zwischen EPROM und RAM eine extra-Schleife außen rum drehen. Die anderen 
A-Leitungen hast Du direkt quer geroutet. Sollte mit A1 und A2 auch 
gehen.

Nur so als Hinweis, das würde ich schon mal ändern. Ist vermutlich nicht 
alles, könnte mir auch noch eine ungenügende Masseanbindung vorstellen.

Gruß Wulf

von Vanye R. (vanye_rijan)


Lesenswert?

> Ich haette mehr auf einen Fabrikationsfehler bei der Platine gesetzt

Selbst billige Platinen von JLCPCB werden immer elektrisch getestet. Und 
wenn ich so drueber nachdenke, ich hab glaube ich seit mindestens 
15Jahre keine defekte Platine mehr gesehen und selbst damals wurde das 
im Test erkannt und ein huebscher Aufkleber drauf gemacht.

Vanye

von Johannes S. (vamogu05)


Lesenswert?

Wulf D. schrieb:
> es fällt aber auf, dass die beiden Adressleitungen A1 und A2
> zwischen EPROM und RAM eine extra-Schleife außen rum drehen. Die anderen
> A-Leitungen hast Du direkt quer geroutet. Sollte mit A1 und A2 auch
> gehen.

Danke Wulf, ja, das wäre schon eine Erklärung.

von Norbert (der_norbert)


Lesenswert?

Auch auf die Gefahr hin, das Offensichtliche zu wiederholen:

Die Probleme treten auch bei einem einzigen, einsamen, gemütlichen 
MegaHertz auf.

von Wulf D. (holler)


Lesenswert?

Norbert schrieb:
> Die Probleme treten auch bei einem einzigen, einsamen, gemütlichen
> MegaHertz auf.
Was dann eher auf ein generelles Timing- oder Pegel-Problem hindeutet.

Die CS & WE Erzeugung aus r/w, Adr und Phi wurde hier schon im Detail 
durchdiskutiert.

Der Mix der Logikfamilien CMOS zu LS/F und wieder zurück zu CMOS gefällt 
mir nicht. Das Voh min der LS/F passt nicht so recht zum Vih min der 
CMOS Bausteine, ohne mir jetzt das Datenblatt des CMOS-RAM und EPROM 
angesehen zu haben: kannst Du nicht mal die Gatter der CS & WE Logik 
durchgängig mit AC- Bausteinen bestücken?

Gruß Wulf

von Irgend W. (Firma: egal) (irgendwer)


Lesenswert?

Johannes S. schrieb:
> Der Fehler ist weg,
> sobald ich A1 oder A2 berühre. Egal an welchem Baustein.

Sowas in der Art hatte ich auch mal (aber keine Ahnung mehr ob das auch 
A1/A2 waren). Ursache war damals (Jugendlicher Leichtsinn) das nicht 
genügend bzw. zu weit entfernte Abblockkondensatoren verwendet wurden. 
Jedem(!) IC auf der Rückseite direkt noch eine C zwischen den Pins mit 
der Versorgungsspannung, ganz ohne Leiterbahn. Danach ist die Schaltung 
Jahrelang stabil gelaufen.

So ähnlich wie hier, nur halt manuell auf der Unterseite (ggf. mit etwas 
Schrumpfschlauch isolieren).
- 
https://www.reichelt.de/ch/de/ic-sockel-28-polig-mit-abblockkondensator-gs-ko-28p-p8238.html?r=1

von Wulf D. (holler)


Lesenswert?

Habe gerade mal ins Datenblatt vom RAM geschaut: dessen Vih min beträgt 
2,4V. Die LS-TTL liefern mindestens einen High-Pegel von 2,7V.

Müsste gerade so ausreichen, aber etwas Geräusch und es geht schief.

Und die Stützkondensatoren an ROM und RAM sind masseseitig nur auf 
Umwegen mit deren jeweiligen Pin 14 verbunden.

Gruß Wulf

: Bearbeitet durch User
von Klaus F. (klaus27f)


Lesenswert?

Wulf D. schrieb:
> Norbert schrieb:
>> Die Probleme treten auch bei einem einzigen, einsamen, gemütlichen
>> MegaHertz auf.
>
> Was dann eher auf ein generelles Timing- oder Pegel-Problem hindeutet.
>


Genau das meine ich auch.
Wenige MHz sind bei kürzeren Leitungslängen normalerweise problemlos.

Denn wie sollte sonst z.B. nachfolgende Schaltung jemals laufen, mit 
Pixeltakt von über 25 MHz ???

https://people.ece.cornell.edu/land/courses/ece4760/FinalProjects/s2012/raf225_dah322/raf225_dah322/images/board.jpg

https://people.ece.cornell.edu/land/courses/ece4760/FinalProjects/s2012/raf225_dah322/raf225_dah322/index.html

von Johannes S. (vamogu05)


Lesenswert?

Wulf D. schrieb:
> kannst Du nicht mal die Gatter der CS & WE Logik
> durchgängig mit AC- Bausteinen bestücken?

DAs kann ich gerne ausprobieren. Werde mir die entsprechenden Bauteile 
besorgen.
Momentan habe ich als Decodiergatter F-Bauteile.

Wulf D. schrieb:
> Und die Stützkondensatoren an ROM und RAM sind masseseitig nur auf
> Umwegen mit deren jeweiligen Pin 14 verbunden.

Ja, das werde ich im künftigen Layout berücksichtigen.

von Wulf D. (holler)


Lesenswert?

Ich würde bei der Gelegenheit mir das ganze Massenetz einmal anschauen, 
ob sich da Schleifen oder schwache Inseln ergeben.

Kenne KiCad nicht, aber es hat mit Sicherheit eine Funktion, die ein 
einzelnes Netz hervorhebt bzw. markiert, so dass man dessen Verlauf 
leicht überblickt. Meist wird das Netz dann viel heller als der Rest 
dargestellt.

Optimal wäre eine flächige oder sternförmige Masseversorgung (mit Tracks 
min 1mm) von Netzteil, CPU, RAM, ROM und Decodierlogik. Der Rest schadet 
natürlich auch nicht.

Schlecht sind lange Schleifen, zumal mit dünnen Tracks.

Gruß Wulf

von Johannes S. (vamogu05)


Lesenswert?

Seit dem Einbau der beiden 10pF Kondensatoren läuft die Platine 
einwandfrei!
Ich habe heute versucht den Quarzoszillator zu erhöhen und festgestellt, 
dass ich einen stabilen Betrieb bis 20MHz habe. Bei 24MHz sind RAM und 
EPROM wahrscheinlich zu langsam.
Natürlich wird die nächste Version optimaler geroutet werden!
Danke nochmals an Alle die geholfen haben.

von Norbert (der_norbert)


Lesenswert?

Johannes S. schrieb:
> Natürlich wird die nächste Version optimaler geroutet werden

So etwas geht jetzt auch schon?
Wie die Zeit voran eilt… ;-)

Beitrag #7723695 wurde vom Autor gelöscht.
von Jens G. (jensig)


Lesenswert?

Johannes S. schrieb:
> Seit dem Einbau der beiden 10pF Kondensatoren läuft die Platine
> einwandfrei!
> Ich habe heute versucht den Quarzoszillator zu erhöhen und festgestellt,
> dass ich einen stabilen Betrieb bis 20MHz habe.

Naja, wie ich schon andeutete, deutet auch dies darauf, daß sich Flanken 
irgendwelcher Signale, die zueinander mit einem bestimmten Timing 
koordiniert sein müssen, ungünstig zueinander liegen, bzw. auf Kante 
genäht sind. Ich sehe hier die Adressdekodierer, und das damit 
zusammenhängende und gleichzeitige CE/OE-Handling, was offensichtlich 
schlechte Timings verursacht ...

von Joachim B. (jar)


Lesenswert?

Johannes S. schrieb:
> Natürlich wird die nächste Version optimaler geroutet werden!

was ist optimaler als optimal?
War die jetzige Version also nicht optimal?
Wenn etwas optimal war, wie kann die nächste Version optimaler werden?

von Johannes S. (vamogu05)


Lesenswert?

Joachim B. schrieb:
> Johannes S. schrieb:
>> Natürlich wird die nächste Version optimaler geroutet werden!
>
> was ist optimaler als optimal?
> War die jetzige Version also nicht optimal?
> Wenn etwas optimal war, wie kann die nächste Version optimaler werden?

Die jetzige Platine brauchte je einen 10pF Kerko gegen Masse bei den 
Adressleitungen A1/A2 damit sie anstandslos funktioniert. Also sind 
vermutlich die beiden Adressleitungen schlecht geroutet. Das wird in der 
nächsten Version optimaler gestaltet. Jetzt war es ja nicht optimal, 
sonst hätte es diese Fehler nicht gegeben!

von (prx) A. K. (prx)


Lesenswert?

Joachim B. schrieb:
> Wenn etwas optimal war, wie kann die nächste Version optimaler werden?

Wenn die gestrige Lösung gestern optimal war, es heute aber nicht mehr 
ist, kann die heute optimale Lösung dann optimaler sein als die 
gestrige? :)

: Bearbeitet durch User
von Dietrich L. (dietrichl)


Lesenswert?

Jens G. schrieb:
> Naja, wie ich schon andeutete, deutet auch dies darauf, daß sich Flanken
> irgendwelcher Signale, die zueinander mit einem bestimmten Timing
> koordiniert sein müssen, ungünstig zueinander liegen, bzw. auf Kante
> genäht sind. Ich sehe hier die Adressdekodierer, und das damit
> zusammenhängende und gleichzeitige CE/OE-Handling, was offensichtlich
> schlechte Timings verursacht ...

Das sehe ich auch so. Wieviel ein neues Layout das "auf Kante genäht" 
verbessert ist aber ungewiss.
Ich sehe als seriöses Vorgehen:
- Das jetzige Timing mit Oszi vermessen.
- Dieses Timing mit den Vorgaben aus den Datenblättern vergleichen.
- Zusätzlich Reserve vorsehen, denn die Messung zeigt ja nur typische 
und keine Worst-Case Werte (Einfluss von Temperatur, 
Versorgungsspannung, Exemplarstreuung).
Das ganze ist allerdings anspruchsvoll und zeitaufwendig...

von Wastl (hartundweichware)


Lesenswert?

Johannes S. schrieb:
> Also sind
> vermutlich die beiden Adressleitungen schlecht geroutet.

Nein!

Ein für alle Mal: das Bus-Timing ist nicht korrekt, eine
Veränderung an den Adressleitungen verschleiert nur das
eigentliche Problem. Adressen werden vor einem Zugriff
durch ein anderes Signal (üblicherweise /CS) für den
Adressaten gültig gemacht und sind nicht für sich alleine
stehend schon gültig.

Eine wie hier geartete Verzögerung (durch C-Last) weist
eher darauf hin dass ein adressierter Baustein zu früh
Daten auf den Bus gibt die entweder noch ungültig sind
oder eine kleine Bus-Kollision mit einem anderen Teilnehmer
auslöst dessen Daten noch (auch Timing-Problem) auf dem
Datenbus anliegen.

Die Adressleitungen werden direkt vom 6502 getrieben, werden
also nie hochohmg (floatend) sein, daher können sie auch nicht
leicht durch Einstreuungen gestört werden. Allenfalls könnten
sehr lange Adressleitungen ein Klingeln drauf haben das zu
eine Fehladressierung führt, was bei diesen Leitungslängen
aber absolut unwahrscheinlich erscheint.

von Wulf D. (holler)


Lesenswert?

Ein paar Layoutschwächen haben wir ja schon gefunden. Ich würde die im 
vorhandenen Layout schon mal mit Drähten (A1, A2) und bedrahteten 100n 
Kercos (Stützkondensatoren) einbauen, ob es dann ohne die 10pF 
Workarounds geht.

Auch würde ich mit Hilfe des Layouttools nach weiteren Layoutschwächen 
fanden.

Und die Pegelkritische Logikkombination des Adressdekoders nicht zu 
vergessen.

Aber richtig, die hohe Fehlerempfindlichkeit bei niedrigster 
Taktfrequenz mag das nicht so recht erklären.

Das RAM wird bei Dir z.B. WE-gesteuert beschrieben: gehe doch mal mit 
einem Kanal des Oszi auf WE, triggere auf steigende Flanke und mit dem 
zweiten Kanal taste die Adress-und Datenleitungen ab. Eine Hold-Time 
benötigt das RAM nicht, aber schaue mal genau hin ob die Flanken des 
zweiten Kanals niemals (!) auf die des ersten fallen oder gar minimal 
früher kommen. Höchste Zeit-Auflösung am Oszi einstellen, die Kanäle 
müssen gleichzeitig abgetastet werden.

Ggf. viele, viele Single shots auslösen, falls das dein Oszi nicht 
triggern bzw. auflösen kann.

Analog das Lesen von RAM und EPROM prüfen.

Gruß Wulf

von Wulf D. (holler)


Angehängte Dateien:

Lesenswert?

Man kann und sollte für die Timings Toleranzketten aufstellen, wenn man 
ein kommerzielles Design angeht: die Min- und Max-Timings von CPU and 
Peripherie alle untereinander schreiben und schauen ob alles eingehalten 
wird.

Das ist hier aber ein Hobbyprojekt und es gibt schon einen Prototyp. Da 
ist nachmessen bequemer. Anbei ein Screenshot aus dem Datenblatt des 
RAMs. Es gibt meist mehrere Betriebsmodi. Hier WE-Controlled beim 
Schreiben als Beispiel, wie oben schon beschrieben.

Das RAM übernimmt die Daten vom Bus mit der steigenden Flanke von WE, im 
Bild mit roten Blitz markiert. Damit das funktioniert, müssen aber 
weitere Bedingungen eingehalten werden.

Die Adressen müssen lange genug (t-AW) vor dieser Flanke stabil, d.h. 
ohne Änderung, angestanden haben, genau so CE (t-CW) und WE (t-WP). Auch 
die Daten, hier genügt aber die kürzere Zeit t-DW. Genaue Werte stehen 
im Datenblatt.

Besser mal alles mit dem Oszi prüfen und ausmessen, falls der Zeiten um 
10ns auflöst.

Analog mit den Lesezyklen von RAM und EPROM verfahren (ausreichend Zeit 
von Adresswechsel bis CE-High-Flanke), wobei du hier auch einen Blick 
ins Datenblatt der CPU werfen musst. Also mit welcher Flanke übernimmt 
die die Daten.

Gruß Wulf

von Thomas W. (dbstw)


Lesenswert?

Wastl schrieb:
> Die Adressleitungen werden direkt vom 6502 getrieben, werden
> also nie hochohmg (floatend) sein, daher können sie auch nicht
> leicht durch Einstreuungen gestört werden.

Das spielt hier keine Rolle, aber die 65C02(!) hat das BE (Bus 
enable)-Eingang. Ist der BE High, dann werden die Bustreiber in der CPU 
durchgeschaltet, bei low werden die Bustreiber asynchron abschaltet. Ist 
bei dem Patienten fest mit Vcc verbunden.

Das war damals (als die CMOS-Versionen rauskamen) das grosse Ding, denn 
Du konntest dann richtiges DMA mit der 65C02 machen (bei der 
NMOS-Version nur mit Klimmzuegen).

Ist lange her und hat keine, aber gar keine Relevanz fuer diesen Thread.

Gruesse

von Johannes S. (vamogu05)


Lesenswert?

Wulf D. schrieb:
> Besser mal alles mit dem Oszi prüfen und ausmessen, falls der Zeiten um
> 10ns auflöst.
>
> Analog mit den Lesezyklen von RAM und EPROM verfahren (ausreichend Zeit
> von Adresswechsel bis CE-High-Flanke), wobei du hier auch einen Blick
> ins Datenblatt der CPU werfen musst. Also mit welcher Flanke übernimmt
> die die Daten.

Danke Wulf, sehr ausführlich erklärt. Ich denke, mein Oszi kann das 
gerade noch auflösen. Schaue ich mir an.

Thomas W. schrieb:
> Das spielt hier keine Rolle, aber die 65C02(!) hat das BE (Bus
> enable)-Eingang. Ist der BE High, dann werden die Bustreiber in der CPU
> durchgeschaltet, bei low werden die Bustreiber asynchron abschaltet. Ist
> bei dem Patienten fest mit Vcc verbunden.
>
> Das war damals (als die CMOS-Versionen rauskamen) das grosse Ding, denn
> Du konntest dann richtiges DMA mit der 65C02 machen (bei der
> NMOS-Version nur mit Klimmzuegen).
>
> Ist lange her und hat keine, aber gar keine Relevanz fuer diesen Thread.

Trotzdem Danke für Deinen Beitrag. Je mehr ich darüber erfahren kann, 
desto besser wird mein Verständnis darüber.

von Irgend W. (Firma: egal) (irgendwer)


Lesenswert?

Johannes S. schrieb:
> Also sind vermutlich die beiden Adressleitungen schlecht geroutet.

Vergiss es, so schlecht kannst da das garnicht routen das diese bei 1MHz 
solche Probleme macht. Früher hat man sowas mit wilden Fädeldraht 
Konstrukten gemacht und es hat auch geklappt.

- z.B.: Beitrag "Re: Wire wrap (Fädeltechnik)"

Du hast irgendwo ein Timing-Problem! Vermutlich wird der Adress-Bus 
schon wieder inaktiv bevor der RAM die Adresse übernommen hat. Mit dem 
Kondensator-Murks verlängerst du vermutlich minimal die Zeit wo die 
Daten auf dem Bus vorhanden sind, sodass es gerade noch so funktioniert 
und der Timingfehler kaschiert wird. Wenn es demnächst draußen etwas 
Kälter wird, sind es dann A0, A3 oder sonstwas die Probleme machen.

Wenn die Abblockkondensatoren und somit die Versorgungsspannung für alle 
IC in Ordnung ist, kann es eigentlich nur irgendwo was mit viel zu 
knappen Timing sein.
Die 74F sind von Timing her wohl schnell genug, nur sind die halt TTL 
und du verwendest ansonsten CMOS, kann gehen muss es aber nicht. Dürfte 
bei zu knappen Timing aber nur noch das letzte Tröpfchen sein und nicht 
das grundlegende Problem. Aber bei 1MHz hat das früher auch problemlos 
mit den vergleichsweise lahmen 74xx bzw. 74LSxx auch funktioniert.

74AC / 74HC wäre z.B. CMOS
- 
https://en.wikipedia.org/wiki/Logic_family#Monolithic_integrated_circuit_logic_families_compared

von Soul E. (soul_eye)


Lesenswert?

In dem Zusammenhang wäre dann interessant, welche Logikfamilien bei der 
Originalplatine verwendet wurden. Der TO schreibt im Eingangspost, alles 
wäre identisch bis auf das SRAM.

Grundsätzlich funktionieren muss das Design ja, sonst hätte der 
Originalhersteller nicht viele davon verkauft.

von Johannes S. (vamogu05)


Lesenswert?

Irgend W. schrieb:
> Wenn es demnächst draußen etwas
> Kälter wird, sind es dann A0, A3 oder sonstwas die Probleme machen.

D.h. wenn ich die Platine mit Kältespray behandle müsste ein Fehler 
wieder auftreten. Das werde ich probieren sobald ich Kältespray habe.

Irgend W. schrieb:
> Wenn die Abblockkondensatoren und somit die Versorgungsspannung für alle
> IC in Ordnung ist, kann es eigentlich nur irgendwo was mit viel zu
> knappen Timing sein.

Möglich, aber warum macht die Platine dann auch bei niedrigerer 
Taktfrequenz Fehler? Das passt nicht ganz zum Fehlerbild.

Irgend W. schrieb:
> Die 74F sind von Timing her wohl schnell genug, nur sind die halt TTL
> und du verwendest ansonsten CMOS, kann gehen muss es aber nicht. Dürfte
> bei zu knappen Timing aber nur noch das letzte Tröpfchen sein und nicht
> das grundlegende Problem. Aber bei 1MHz hat das früher auch problemlos
> mit den vergleichsweise lahmen 74xx bzw. 74LSxx auch funktioniert.
>
> 74AC / 74HC wäre z.B. CMOS

Ok, ich habe die 74F genommen, da die Vorlage (funktionierende Platine 
eines Elektronikers) die selben Gatter verbaut hat. Dürften auch 
schneller sein als die AC-Teile.
Ich habe mir die Decodiergatter auch in AC-Ausführung bestellt. Bin 
gespannt wie die Platine sich mit diesen Teilen verhält.

Soul E. schrieb:
> In dem Zusammenhang wäre dann interessant, welche Logikfamilien bei der
> Originalplatine verwendet wurden. Der TO schreibt im Eingangspost, alles
> wäre identisch bis auf das SRAM.
>
> Grundsätzlich funktionieren muss das Design ja, sonst hätte der
> Originalhersteller nicht viele davon verkauft.

Bitte beachten: es geht nicht um die Platine des Herstellers dieses 
Schachcomputers. Die läuft mit einer normalen 6502 CPU mit 2MHz Clock 
und einer VIA 6522 mit 1MHz Takt. Die Decodierlogik ist dort wesentlich 
umfangreicher und komplizierter aufgebaut (J-K Flip Flops etc). Ein 
Tüftler hat dann dieses Originaldesign vereinfacht und getuned auf bis 
zu 24MHz, indem der die modernen Bausteine W65C02S und W65C22 von 
Western Design Center, schnelle Gatter (74Fxx) und schnelles RAM (55ns 
bzw. 15ns bei der 24MHz Variante) verbaute. Ich bin über Umwegen an eine 
16Mhz-Platine dieses Elektronikers geraten und wollte diese nachbauen 
und den ROM-Bereich vergrößern, da ich ein umfangreiches Eröffnungsbuch 
ins ROM brennen wollte. Das alles funktioniert mittlerweile bei meiner 
Platine mit den beiden Kondensatoren in A1/A2 einwandfrei. Ob das bei 
niedrigeren Temperaturen ebenfalls noch so ist, wird sich zeigen.
Das die Ansteuerung der Speicher nicht optimal gelöst wurde (OE fix auf 
GND) weiß ich mittlerweile. Mein neues Design wird das richtig machen.

von Thomas W. (dbstw)


Lesenswert?

Johannes S. schrieb:
>
> Bitte beachten: es geht nicht um die Platine des Herstellers dieses
> Schachcomputers. Die läuft mit einer normalen 6502 CPU mit 2MHz Clock
> und einer VIA 6522 mit 1MHz Takt. Die Decodierlogik ist dort wesentlich
> umfangreicher und komplizierter aufgebaut (J-K Flip Flops etc).

Kann man die Orginalplatine irgendwo sehen/downloaden?

Gruesse

Th.

von Soul E. (soul_eye)


Lesenswert?

Johannes S. schrieb:
> (...) Ein
> Tüftler hat dann dieses Originaldesign vereinfacht und getuned auf bis
> zu 24MHz, indem der die modernen Bausteine W65C02S und W65C22 von
> Western Design Center, schnelle Gatter (74Fxx) und schnelles RAM (55ns
> bzw. 15ns bei der 24MHz Variante) verbaute.

Eben die meinte ich mit Originalplatine. Die sollte ja weitgehend Deiner 
Schaltung entsprechen und grundsätzlich funktionieren.

von Johannes S. (vamogu05)


Lesenswert?

Thomas W. schrieb:
> Kann man die Orginalplatine irgendwo sehen/downloaden?

Ich habe den Schaltplan leider nicht mehr.

Soul E. schrieb:
> Eben die meinte ich mit Originalplatine. Die sollte ja weitgehend Deiner
> Schaltung entsprechen und grundsätzlich funktionieren.

Ja, meine Schaltung sollte der Originalplatine entsprechen. Der 
"Tüftler" hat nur A13 nicht in die Decodierlogik aufgenommen, deshalb 
ist der Bereich von $2000 - $3FFF sowohl vom EPROM als auch vom SRAM 
belegt. Das habe ich geändert! Außerdem verwendet er 
SMD-Abblockkondensatoren, ich 100nF Kerkos.

von Klaus F. (klaus27f)


Lesenswert?

Johannes S. schrieb:
> Ok, ich habe die 74F genommen, da die Vorlage (funktionierende Platine
> eines Elektronikers) die selben Gatter verbaut hat. Dürften auch
> schneller sein als die AC-Teile.
>

74Fxxx sind im Wert "typ" der Durchlaufverzögerung mimimal besser als 
"AC".
Allerdings bei "min" ist "AC" schneller spezifiziert, bei "max" 
langsamer.

Beispiel  Delay t PLH  ( Werte jeweils für 25°C )
74F138:   typ. 5.4ns   min. 3.5ns   max.  7.0ns
74AC138   typ. 8.0ns   min. 1.5ns   max. 11.0ns

Wichtig: Bei den "AC" ist die theor. "Streuung"  min.-max. sehr viel 
grösser. Daher niemals kritische Signale durch ungleiche Anzahl an 
Gattern laufen lassen. Also immer gleiche "Stufenzahl", idealerweise 
einstufig.
Und möglichst auch identische Gatter, selbes Gehäuse oder zumindest 
identische Fertigungscharge.
Notfalls Ausgleich durch passenden Inverter oder "Nichtinverter" 
schaffen, wofür sich idealerweise z.B. das XOR 74AC86 eignet. Im selben 
Gehäuse sind 4 dieser Zauber.

von Dietrich L. (dietrichl)


Lesenswert?

Johannes S. schrieb:
> Möglich, aber warum macht die Platine dann auch bei niedrigerer
> Taktfrequenz Fehler? Das passt nicht ganz zum Fehlerbild.

Die Taktfrequenz bestimmt ja "nur", wie oft pro Zeiteinheit die 
Signalabläufe abgearbeitet werden. Aber alle Vorgänge, die von einer 
Taktflanke ausgelöst werden, haben das gleiche Timing bezüglich 
Verzögerungs- und Laufzeiten bei den ICs und den Signalleitungen.
Die Taktflanke ist ja bei unterschiedlichen Frequenzen gleich steil.
Lediglich bei Signalabläufen, die mehrere Takte erfordern, ist die Zeit 
des gesamten Ablaufs frequenzabhängig. Aber gibt es hier solche 
überhaupt bzw. sind sie bzgl. Timingproblemen relevant?

von Dietrich L. (dietrichl)


Lesenswert?

Klaus F. schrieb:
> 74Fxxx sind im Wert "typ" der Durchlaufverzögerung mimimal besser als
> "AC".

Bemerkung zu Formulierung "besser": damit meinst du wahrscheinlich 
"schneller".
Das kann aber für das Verhalten der Schaltung "schlechter" bedeuten, 
wenn dadurch  ein schnelleres Signal ein langsameres "überholt".

von (prx) A. K. (prx)


Lesenswert?

Von den AC las ich einstmals, dass die Power-Transienten sich gut zum 
Test vom Layout-Skill eignen. AHC sei friedlicher. Einige Devices dieser 
Reihe hatte man eigens deshalb in Varianten mit zentralen 
Stromversorgungspins rausgebracht, weil die Ecken zu weit weg sind. 
Dürfte aber hauptsächlich Bustreiber & Co betreffen, weniger die hier 
eingesetzten Dekoder und Logik.

: Bearbeitet durch User
von Harald K. (kirnbichler)


Lesenswert?

Klaus F. schrieb:
> 74Fxxx sind im Wert "typ" der Durchlaufverzögerung mimimal besser als
> "AC".

Man sollte hier aber nicht nur stumpf die Durchlaufverzögerung 
vergleichen, sondern auch die Pegel für Ein- und Ausgänge.

Am Beispiel des '138, beide von Fairchild

https://www.mouser.com/datasheet/2/149/74F138-90990.pdf
https://www.mouser.com/datasheet/2/308/74ACT138_D-2309969.pdf


Sehr deutlich ist der Unterschied der ausgegebenen High-Pegel, F liefert 
min 2.7 V, AC liefert min ca. 4.9 V (muss man aus den Werten für 4.5 und 
5.5 V extrapolieren*)

Aber auch bei den eingangsseitig erkannten High-Pegel gibt es heftige 
Abweichungen. F ist mit min 2 V spezifiziert, AC aber mit ca. 3.5 V.
Bei den eingangsseitigen Low-Pegeln siehts nicht anders aus:
F ist mit max 0.8 V spezifiziert, AC aber mit ca. 1.5 V.

Wenn man das statisch (bzw. mit niedriger Taktfrequenz) betreibt, dann 
ist der Unterschied nicht so irrwitzig kritisch, aber wenn man da mit 
etwas höheren Taktfrequenzen draufgeht, wirkt sich auch jede noch so 
banal erscheinende Schluderei beim Schaltungsdesign/Layout aus.


*) Nein, ich habe noch nicht so recht nachvollziehen können, warum "DC 
Electrical Characterstics" in CMOS-Datenblättern gerne mit diversen 
Versorgungsspannungen, nicht aber 5.0V angegeben werden

von Johannes S. (vamogu05)


Lesenswert?

Dietrich L. schrieb:
> Die Taktfrequenz bestimmt ja "nur", wie oft pro Zeiteinheit die
> Signalabläufe abgearbeitet werden. Aber alle Vorgänge, die von einer
> Taktflanke ausgelöst werden, haben das gleiche Timing bezüglich
> Verzögerungs- und Laufzeiten bei den ICs und den Signalleitungen.
> Die Taktflanke ist ja bei unterschiedlichen Frequenzen gleich steil.

Ja, das leuchtet ein!

> Lediglich bei Signalabläufen, die mehrere Takte erfordern, ist die Zeit
> des gesamten Ablaufs frequenzabhängig. Aber gibt es hier solche
> überhaupt bzw. sind sie bzgl. Timingproblemen relevant?

Aber je höher der Takt, desto kürzer muss die Zugriffszeit des EPROMs 
bzw. RAMs sein. In meinem Fall ein Wunder, das sich das noch ausgeht.

Dietrich L. schrieb:
> Bemerkung zu Formulierung "besser": damit meinst du wahrscheinlich
> "schneller".
> Das kann aber für das Verhalten der Schaltung "schlechter" bedeuten,
> wenn dadurch  ein schnelleres Signal ein langsameres "überholt".

Wenn ich das Timing-Diagramm der W65C02 richtig verstehe, so sind die 
Adresssignale erst gültig nach tADS beginnend ab fallender Phi2-Flanke. 
Das sind immerhin max. 30ns bei 14MHz (lt. Datasheet). Dann bleibt nicht 
mehr viel Zeit um die Daten vom Speicher zu bekommen. Wenn die Daten 
dann bei der nächsten fallenden Flanke übernommen werden, könnten 
Speicher-Zugriffszeiten über 32ns problematisch sein. Oder wie 
funktioniert das genau?
Ebenso könnten zu schnelle Decoder Probleme verursachen. Sind meine 
Überlegungen richtig?
In meinem Fall wird tADS wahrscheinlich kürzer sein und die Zugriffszeit 
der Speicher auch, sonst geht sich das nie und nimmer aus. Mein System 
läuft jetzt stabil mit sogar 20MHz Phi2! Das sind eben nur max. 50ns 
Zyklusdauer.

Harald K. schrieb:
> Sehr deutlich ist der Unterschied der ausgegebenen High-Pegel, F liefert
> min 2.7 V, AC liefert min ca. 4.9 V (muss man aus den Werten für 4.5 und
> 5.5 V extrapolieren*)

Ok, schön langsam verstehe ich die Unterschiede der einzelnen Typen.
Habe AC-Teile bestellt, werde das Ganze mal damit testen. Danke für den 
Hinweis!

von Johannes S. (vamogu05)


Lesenswert?

> Irgend W. schrieb:
>> Wenn es demnächst draußen etwas
>> Kälter wird, sind es dann A0, A3 oder sonstwas die Probleme machen.
>

Johannes S. schrieb:
> D.h. wenn ich die Platine mit Kältespray behandle müsste ein Fehler
> wieder auftreten. Das werde ich probieren sobald ich Kältespray habe.

Kältespray ist immer noch nicht da. Habe die Platine mal ins 
Tiefkühlfach gelegt für eine Stunde dann eingebaut und ausprobiert. 
Läuft einwandfrei!

von Jens G. (jensig)


Lesenswert?

Johannes S. schrieb:
> Wenn ich das Timing-Diagramm der W65C02 richtig verstehe, so sind die
> Adresssignale erst gültig nach tADS beginnend ab fallender Phi2-Flanke.
> Das sind immerhin max. 30ns bei 14MHz (lt. Datasheet). Dann bleibt nicht
> mehr viel Zeit um die Daten vom Speicher zu bekommen. Wenn die Daten
> dann bei der nächsten fallenden Flanke übernommen werden, könnten
> Speicher-Zugriffszeiten über 32ns problematisch sein. Oder wie
> funktioniert das genau?

Ja, so ist das. Aber bei den Speichern werden die Verzögerungszeiten ja 
nur als max. Zeiten angegeben. Deutlich kürzer bzw. schneller dürfen die 
ja trotzdem sein. Kann also auch sein, daß der RAM statt 55ns "nur" 30ns 
schnell ist, und dann klappte es halt auch wieder.
Und wenn tADS nicht die 30ns auskostet, sondern nur 20ns, dann haben wir 
ja wieder 10ns gewonnen. Und deswegen kann dasdurchaus noch 
funktionieren - je nach individuellen Timing-Eingenschaften der 
einzelnen Exemplare.

> Ebenso könnten zu schnelle Decoder Probleme verursachen. Sind meine
> Überlegungen richtig?

Ich hatte mir die Timing-Diagramme von CPU, RAM, EPROM und deren 
Decoder-Gatter gestern abend mal genauer angeschaut. Zumindest dem RAM 
und EPROM ist es herzlich egal, ob die damit gebildeten CE-Signale etwas 
vor oder nach den restlichen Adresssignalen ankommen. Das letzte dieser 
Eingangssignale bildet sozusagen den Startschutz für die 
Speicherverzögerungszeit. Und damit kann eigentlich die Koordination 
dieser Signale untereinander gar nicht gestört werden, wenn wir mal von 
den normalen Toleranzen in den Gatterverzögerungszeiten ausgehen.
Auch die RW-Signalaufbereitung sieht diesbezüglich für R- und 
W-Operationen  sauber aus.
Eigentlich haben wir hier wirklich nur einen Einfluß der Taktfrequenz 
selbst, die stören könnte, wenn die Operationen der HL-Flanke durch zu 
hohe Frequenzen bzw. zu kurze Perioden-Zeiten in die der LH-Flanke 
reinreichen und anders herum. Also die Peripherie dann nicht mehr 
nachkommt. Aber einen störenden Effekt auch bei sehr gemächlicher Clock 
kann ich hier nicht nachvollziehen. Das Problem muß also woanders liegen 
- vielleicht ist das einfach nur eine Falschanzeige der LED-Treiber 
durch deren gestörtes Timing?

von G. O. (aminox86)


Angehängte Dateien:

Lesenswert?

Hallo

unter dem Wust von Beitraegen gibt es irgendwo den zarten Hinweis, dass 
das in der Schaltung eingesetzte Ram bzw Eprom dedizierte 
Ansteuersignale (/rd, /wr, /cs) benoetigen und nicht wie gezeichnet 
quasi im Standby-Modus verharren(/cs daueraktiv).

Die verwendeten Speicherbausteine sind fuer diese Betriebsart nicht 
vorgesehen, wie ich bei der Konstruktion meiner VGA-Karte feststellen 
musste, bei der die /CS-Pin der Eprom im ersten Entwurf ebenfalls mit 
GND verbunden waren. Im Betrieb traten beim Lesezugriff auf die Eprom 
Fehlersignale auf, die ich 'mal als "Glitch" bezeichnen moechte.
Die Bildschirmaufnahme zeigt dieses Phaenomen.
Interessanterweise scheint dieses Verhalten der Eprom 
herstellerabhaengig zu sein, bin dem aber nicht weiter nachgegangen. 
Cache-Ram zeigen in dieser Betriebsart(/cs an GND) dieses Verhalten 
uebrigens nicht. Meine Problemloesung war, ein Auffangregister fuer die 
gestoerten Daten vorzusehen.


Ich wuerde beim Neuentwurf des Schachcomputers die Steuersignale der 
Speicherbausteine wie vom Hersteller vorgesehen generieren. Um die ggf 
auftretenden Verzoegerugen wuerde mir keine Gedanken machen, denn 16MHz 
sind bei entsprechenden Layout gut zu beherrschen(kurze Verbindungen, 
breite Leiterbahnen bzw Flaechen fuer die Spannungsversorgung).


Meine damalige Loesung haenge ich 'mal an. Im Zip-Archiv des Beitrags 
gibt es die Datei "vga_a.gif". Links oben im Schaltungsteil 
"Ablaufsteuerung" ist sie eingezeichnet.
mfg

Beitrag "vga-karte, fast diskret"

: Bearbeitet durch User
von Jens G. (jensig)


Lesenswert?

G. O. schrieb:
> ie verwendeten Speicherbausteine sind fuer diese Betriebsart nicht
> vorgesehen, wie ich bei der Konstruktion meiner VGA-Karte feststellen
> musste, bei der die /CS-Pin der Eprom im ersten Entwurf ebenfalls mit
> GND verbunden waren. Im Betrieb traten beim Lesezugriff auf die Eprom
> Fehlersignale auf, die ich 'mal als "Glitch" bezeichnen moechte.
> Die Bildschirmaufnahme zeigt dieses Phaenomen.

Das ist schon richtig, aber der Glitch passiert doch offenbar nur zu der 
Zeit des Anlegens der CE/OE oder auch Adresssignale. Zu diesem Zeitpunkt 
will aber keiner die Daten lesen, sondern erst später, wenn die Daten 
lt. Zeitrechnung dann auch wirklich als gültig betrachtet werden dürfen. 
Also mindestens 55ns (oder warens 50?) beim genannten RAM warten ...

von G. O. (aminox86)


Lesenswert?

Das mit dem Glitch ist vielleicht etwas uebertrieben.

Nachdem ich in der Zwischenzeit Entwuerfe mit dem 6502 angesehen habe 
bin ich der Meinung, dass das Board in erster Linie mit Timing- und 
nicht mit Temperaturproblemen zu kaempfen hat denn: Der Takt Phi2 wird 
direkt vom Oszillator abgeleitet und nicht von der CPU wie in den 
einschlaegigen Schaltbildern zu sehen ist. Ich denke, es enstehen 
dadurch Laufzeitunterschiede, die offensichtlich nach laengerem Bestrieb 
verschwinden.

Diese Webseite geht ausfuehrlich auf den 6502 
ein:http://wilsonminesco.com/6502primer/

mfg

von Johannes S. (vamogu05)


Lesenswert?

G. O. schrieb:
> Das mit dem Glitch ist vielleicht etwas uebertrieben.
>
> Nachdem ich in der Zwischenzeit Entwuerfe mit dem 6502 angesehen habe
> bin ich der Meinung, dass das Board in erster Linie mit Timing- und
> nicht mit Temperaturproblemen zu kaempfen hat denn: Der Takt Phi2 wird
> direkt vom Oszillator abgeleitet und nicht von der CPU wie in den
> einschlaegigen Schaltbildern zu sehen ist. Ich denke, es enstehen
> dadurch Laufzeitunterschiede, die offensichtlich nach laengerem Bestrieb
> verschwinden.
>
> Diese Webseite geht ausfuehrlich auf den 6502
> ein:http://wilsonminesco.com/6502primer/
>
> mfg

Das ist bei der modernen Variante von Western Design Center nicht der 
Fall. siehe Datenblatt Seite 10. 
https://www.westerndesigncenter.com/wdc/documentation/w65c02s.pdf

Beitrag #7724685 wurde vom Autor gelöscht.
von (prx) A. K. (prx)



Lesenswert?

G. O. schrieb:
> Der Takt Phi2 wird
> direkt vom Oszillator abgeleitet und nicht von der CPU wie in den
> einschlaegigen Schaltbildern zu sehen ist.

Da ist was dran. Es ist irreführend, die Takte gegenüber dem Original so 
umzubenennen, dass phi0 des Originals nun phi2 heißt, und phi2 nun 
phi2O. Wobei das andererseits logisch ist, weil sich das Timing des 
Originals und des WDC auf phi2 beziehen - das aber je nach exakten 
Prozessor verschiedene Pins sind!

: Bearbeitet durch User
von Wulf D. (holler)


Lesenswert?

G. O. schrieb:
> Hallo
>
> unter dem Wust von Beitraegen gibt es irgendwo den zarten Hinweis, dass
> das in der Schaltung eingesetzte Ram bzw Eprom dedizierte
> Ansteuersignale (/rd, /wr, /cs) benoetigen und nicht wie gezeichnet
> quasi im Standby-Modus verharren(/cs daueraktiv).

Hast Du Dir das Schaltbild wirklich angesehen?

Kein /CE ist daueraktiv.

Außerdem wären RAM und EPROM voll statisch, woher nimmst du deine Infos?

von Joachim B. (jar)


Lesenswert?

Joachim B. schrieb:
> mir fiel noch ein das es bei dynamischen Steinen auch um den PI 0 bzw PI
> 1 Takt geht der nach den stabilen Daten passend den Pegel wechseln muß.

(prx) A. K. schrieb:
> Da ist was dran. Es ist irreführend, die Takte gegenüber dem Original so
> umzubenennen, dass phi0 des Originals nun phi2 heißt

und ich wunderte mich schon warum ich pi0 und pi1 im Kopf hatte als ich 
am PET2001 erweiterte.
Die spinnen doch alte Bezeichnungen umzubenennen.

Joachim B. schrieb:
> ok, habe noch mal nachgesehen, die beiden von der CPU zur Abstimmung mit
> externe Bausteine hießen PI1 & PI2

ich bin also reingefallen

von Alexander M. (alexander_m366)


Lesenswert?

Mal ganz vorne angefangen:

Ich habe den Eindruck, dass der Schaltplan gar nicht zum Layout passt!?

Beim Verfolgen der Taktleitungen Phi2O sehe ich im Board, dass die 
Leitung zu einem (nichtbestückten) U16 geht, im Schaltplan gibt es den 
nicht.

Das ist erstens nicht gut und zweitens verwirrend.

von (prx) A. K. (prx)


Angehängte Dateien:

Lesenswert?


von (prx) A. K. (prx)


Lesenswert?

Wulf D. schrieb:
> Kein /CE ist daueraktiv.

Im Schaltbild vom Startbeitrag ist in keinem /CE ein Takt drin, weshalb 
sie durchaus daueraktiv sein können. Nur ist das bei diesen rein 
statischen Speichern egal.

: Bearbeitet durch User
von Johannes S. (vamogu05)


Lesenswert?

Alexander M. schrieb:
> Ich habe den Eindruck, dass der Schaltplan gar nicht zum Layout passt!?
>
> Beim Verfolgen der Taktleitungen Phi2O sehe ich im Board, dass die
> Leitung zu einem (nichtbestückten) U16 geht, im Schaltplan gibt es den
> nicht.

Ja, das stimmt. Ich habe den korrigierten Schaltplan gezeigt, da ich 
während der Herstellung der Platine darauf gekommen bin, dass meine 
Überlegungen nicht funktionieren können. Deshalb ist im Layout auch ein 
unbestückter Footprint zu sehen. Habe das aber w. o. geschrieben. Wollte 
niemand verwirren:-).

von Johannes S. (vamogu05)


Lesenswert?

Johannes S. schrieb:
> Kältespray ist immer noch nicht da. Habe die Platine mal ins
> Tiefkühlfach gelegt für eine Stunde dann eingebaut und ausprobiert.
> Läuft einwandfrei!

Mittlerweile habe ich Kältespray erhalten und die ganze Platine damit 
abgekühlt. Wie erwartet kein Fehler oder Ausfall feststellbar!

Ich habe nun das 100ns EPROM der "Originalplatine" versucht statt den 
45ns EPROM das ich verbaut hatte und es funktioniert ebenso. Das heißt 
die Zugriffszeit dieses EPROMs muss doch deutlich kürzer sein als 
angegeben. Habe da noch den 20MHz Oszillator drinnen.

Egal, meine Platine funktioniert jetzt ebenso wie die "Originale", seit 
ich die beiden Kondensatoren parallel zu den Adressleitungen A1/A2 
gelötet habe. Warum das so ist, weiß ich leider nicht. Der Unterschied 
kann doch nur mehr am Layout liegen.

von Thomas W. (dbstw)


Lesenswert?

Johannes S. schrieb:

> Mittlerweile habe ich Kältespray erhalten und die ganze Platine damit
> abgekühlt. Wie erwartet kein Fehler oder Ausfall feststellbar!

Dann ist doch gut.

> Ich habe nun das 100ns EPROM der "Originalplatine" versucht statt den
> 45ns EPROM das ich verbaut hatte und es funktioniert ebenso. Das heißt
> die Zugriffszeit dieses EPROMs muss doch deutlich kürzer sein als
> angegeben. Habe da noch den 20MHz Oszillator drinnen.

:-) Aber so eine richtige Erklaerung, warum das Ding auch bei 1MHz nicht 
so laeuft wie geplant haben wir nicht. Manchmal muss man einfach 
akzeptieren.

> Egal, meine Platine funktioniert jetzt ebenso wie die "Originale", seit
> ich die beiden Kondensatoren parallel zu den Adressleitungen A1/A2
> gelötet habe. Warum das so ist, weiß ich leider nicht. Der Unterschied
> kann doch nur mehr am Layout liegen.

Willst Du Dir wirklich die Muehe nochmal machen, denn jetzt hast Du zwei 
funktionsfaehige Geraete? Und vielleicht baust Du mit dem neuen Layout 
neue Fehler ein.

Ich hatte mal nach dem "Auto Response Board" gesucht: Schaltplaene sind 
wohl wirklich rar. Aber das Teil ist natuerlich schon schoen. Hast Du 
ungefaehr eine Hausnummer wie teuer das Ding damals war? Ich hatte 
Sargon II auf einem TRS-80 (ca. 1980, der Massenspeicher war ein 
Kassettenrekorder), mit 1.77MHz bei einer Z80-CPU. Mit 
Kloetzchen-Grafik.

Gruesse

Th.

: Bearbeitet durch User
von Johannes S. (vamogu05)


Lesenswert?

Hallo Thomas,

Thomas W. schrieb:
> Willst Du Dir wirklich die Muehe mal machen, denn jetzt hast Du zwei
> funktionsfaehige Geraete? Und vielleicht baust Du mit dem neuen Layout
> neue Fehler ein.

Mir geht es auch darum dabei etwas zu lernen. Es bleibt aj nicht nur bei 
dem AutoResponse Board. Ich habe schon wieder ganz andere Projekte im 
Kopf :-)

Thomas W. schrieb:
> :-) Aber so eine richtige Erklaerung, warum das Ding auch bei 1MHz nicht
> so laeuft wie geplant haben wir nicht. Manchmal muss man einfach
> akzeptieren.

Ja, leider! Ich habe noch einige Platinen und könnte da noch etwas 
experimentieren. Mal sehen wie sich die AC-Gatter verhalten werden.

Thomas W. schrieb:
> Hast Du
> ungefaehr eine Hausnummer wie teuer das Ding damals war?

Ca. 1500.- Euro Einführungspreis 1980. Heute findet man eher selten 
ARBs um 400.- auf Ebay. Meistens in desolatem Zustand. Nach Restauration 
und mit min. 16MHz sind diese Schachcomputer deutlich teurer zu 
verkaufen.

Thomas W. schrieb:
> Ich hatte
> Sargon II auf einem TRS-80 (ca. 1980, der Massenspeicher war ein
> Kassettenrekorder), mit 1.77MHz bei einer Z80-CPU. Mit
> Kloetzchen-Grafik.

Ich kenne zwar den TRS-80 nur vom Hörensagen, kann mir aber diese 
Klötzchengrafik gut vorstellen. Ich hatte mir damals einen ZX81 Bausatz 
gekauft mit Speichererweiterung und das Schachprogramm dazu. Wenn ich 
mich richtig erinnere waren die Schachfiguren nur Buchstaben. Invertiert 
und nicht invertiert.

schöne Grüße

von Thomas W. (dbstw)


Lesenswert?

Johannes S. schrieb:
> Thomas W. schrieb:
>> Hast Du
>> ungefaehr eine Hausnummer wie teuer das Ding damals war?
>
> Ca. 1500.- Euro Einführungspreis 1980. Heute findet man eher selten
> ARBs um 400.- auf Ebay. Meistens in desolatem Zustand. Nach Restauration
> und mit min. 16MHz sind diese Schachcomputer deutlich teurer zu
> verkaufen.

Der TRS-80 war (1980) ca. 2000DEM, mit 16KB RAM, Monitor und 
Kassenrecorder als Massenspeicher. Disketten waren bei ca. 700DEM pro 
Laufwerk "out of reach" als Schueler.

> Thomas W. schrieb:
>> Ich hatte
>> Sargon II auf einem TRS-80 (ca. 1980, der Massenspeicher war ein
>> Kassettenrekorder), mit 1.77MHz bei einer Z80-CPU. Mit
>> Kloetzchen-Grafik.
>
> Ich kenne zwar den TRS-80 nur vom Hörensagen, kann mir aber diese
> Klötzchengrafik gut vorstellen.

Wikipedia hilft:

https://de.wikipedia.org/wiki/Tandy_TRS-80_Model_1

von Wulf D. (holler)


Lesenswert?

Johannes S. schrieb:
> Egal, meine Platine funktioniert jetzt ebenso wie die "Originale", seit
> ich die beiden Kondensatoren parallel zu den Adressleitungen A1/A2
> gelötet habe. Warum das so ist, weiß ich leider nicht. Der Unterschied
> kann doch nur mehr am Layout liegen.

Hallo Johannes,
schön dass die Platine auch mit Kältespray und sogar mit langsamen 
EPROMs läuft. Aber wohl nur mit den 10p auf den Adressleitungen. Das 
liegt mit einiger Wahrscheinlichkeit nicht am Layout. Das die 
„Originale“ funktioniert, könnte eben auch nur etwas Glück sein.

Wenn du etwas lernen willst, würde ich die Timings wie beschrieben mit 
dem Oszi kontrollieren. Du kannst das auch bei 1MHz Takt machen, an den 
Verhältnissen ändert sich nichts und dein Oszi arbeitet im 
Wohlfühlbereich.

Kannst die Messungen gern hier rein posten, sind ja etliche 
Interessierte im Thread.

Gruß Wulf

: Bearbeitet durch User
von Johannes S. (vamogu05)


Angehängte Dateien:

Lesenswert?

Wulf D. schrieb:
> Kannst die Messungen gern hier rein posten, sind ja etliche
> Interessierte im Thread.

Hallo Wulf,
mache ich gerne. Möchte das wirklich verstehen.
Anbei ein paar Messungen von A0, D0, CE und Phi2 im Vergleich zum 
WE-Signal. Alles mit 1MHz Taktfrequenz.
Passt das soweit?
Welche Oszillogramme wären noch interessant zu sehen?

von Axel R. (axlr)


Lesenswert?

Kannst du keinen Logikanalyser am Rigol-Oszi einstecken? Ich hab da so 
ne schmale Buchse und nen grauen Stecker. Der kann 16Kanäle und alles 
mögliche darstellen. Sicher genau hierfür mal angedacht gewesen.

von Jens G. (jensig)


Lesenswert?

Johannes S. schrieb:
> Welche Oszillogramme wären noch interessant zu sehen?

Also die WE-Rückflanken hätte ich gerne mal mit höherer zeitlicher 
Auflösung. Also 10 oder 25ns/div oder so ...

von Johannes S. (vamogu05)


Lesenswert?

Axel R. schrieb:
> Kannst du keinen Logikanalyser am Rigol-Oszi einstecken? Ich hab da so
> ne schmale Buchse und nen grauen Stecker. Der kann 16Kanäle und alles
> mögliche darstellen. Sicher genau hierfür mal angedacht gewesen.

Nein, das hat mein Rigol 1052E nicht.
Ich überlege aber schon lange mir so einen Logikanalyzer zu kaufen. Ich 
denke 8 Kanäle würden doch reichen? Was wäre denn da empfehlenswert?

von Wulf D. (holler)


Lesenswert?

Hallo zusammen,
die Screenshots sind fast perfekt, jedenfalls die mit 200ns Auflösung. 
Ein Logic-Analyser würde meiner Ansicht nach nicht viel helfen.

Eigentlich sieht man schon das Problem: in WE_A0 sieht man trotz zu 
geringer Auflösung, dass die Adressen gleichzeitig mit WE ändern. Das 
ist nicht gut.
Man muss dafür sorgen, dass WE unmittelbar mit PHI2 wechselt, da die 
Hold-Time der Adressen unabhängig vom Takt (!) nur 10ns beträgt.

Zur Zeit hast Du da zwei Gatterlaufzeiten drauf, die in die Gegend von 
10ns reichen und damit unsicher werden.

WE_D0 zeigt wie ein sicheres Timing aussieht, die Daten sind also nicht 
das Problem.

Melde mich nochmal mit einer Skizze um das besser zu erklären, ggf mit 
einem Verbesserungsvorschlag.

Gruß Wulf

von Axel R. (axlr)


Lesenswert?

Gibt es hier für diesen 65C20(?) kein referenzdesign, wie für alles 
andere auch? Selbst in der RFE-Zeitung zu DDR-Zeiten waren sowohl die 
U880, als auch die einchip-Varianten ordentlich erklärt. Sowas muss es 
doch hier erst recht geben.
Daran würde ich mein Schaltplanentwurf ausrichten und nicht „Blind“(sry) 
irgendetwas nachbauen.

von Johannes S. (vamogu05)


Angehängte Dateien:

Lesenswert?

Jens G. schrieb:
> Johannes S. schrieb:
>> Welche Oszillogramme wären noch interessant zu sehen?
>
> Also die WE-Rückflanken hätte ich gerne mal mit höherer zeitlicher
> Auflösung. Also 10 oder 25ns/div oder so ...

Hi Jens,

anbei die gewünschten Bilder.

von Johannes S. (vamogu05)


Lesenswert?

Axel R. schrieb:
> Daran würde ich mein Schaltplanentwurf ausrichten und nicht „Blind“(sry)
> irgendetwas nachbauen.

Naja, die Platine die mir vorliegt funktioniert ja seit Jahren 
einwandfrei. Außerdem wurde sie von jemandem entwickelt der mehr Ahnung 
von Elektronik hat als ich.

von Johannes S. (vamogu05)


Lesenswert?

Wulf D. schrieb:
> Eigentlich sieht man schon das Problem: in WE_A0 sieht man trotz zu
> geringer Auflösung, dass die Adressen gleichzeitig mit WE ändern. Das
> ist nicht gut.
> Man muss dafür sorgen, dass WE unmittelbar mit PHI2 wechselt, da die
> Hold-Time der Adressen unabhängig vom Takt (!) nur 10ns beträgt.

Ja, das habe ich mir auch schon gedacht. Bei den Daten sieht das Timing 
vernünftig aus.

> Melde mich nochmal mit einer Skizze um das besser zu erklären, ggf mit
> einem Verbesserungsvorschlag.

Das ist super nett von dir. Danke für Deine Bemühungen!

von Wulf D. (holler)


Angehängte Dateien:

Lesenswert?

Habe ein Timing-Bild aus dem Netz geklaut und angepasst, das geht Dank 
Bildersuche schneller als alles selber malen :-)

Das Timing-Diagramm basiert auf dem "General Timing Diagram" des 
Datenblatts. Ist schon ziemlich minimalistisch. Wie auch immer, man 
sieht darin, dass die Adressen und R/W gleichzeitig wechseln, und zwar 
mit der fallenden Flanke von PHI2 plus einer Hold-Time von 10ns.

Genau das wird knapp. Im Bild Zeile MEM_WE (rot) sieht man die R/W Logik 
wie du sie umgesetzt hast. PHI2 muss sowohl das 7404 als auch das 7432 
durchlaufen, bevor die steigende Flanke r/W das RAM erreicht. Bis dahin 
könnten schon Adressen wechseln, da zwei Gatter mehr als 10ns Laufzeit 
haben können.

Im unteren Vorschlag MEM_WE (grün) mit einem 7404 plus 7400 sparst du im 
kritischen Pfad eine Gatterlaufzeit und bleibst unter der Hold-Time.

Käme auf einen Versuch an, dass mal auf deinem Prototyp umzusetzen.

Gruß Wulf

von Jens G. (jensig)


Lesenswert?

Johannes S. schrieb:
> Hi Jens,
>
> anbei die gewünschten Bilder.

Doch nicht ein einzelnes Signal, sondern in Bezug auf das jeweils andere 
Signal im selben Screenshot. Was soll denn das sonst bringen ...

von Joachim B. (jar)


Lesenswert?

Johannes S. schrieb:
> anbei die gewünschten Bilder.

sag mal willst du uns veräppeln?

immer zusammen mit /OE /CE /CS

deswegen sind 4-kanal Oszis sinnvoller

Jens G. schrieb:
> Doch nicht ein einzelnes Signal, sondern in Bezug auf das jeweils andere
> Signal im selben Screenshot.

+1

: Bearbeitet durch User
von Thomas W. (dbstw)


Lesenswert?

Joachim B. schrieb:
> sag mal willst du uns veräppeln?
>
> immer zusammen mit /OE /CE /CS
>
> deswegen sind 4-kanal Oszis sinnvoller
>
Und wenn er keins hat? Aus der Rippe schneiden? Creatio ex nihilo?

Der Weg ueber /WE ist nicht so schlecht.

von Joachim B. (jar)


Lesenswert?

Thomas W. schrieb:
> Joachim B. schrieb:
>> deswegen sind 4-kanal Oszis sinnvoller
> Und wenn er keins hat?

keine Arme keine Kekse!
Blind an Elektronik reparieren ist selbstgewähltes Schicksal.

von Wulf D. (holler)


Lesenswert?

/OE ist sinnlos, da festgelegt. CE wird direkt aus den Adressen 
geschnitten. Also ist ein Bild in höchster Zeitauflösung zwischen 
Adressleitung und /WE sinnvoll.

Eines zwischen A0-WE liegt in 500ns vor.

Eines mit A1 /WE mit abgelöteten 10pF Cs in höchster Zeitauflösung wäre 
noch interessant.

Nehme an, dass bestätigt meine Skizze oben.
Gruß Wulf

: Bearbeitet durch User
von Klaus F. (klaus27f)


Lesenswert?

Wulf D. schrieb:
> Eines mit A1 /WE mit abgelöteten 10pF Cs in höchster Zeitauflösung wäre
> noch interessant.

Hallo liebe Leute,
das alles was ihr schreibt und vorschlagt, das haben wir schon vor Tagen 
durchgekaut.
Der TE hat ein 2-Kanal-Scope mit 50 MHz.
Die fraglichen Signale A1 und A2 "verbessern" sich, wenn man dort einen 
10 pF anbringt.

Jetzt FRAGE an euch neue Spezialisten:
Welchen Tastkopf mit "negativer Eingangskapaziät" soll er denn 
anschließen??

Und ja: Warum sind diese (beiden) Adressen, die nur aus der CPU kommen, 
so grottenschlecht bzw. zu kurz anstehzend.

Der TE meint, das Problem mit einem besseren Layout in Griff zu kriegen.

Noch niemand hat ihm geraten, die (niedrigen?) ADRESSEN zu RAM und EPROM 
mit einem  --> transparent Latch <-- festzuhalten bzw. zu verlängern 
(jedoch NICHT die -hohen- Adressen die zum Adreßdecoder führen.
Nein, ich habe dieses Details bisher auch nicht geschrieben, weil ich 
kein 6502 Spezialist bin und daher nicht weiss, welches Steuersignal 
dann für das Latch das richtig wäre.
Man sollte halt das Datenblatt des VERBAUTEN uP genau kennen.
Ich habe keine Muse mich in 6502 reinzulesen (da Z80 sowieso besser 
ist).

Ein neues Layout und konsequenter Einsatz von Cmos "AC" ist bei TE 
sowieso geplant. Unbedingt sinnvoll ist eine verbesserte Decodierung 
bzw.  Erzeugung der Signale /WE und /OE für Ram und Eprom.

von Johannes S. (vamogu05)


Angehängte Dateien:

Lesenswert?

Jens G. schrieb:
> Doch nicht ein einzelnes Signal, sondern in Bezug auf das jeweils andere
> Signal im selben Screenshot. Was soll denn das sonst bringen ...

Sorry, ich dachte du möchtest nur die Flankensteilheit von WE 
beurteilen.
Anbei die Bilder.

von Johannes S. (vamogu05)


Angehängte Dateien:

Lesenswert?

Wulf D. schrieb:
> Eines mit A1 /WE mit abgelöteten 10pF Cs in höchster Zeitauflösung wäre
> noch interessant.

Anbei das Bild. der 10pF Kondensator wurde von A1 entfernt.

von Wulf D. (holler)


Lesenswert?

Klaus F. schrieb:
> Ich habe keine Muse mich in 6502 reinzulesen (da Z80 sowieso besser
> ist).

Dann lass es doch und schreib nicht so einen Quark. „Negative Kapazität“ 
etc.

Im Gegensatz zu dir kenne ich das CPU Datenblatt und der prinzipielle 
Timingfehler ist gefunden. Einfach mal lesen und verstehen.

Es geht nur noch um die Verifikation.

von Johannes S. (vamogu05)


Lesenswert?

Klaus F. schrieb:
> Ein neues Layout und konsequenter Einsatz von Cmos "AC" ist bei TE
> sowieso geplant. Unbedingt sinnvoll ist eine verbesserte Decodierung
> bzw.  Erzeugung der Signale /WE und /OE für Ram und Eprom.

Ja, ist im neuen Schaltplan bereits umgesetzt. Warte aber noch mit dem 
Routen der Platine, bis alles soweit geklärt ist. Die AC-Teile dürften 
Anfang nächster Woche kommen.

von Johannes S. (vamogu05)


Lesenswert?

Wulf D. schrieb:
> Im unteren Vorschlag MEM_WE (grün) mit einem 7404 plus 7400 sparst du im
> kritischen Pfad eine Gatterlaufzeit und bleibst unter der Hold-Time.
>
> Käme auf einen Versuch an, dass mal auf deinem Prototyp umzusetzen.

Danke Wulf, für diesen Vorschlag. Ich kann das gerne mal versuchen 
umzubauen. Muss mir aber erst die AS-Teile besorgen, die habe ich 
nämlich nicht hier.

von Klaus F. (klaus27f)


Lesenswert?

Johannes S. schrieb:
> Anbei die Bilder.

Lieber Johannes,
du hast die falsche Flanke der Signale!
Was interessiert ist die low-nach-high Position.
Eben wenn das aktive Signal verschwindet, ob und wie lange an dieser 
Stelle noch die Adresse ansteht.

Allerdings ist es schwierig das mit deinem Scope zu erfassen, weil ein 
Tastkopf auch so um 10 pF oder mehr hat. Wie ich bereits mehrfach 
schrieb.
Aber manche halten meine Ausführungen für unlustig.

von Wulf D. (holler)


Lesenswert?

Johannes S. schrieb:
> Wulf D. schrieb:
>> Eines mit A1 /WE mit abgelöteten 10pF Cs in höchster Zeitauflösung wäre
>> noch interessant.
>
> Anbei das Bild. der 10pF Kondensator wurde von A1 entfernt.

Die beiden Flanken kommen praktisch gleichzeitig, was gerade noch so 
zulässig wäre. Die write-recovery-time, steigende Flanke WE# zu 
Adresswechsel vom RAM, ist 0ns.

In dem Fall würde der Schreibvorgang funktionieren. Ist die Frage ob das 
bei jedem Schreibvorgang so ist oder ob es doch einzelne Ausreißer gibt. 
Oder ob die paar pF vom Oszi-Tastkopf etwas verzögern, allerdings träfe 
das genauso auf das WE# Signal zu.

Wenn du sicher gehen willst, dass dein Design im nächsten Layout ohne 
die 10pF Testkrücke sicher funktioniert, würde ich die optimierte 
R/W-Logik mal ausprobieren. Auch wenn du noch keine AS- oder AC-Chips 
hast. Ein NAND sollte doch in jeder Logiksammlung vorhanden sein :-)

Gruß Wulf

von Rick (rick)


Lesenswert?

Johannes S. schrieb:
> Welche Oszillogramme wären noch interessant zu sehen?
Das Rigol hat bestimmt eine Memoryfunktion. Damit kann man sich z.B. die 
Kurve mit /WE und A1 (ohne Zusatz-C) abspeichern und danach das Ganze 
nochmal mit Zusatz-C aufnehmen.
Den Trigger jeweils auf die Flanke vom /WE, wobei ich die fallende 
Flanke spannender finde.

von Wulf D. (holler)


Lesenswert?

Rick schrieb:
> Den Trigger jeweils auf die Flanke vom /WE, wobei ich die fallende
> Flanke spannender finde.

Warum fallende Flanke? Die Setup - Zeiten sind doch alle tief im grünen 
Bereich.

Die Hold-Zeit der Adressen beim /WE steigende Flanke am RAM sieht 
megakritisch aus, oder habe ich was übersehen?

Gruß Wulf

von Rick (rick)


Lesenswert?

Wulf D. schrieb:
> Warum fallende Flanke? Die Setup - Zeiten sind doch alle tief im grünen
> Bereich.
Ich erwarte, das die Adressen vor der fallenden /WE-Flanke stabil 
anliegen. Das sah mir bei  "CE_A0_tst.jpg" (warum eigentlich jpg? -> 
Siehe Bildformate) nicht so aus. Ja, dort ist es CE, aber die Flanken 
sind mir zu nah beieinander.

von Axel R. (axlr)


Lesenswert?

Rick schrieb:
> Johannes S. schrieb:
>> Welche Oszillogramme wären noch interessant zu sehen?
> Das Rigol hat bestimmt eine Memoryfunktion. Damit kann man sich z.B. die
> Kurve mit /WE und A1 (ohne Zusatz-C) abspeichern und danach das Ganze
> nochmal mit Zusatz-C aufnehmen.
> Den Trigger jeweils auf die Flanke vom /WE, wobei ich die fallende
> Flanke spannender finde.

Es gibt den Knopf „Referenz“ da bleibt das als weißer Kurvenzug stehen.

von Johannes S. (vamogu05)


Angehängte Dateien:

Lesenswert?

Wulf D. schrieb:
> Wenn du sicher gehen willst, dass dein Design im nächsten Layout ohne
> die 10pF Testkrücke sicher funktioniert, würde ich die optimierte
> R/W-Logik mal ausprobieren. Auch wenn du noch keine AS- oder AC-Chips
> hast. Ein NAND sollte doch in jeder Logiksammlung vorhanden sein :-)

Anbei zwei neue Oszillogramme nach dem Umbau wie von Wulf beschrieben.
Gelb ist wieder WE, blau ist A1 (ohne C). Zwei verschiedene Ansichten.
Ich denke, dass das LS-Gatter zu langsam ist.
Mit 16MHz läuft die Platine nun nicht mehr, mit 1MHz höre ich noch den 
Einschaltton.

von Harald K. (kirnbichler)


Lesenswert?

Rick schrieb:
> (warum eigentlich jpg? -> Siehe Bildformate)

"Bildformate" gehört zu einem der Themenkreise, die die wenigsten Nutzer 
dieses Forums verstehen.
Das ist höhere Mathematik, ein Buch mit sieben Siegeln, Dantes Kreise 
der Hölle oder der Versuch, bei einem Bürgeramt in Berlin einen Termin 
zu bekommen.

von Joachim B. (jar)


Lesenswert?

Johannes S. schrieb:
> Anbei zwei neue Oszillogramme nach dem Umbau wie von Wulf beschrieben

verdammt noch mal, warum schiebst du die Nulllinien nicht aufeinander, 
dann siehst du wo die Pegel landen und ob einer zu früh oder zu spät im 
gewünschten Bereich ist der Datenblatt high und low Pegel Grenzen.

Oszilloskop nutzt wenig wer nicht mit umgehen kann.

: Bearbeitet durch User
von (prx) A. K. (prx)


Lesenswert?

Der Versuch, mit diesem Scope Timings von 5-10ns sauber dargestellt zu 
bekommen, tendiert in Richtung Kaffeesatzlesen, wenn dann noch die 
Bilder nahelegen, dass nicht die maximal mögliche Samplerate am Werk 
ist, sondern nur ein Bruchteil davon.

Beim ollen 1 MHz 6502 und zeitgenössischen Speichern und Logikbausteinen 
ging es in jeder Hinsicht gemächlicher zu. Beim viel schnelleren WDC und 
Cache-RAMs sowie später 74AC kommt man an Grenzen.

: Bearbeitet durch User
von (prx) A. K. (prx)


Lesenswert?

Johannes S. schrieb:
> Anbei zwei neue Oszillogramme

Bissel was zum Scope: Wenn du einen langen Zeitraum sampelst und dort 
extrem reinzoomst, dann ist das wie bei einer Digicam, bei der du so 
weit reinzoomst, bis nur noch Pixelmatsch zu sehen ist.

Diese Bilder zeigen oben am Rand, dass es sich um einen winzigen 
Ausschnitt aus einer langen Aufzeichnung handelt. Die gezeigten 
Datenpunkte scheinen im Abstand der 200ns des Bildrasters zu liegen. 
Dass das kein Spitzenscope ist, ist klar. Aber das geht auch mit diesem 
Gerät sehr viel besser.

Das Datasheet vom Scope sagt 1 GS/s, also vmtl 2ns Sampleraster bei 2 
Kanälen. Die 50 MHz Bandbreite werden das zwar deutlich flachbügeln, 
aber das ist dann immer noch weit aussagekräftiger, als diese völlig 
nutzlosen Bilder. Erst dann lassen sich Zeitabstände im hier relevanten 
Bereich überhaupt erahnen.

: Bearbeitet durch User
von Wastl (hartundweichware)


Lesenswert?

(prx) A. K. schrieb:
> Aber das geht auch mit diesem Gerät sehr viel besser.

Ja, aber:
Die Kunst wird wohl sein auf das richtige Ereignis zu triggern.

von Wulf D. (holler)


Lesenswert?

Ja, auf den WE_A1_N0.PNG sieht man nicht viel, das Scope scheint nur mit 
50MHz / Kanal abzutasten. Die Flanke erstreckt sich über 200ns, das wird 
real so nicht sein.

Aber wir haben hier schon höher aufgelöste Screenshots gesehen, 
prinzipiell kann das Scope mehr. Also Scope mal so einsetzen wie A.K. 
vorschlägt.

Stimme zu, dass die LS-Gatter zu langsam sind. Da hat eines auch nicht 
weniger Delay als zwei F-Gatter.


Rick schrieb:
> Wulf D. schrieb:
>> Warum fallende Flanke? Die Setup - Zeiten sind doch alle tief im grünen
>> Bereich.
> Ich erwarte, das die Adressen vor der fallenden /WE-Flanke stabil
> anliegen. Das sah mir bei  "CE_A0_tst.jpg" (warum eigentlich jpg? ->
> Siehe Bildformate) nicht so aus. Ja, dort ist es CE, aber die Flanken
> sind mir zu nah beieinander.

Die Adress-Setup-Time t-AS ist laut Datenblatt 0ns. Die t-AW (Address 
Valid to End of Write) ist 50ns und wird locker eingehalten.

Gruß Wulf

von (prx) A. K. (prx)


Lesenswert?

Wastl schrieb:
> Die Kunst wird wohl sein auf das richtige Ereignis zu triggern.

Eigentlich nicht. Wenn du eine Zeitdifferenz zwischen A0 und WE sehen 
willst, dann triggerst du auf WE und kriegst mal die eine und mal die 
andere Flanke von A0 mit rein, und auch mal keine. Da kann man dann 
hinsichtlich Zeitauflösung in die Vollen gehen, das sollte ziemlich gut 
wiederholbar sein.

Perfekt wird es, wenn man viele solche Zyklen überlagert, und dabei ein 
hübsches Eye Diagram rauskommt. Das ist nämlich für genau so eine 
Analyse da. Mein 20 Jahre altes Rigol kann das jedenfalls.
https://resources.altium.com/de/p/what-eye-diagram

: Bearbeitet durch User
von Johannes S. (vamogu05)


Angehängte Dateien:

Lesenswert?

Joachim B. schrieb:
> verdammt noch mal, warum schiebst du die Nulllinien nicht aufeinander,
> dann siehst du wo die Pegel landen und ob einer zu früh oder zu spät im
> gewünschten Bereich ist der Datenblatt high und low Pegel Grenzen.

Ok, mache ich ab nun. Nur mit der Ruhe, das kann man auch ganz sachlich 
mitteilen!

> Oszilloskop nutzt wenig wer nicht mit umgehen kann.

Ja, das hast Du ganz richtig erkannt. Ich habe das Oszilloskop noch 
nicht so oft benutzt und daher sehr wenig Erfahrung damit. Aber ich bin 
für jede Hilfe dankbar.

(prx) A. K. schrieb:
> Bissel was zum Scope: Wenn du einen langen Zeitraum sampelst und dort
> extrem reinzoomst, dann ist das wie bei einer Digicam, bei der du so
> weit reinzoomst, bis nur noch Pixelmatsch zu sehen ist.

Ja, danke für die Erklärung. War heute vormittags in Zeitnot. Wollte 
noch schnell Bilder reinstellen. Habe ich darauf gar nicht geachtet.

> Diese Bilder zeigen oben am Rand, dass es sich um einen winzigen
> Ausschnitt aus einer langen Aufzeichnung handelt. Die gezeigten
> Datenpunkte scheinen im Abstand der 200ns des Bildrasters zu liegen.
> Dass das kein Spitzenscope ist, ist klar. Aber das geht auch mit diesem
> Gerät sehr viel besser.

Sieh' dir mal die neuen Bilder an. Ich denke, die müssten jetzt besser 
aufgelöst sein.

> Das Datasheet vom Scope sagt 1 GS/s, also vmtl 2ns Sampleraster bei 2
> Kanälen. Die 50 MHz Bandbreite werden das zwar deutlich flachbügeln,
> aber das ist dann immer noch weit aussagekräftiger, als diese völlig
> nutzlosen Bilder. Erst dann lassen sich Zeitabstände im hier relevanten
> Bereich überhaupt erahnen.
Ja, Danke.

Wulf D. schrieb:
> Aber wir haben hier schon höher aufgelöste Screenshots gesehen,
> prinzipiell kann das Scope mehr. Also Scope mal so einsetzen wie A.K.
> vorschlägt.

Hi Wulf,

sind die neuen Bilder jetzt besser? Ich denke schon.

(prx) A. K. schrieb:
> Perfekt wird es, wenn man viele solche Zyklen überlagert, und dabei ein
> hübsches Eye Diagram rauskommt. Das ist nämlich für genau so eine
> Analyse da. Mein 20 Jahre altes Rigol kann das jedenfalls.
> https://resources.altium.com/de/p/what-eye-diagram

Ob das mein Rigol kann werde ich heute noch nachlesen. Wie bereits 
erwähnt, habe ich noch nicht viel damit gemessen, also kaum Erfahrung 
damit.

von H. H. (Gast)


Lesenswert?

Johannes S. schrieb:
> Sieh' dir mal die neuen Bilder an. Ich denke, die müssten jetzt besser
> aufgelöst sein.

Nein.

von Wulf D. (holler)


Lesenswert?

Das WE_A1_N2 ist klar besser aufgelöst, da glaube ich die 1Gs 
Abtastrate.

 Ich denke du solltest vor allem den Tastkopf vom blauen Kanal mal 
abgleichen: meist gibt es am Oszi einen Rechteckgenerator wo man den 
Tastkopf mit beiden Kontakten anschließt. Mit einem kleinen 
Schraubendreher auf saubere Flanken abgleichen.

Ich denke man kann auch schon so sagen, dass das Timing superkritisch 
ist. Die WE-Flanke sollte stabil ein paar Nanosekunden vor dem 
Adresswechsel kommen. Das ist hier nicht der Fall.

Gruß Wulf

von (prx) A. K. (prx)


Angehängte Dateien:

Lesenswert?

Als Beispiel für eine Scope-Messung in diesem Zeitrahmen ein ~10 MHz 
Takt am Ausgang eines ATtiny45 und hinter einem 74AC00 (invertiert 
dargestellt). Lochrasteraufbau mit suboptimalen Probes. Es ging mir um 
die Zeitauflösung, nicht um Signalqualität und Probes.

Rigol DS1102CD, 100 MHz Bandbreite, 400 MS/s, aber aufgezeichnet im 
Equivalent Time Mode, was die effektive Sample Rate gegenüber den 200 
MS/s pro Kanal wesentlich erhöht. Den hat das Rigol 1052E auch.

Mit einem 50 MHz 1 GS/s Scope werden die Flanken etwas flacher sein, 
aber eine halbwegs brauchbare Messung sollte möglich sein.

: Bearbeitet durch User
von Volker B. (Firma: L-E-A) (vobs)


Lesenswert?

Johannes S. schrieb:

> Anbei ein paar Messungen von A0, D0, CE und Phi2 im Vergleich zum
> WE-Signal. Alles mit 1MHz Taktfrequenz.
> Passt das soweit?

Also ich sehe da einen (potentiellen) Buskonflikt beim Schreibzyklus.
Die CPU legt Zieladresse und Datenbyte auf den Bus. Kurze Zeit später 
wird /CS das RAMs aktiv. Dieses wird dann das adressierte Byte auf den 
Datenbus legen, denn sein /OE ist ja dauerhaft aktiv. Mit der steigenden 
Flanke von Phi2 wird dann /WR des RAMs aktiv und dieses schaltet nun auf 
Schreibzugriff um und liest das Datenbyte vom Bus.

Das funktioniert bei Deinem Oszillogramm wunderbar, denn das zu 
schreibende Bit D0 ist identisch mit dem, das bereits im RAM steht. Ist 
das nicht der Fall, arbeiten die Datenbustreiber von RAM und CPU 
gegeneinander. Also ich würde solche ungesunden Zustände vermeiden, auch 
wenn sie nur kurze Zeit auftreten...

Grüßle,
Volker

von (prx) A. K. (prx)


Lesenswert?

Volker B. schrieb:
> Also ich sehe da einen (potentiellen) Buskonflikt beim Schreibzyklus.

Wurde längst besprochen.

von Johannes S. (vamogu05)


Lesenswert?

Wulf D. schrieb:
> Ich denke du solltest vor allem den Tastkopf vom blauen Kanal mal
> abgleichen: meist gibt es am Oszi einen Rechteckgenerator wo man den
> Tastkopf mit beiden Kontakten anschließt. Mit einem kleinen
> Schraubendreher auf saubere Flanken abgleichen.

schönen Abend Wulf,

ich habe den Abgleich kontrolliert, war in Ordnung.

> Ich denke man kann auch schon so sagen, dass das Timing superkritisch
> ist. Die WE-Flanke sollte stabil ein paar Nanosekunden vor dem
> Adresswechsel kommen. Das ist hier nicht der Fall.

Das sollte aber dann, wenn ich OE nicht mehr direkt an GND lege, behoben 
sein.
Werde das dann so lösen wie w.o. beschrieben.

(prx) A. K. schrieb:
> Rigol DS1102CD, 100 MHz Bandbreite, 400 MS/s, aber aufgezeichnet im
> Equivalent Time Mode, was die effektive Sample Rate gegenüber den 200
> MS/s pro Kanal wesentlich erhöht. Den hat das Rigol 1052E auch.

Danke für den Hinweis, werde ich mal nachlesen und ausprobieren.

von (prx) A. K. (prx)


Lesenswert?

Johannes S. schrieb:
> Danke für den Hinweis, werde ich mal nachlesen und ausprobieren.

Aber kontrolliere bei Realtime (non-EQT) Messungen, mit welcher 
Sample-Rate du bei der Messung arbeitest. Wird ja irgendwo angezeigt. Du 
bist da viel besser ausgestattet als ich, kommst auch ohne EQT über die 
Runden.

: Bearbeitet durch User
von HaraldS K. (kuske)


Lesenswert?

Moment,
1 MHz <=> 1000 ns Taktzyklus (high und low)
2 Mhz <=> 500 ns
4 Mhz <=> 250 ns
8 MHz <=> 125 ns
16 MHz <=> 62 ns
Wenn das RAM eine Zugriffszeit von 100 ns oder auch 45 ns hat, dann 
reichen 31 ns nicht aus um es zu lesen. Oder?

von Harald K. (kirnbichler)


Lesenswert?

Harald K. schrieb:
> Wenn das RAM eine Zugriffszeit von 100 ns oder auch 45 ns hat, dann
> reichen 31 ns nicht aus um es zu lesen. Oder?

Richtig, zumal weniger als ein kompletter Taktzyklus zur Verfügung 
steht, wie schon vor zig Beiträgen in diesem Thread mit Verweisen auf 
Datenblättern und Timingdiagrammen erwähnt wurde.

Nur: So ein RAM hält sich gemeinerweise nicht an die spezifizierte 
Zugriffszeit, sondern ist i.d.R. schneller. Nur halt nicht garantiert 
über die im Datenblatt beschriebenen Umgebungsbedingungen (Temperatur, 
Stabilität der Versorgungsspannung, Sauberkeit der Signalpegel etc. 
pp.).

Nur deswegen funktioniert diese Overcklocking-Kiste hier überhaupt 
irgendwie. Sauberes, stabiles und zuverlässiges Schaltungsdesign nutzt 
kein Overclocking, sondern hält sich an das, was im Datenblatt steht. 
Dann braucht es auch keine kleinen Kondensatoren an irgendwelchen 
Adressleitungen ...

von Johannes S. (vamogu05)


Lesenswert?

Harald K. schrieb:
> Nur deswegen funktioniert diese Overcklocking-Kiste hier überhaupt
> irgendwie. Sauberes, stabiles und zuverlässiges Schaltungsdesign nutzt
> kein Overclocking, sondern hält sich an das, was im Datenblatt steht.
> Dann braucht es auch keine kleinen Kondensatoren an irgendwelchen
> Adressleitungen ...

Diese Platinen (mit den Kondensatoren an A1/A2) laufen mittlerweile auch 
mit 20MHz einwandfrei! Also dürfte 16MHz keineswegs overclocked sein. 
Ja, sicher, knapp ist es schon aber das RAM hat wahrscheinlich eine 
deutlich geringere Zugriffszeit als die angegebenen 55ns.
Zwischenzeitlich habe ich das Design etwas geändert. Fehler der ersten 
Version behoben (offene Eingänge), dickere Signalleitungen geroutet. 
Diese Platine funktioniert sofort ohne irgendwelche nachträglichen 
Kondensatoren an den Adressleitungen. Ich vermute, dass bei Verwendung 
eines schnelleren RAMs auch noch 24MHz möglich sind. Werde ich noch 
ausprobieren.

von Thomas W. (dbstw)


Lesenswert?

Johannes S. schrieb:

> Diese Platinen (mit den Kondensatoren an A1/A2) laufen mittlerweile auch
> mit 20MHz einwandfrei! Also dürfte 16MHz keineswegs overclocked sein.

Das ist ja gut, zumindest eine Loesung. Hattest Du noch den Schaltplan 
ueberarbeitet (ausser die Phi2 - R/W - Schaltung)?

Hast Du noch Lust, Dein Ergebnis hier zu zeigen (Layout, Photos)?

> Ja, sicher, knapp ist es schon aber das RAM hat wahrscheinlich eine
> deutlich geringere Zugriffszeit als die angegebenen 55ns.

Die 55ns sind halt im gesamten Temperatur-, Spannung- und was auch immer 
gewaehrleistet. Overclocking kann klappen, oder auch nicht.

> Zwischenzeitlich habe ich das Design etwas geändert. Fehler der ersten
> Version behoben (offene Eingänge), dickere Signalleitungen geroutet.

Offensichtlich war Dein Design sehr sehr knapp. Haette nicht gedacht.

Nun ja: Man lernt jeden Tag was neues.

Gruesse

Th.

von Thomas W. (dbstw)


Lesenswert?

Johannes S. schrieb:
> Ich vermute, dass bei Verwendung
> eines schnelleren RAMs auch noch 24MHz möglich sind. Werde ich noch
> ausprobieren.

Der bessere Weg waere den Algorithmus von Sargon zu verbessern. Kleiner 
Scherz. Fuer die Zeit (ca. 1980) war Sargon schon sehr gut.

Gruesse

Th.

von Wastl (hartundweichware)


Lesenswert?

Johannes S. schrieb:
> Ich vermute, dass bei Verwendung
> eines schnelleren RAMs auch noch 24MHz möglich sind. Werde ich noch
> ausprobieren.

1 MHz ---> 16 MHz ---> Geschwindigkeitsfaktor 16
16 MHz ---> 24 MHz ---> Geschwindigkeitsfaktor 1.5

von Klaus S. (kseege)


Lesenswert?

In allen Datenblättern von Eproms, die ich in meinem Leben vebaut habe, 
war tce größer als toe, weswegen auch in den Datenblättern immer erst 
/CE aktiv wird und dann /OE. Gibt es irgendeinen vernünftig 
nachvollziehbaren Grund, warum hier die Reihenfolge umgedreht wird? Ein 
EPROM ständig mit /CS=0 zu betreiben und /OE zu schalten funktioniert 
ebenfalls (btdt) und ist schneller. Das Umverdrahten der beiden Signale 
ist ein 10-Minuten-Test.

Just my 2 cents

von Johannes S. (vamogu05)


Angehängte Dateien:

Lesenswert?

Thomas W. schrieb:
> Das ist ja gut, zumindest eine Loesung. Hattest Du noch den Schaltplan
> ueberarbeitet (ausser die Phi2 - R/W - Schaltung)?

Hallo Thomas,

die R/W Schaltung ist die gleiche wie ursprünglich. Erst in Version 3 
habe ich das anders gemacht. Da ist dann OE nicht mehr direkt mit Gnd 
verbunden, sondern wird über Phi2 und CPU_RW gebildet.

> Hast Du noch Lust, Dein Ergebnis hier zu zeigen (Layout, Photos)?

Anbei die Bilder des neuen Layouts. Ist sicher nicht optimal geroutet, 
funktioniert aber tadellos.

> Overclocking kann klappen, oder auch nicht.

Wie bereits erwähnt, halte ich 16MHz für geringes Overclocking bei 
dieser CPU. Im Datenblatt der CPU ist keine maximale Frequenz angegeben. 
Vielleicht habe ich das auch nur überlesen.

> Offensichtlich war Dein Design sehr sehr knapp. Haette nicht gedacht.
Naja, die Zugriffszeit des SRAM ist halt relativ lange. Bin gespannt wie 
es mit den schnelleren Speichern aussieht. Vermute, dass dann sogar 
24MHz noch funktionieren könnten. Mal sehen.

> Nun ja: Man lernt jeden Tag was neues.
Ja, um das geht es mir auch dabei. Habe hier viele gute Tipps bekommen. 
Danke an Alle die geholfen haben.

> Der bessere Weg waere den Algorithmus von Sargon zu verbessern. Kleiner
> Scherz. Fuer die Zeit (ca. 1980) war Sargon schon sehr gut.

Ja, um das geht es letztendlich. Das Programm insgesamt etwas zu 
verbessern. In diesem Fall mit einem größeren Eröffnungsbuch und tiefere 
Zugsuche.

Klaus S. schrieb:
> Gibt es irgendeinen vernünftig
> nachvollziehbaren Grund, warum hier die Reihenfolge umgedreht wird?

Ich habe das von einer bestehenden Platine so abgeschaut, weil ich diese 
nachbauen mochte. Diese Platine funktioniert einwandfrei, nutzt aber den 
ROM-Bereich von $2000 - $3FFF nicht. Den brauchte ich aber um ein großes 
Eröffnungsbuch ins Rom zu bringen.

Klaus S. schrieb:
> Ein
> EPROM ständig mit /CS=0 zu betreiben und /OE zu schalten funktioniert
> ebenfalls (btdt) und ist schneller. Das Umverdrahten der beiden Signale
> ist ein 10-Minuten-Test.

Diese Möglichkeit hatte ich nie in Betracht gezogen. Aber ja, könnte 
klappen. Leider ist der Umbau nicht so ohne weiteres möglich. Da OE fix 
mit der GND-Plane verbunden ist. Da müsste ich ringförmig das Cu 
wegbekommen. Ist mir zu aufwendig. Trotzdem Danke für den Tipp.

von Wastl (hartundweichware)


Lesenswert?

Johannes S. schrieb:
> Da müsste ich ringförmig das Cu
> wegbekommen. Ist mir zu aufwendig.

Potentielle Macken entdecken und ggf. ausmerzen zu aufwendig?

Wenn man IC Sockel hat kann man einen einzelnen Pin eines ICs
herausbiegen und aus dem Sockel hängen lassen .....

von Wulf D. (holler)


Lesenswert?

Harald K. schrieb:
> Harald K. schrieb:
>> Wenn das RAM eine Zugriffszeit von 100 ns oder auch 45 ns hat, dann
>> reichen 31 ns nicht aus um es zu lesen. Oder?

Wie kommst du denn auf 31ns? Einfach die 1/Taktfrequenz /2?
Nein, so einfach ist das nicht, ein Blick ins Datenblatt hilft.
Gruß Wulf

von Johannes S. (vamogu05)


Lesenswert?

Wastl schrieb:
> Potentielle Macken entdecken und ggf. ausmerzen zu aufwendig?

Nein, nicht unbedingt. Ich kann nur nicht jedem Tipp sofort folgen. Ich 
muss das systematisch angehen. Ich warte jetzt auf die Platinen bei 
denen OE aus Phi2 und CPU_RW gewonnen wird. CE nach wie vor aus den 
Adressen. So wird das angeblich professionell gemacht. Ich denke, dass 
ich dann eine optimale Schaltung habe.
Den umgekehrten Weg, CE an Gnd und OE aus den Adressen, sah ich noch 
nirgends im Internet. Sollte aber auch funktionieren. Werde ich 
demnächst doch mal testen.

von Klaus F. (klaus27f)


Lesenswert?

Johannes S. schrieb:
> CE an Gnd und OE aus den Adressen

Du redest hier wohl vom Eprom?
Denn am Ram müsstest du ja dann /WR mit der Ramadresse verwursten.
Das ist alles Quark, denn du weisst ja gar nicht genau ob dein A1 A2 
Effekt vom Eprom oder Ram kommt, bei Ram von lesen oder schreiben oder 
beides.
Und aufgrund der Übertaktung ausserhalb Spec. wahrscheinlich auch 
abhängig von zufälligen "schneller als Spec." der konktet eingebauten 
Bauteile, bei deiner zufälligen Zimmertemperatur.
Freu dich einfach wenn eine bestimmte Platine mit dem Takt xx MHz läuft 
und gut.
Demnächst kannst du die neue Variante mit verbesserter Schaltung testen, 
die -vielleich- noch höher taktbar ist.
Aber das wird so immer für jede Platine und jede Bauteilcharge was 
grenzwertiges und zufälliges bleiben, wenn man eben ausserhalb der Spec. 
übertakten möchte.
Eine "Serienproduktion" mit 2 Wochen später nachbestellten Bauteilen ist 
damit kaum möglich. Aber das dürfte auch weniger dein Ziel sein.

von Johannes S. (vamogu05)


Lesenswert?

Klaus F. schrieb:
> Du redest hier wohl vom Eprom?
> Denn am Ram müsstest du ja dann /WR mit der Ramadresse verwursten.

Nein, ich rede sowohl vom EPROM als auch vom RAM.
WR bliebe unangetastet. Wie soll ich denn WR mit der Ramadresse 
"verwursten"?

> Freu dich einfach wenn eine bestimmte Platine mit dem Takt xx MHz läuft
> und gut.
Genau so sehe ich das auch.

Klaus F. schrieb:
> Aber das wird so immer für jede Platine und jede Bauteilcharge was
> grenzwertiges und zufälliges bleiben, wenn man eben ausserhalb der Spec.
> übertakten möchte.

Wo bin ich außerhalb der Specification? Gut das RAM könnte etwas 
schneller sein. Da habe ich einen Typ mit 15ns geplant. Die F Max für 
den W65C02S wird im Datenblatt auf S24 mit 19MHz bei 4,2V angegeben. 
Interpretiere ich das Bild falsch? Siehe 
https://www.westerndesigncenter.com/wdc/documentation/w65c02s.pdf

Ich glaube nicht, dass ich irgendwo außerhalb der Spezifikation liege. 
Lasse mich aber gerne eines Besseren belehren. Ich möchte gerne wissen 
wie man so ein System aufbauen muss, dass es innerhalb der Spezifikation 
betrieben werden kann. Welche Komponenten muss man da verwenden?

: Bearbeitet durch User
von Harald K. (kirnbichler)


Lesenswert?

Wulf D. schrieb:
> Wie kommst du denn auf 31ns? Einfach die 1/Taktfrequenz /2?
> Nein, so einfach ist das nicht, ein Blick ins Datenblatt hilft.

Den habe ich viel weiter oben schon geworfen:

Beitrag "Re: 6502 System funktioniert nicht richtig"

von Klaus F. (klaus27f)


Lesenswert?

Johannes S. schrieb:
> Klaus F. schrieb:
>> Du redest hier wohl vom Eprom?
>> Denn am Ram müsstest du ja dann /WR mit der Ramadresse verwursten.
>
> Nein, ich rede sowohl vom EPROM als auch vom RAM.
> WR bliebe unangetastet. Wie soll ich denn WR mit der Ramadresse
> "verwursten"?


Naja, wenn du an der "alten" Platine beim RAM auch /CE dauhaft low setzt 
(Gnd) und nur dessen /OE steuerst:
Dann wird jedes /WR einer beliebigen Adresse ins Ram gescchrieben.
Z.B. auch /WR auf die I-O Chipadressen (des 65C22) ... mit dem 
jeweiligen adressspezifischem Offset.


Beim Eprom ist das egal, weil sich Eprom so nicht beschreibt.

Bisserl mehr Datenblätter lesen und verstehen lernen!

Freundliche Grüße
   Klaus

von Thomas W. (dbstw)


Lesenswert?

Johannes S. schrieb:

> Klaus F. schrieb:
>> Aber das wird so immer für jede Platine und jede Bauteilcharge was
>> grenzwertiges und zufälliges bleiben, wenn man eben ausserhalb der Spec.
>> übertakten möchte.
>
> Wo bin ich außerhalb der Specification? Gut das RAM mönnte etwas
> schneller sein. Da habe ich einen Typ mit 15ns geplant. Die F Max für
> den W65C02S wird im Datenblatt auf S24 mit 19MHz bei 4,2V angegeben.
> Interpretiere ich das Bild falsch? Siehe
> https://www.westerndesigncenter.com/wdc/documentation/w65c02s.pdf

Du hast ein bisschen Recht: WDC gibt keine absolute Grenzfrequenz (oder 
Betriebsfrequenz) an, aber auf p.25, Fig. 6-3 sind die Zeit-Parameter 
bei 5.0V und 14MHz angegeben. Dementsprechend bestimmen sich die Zeiten.

Spannend fand ich den Inset bei p.25, Fig 6-2 dass wohl WDC die maximale 
Frequenz bei 85°C bestimmt. Das ist schon ganz schoen warm fuer 
Halbleiter.

Und eine Sache muss man sehen (bei den Grafiken 6-1 und 6-2): "Typical 
0.6u processed device" heisst "Our best device". Ist ja nicht 
gewaehrleistet.

Aber Du willst je keine Massenfertigung erstellen.

Unabhaengig von dem aktuellen Geraet: Man sollte mal ein wenig in Demut 
schweigen wg. der Leistung von Dan and Kathleen Spracklen: Mit einem 
8-Bit-Rechner mit einer Z80, der Verkaufsweg in 1978 war Verkauf der 
Assembler-Sourcen zum Selber-Eintippen, keine richtigen 
Entwicklungswerkzeuge.

Es ist eine unglaubliche Leistung gewesen, und die Spielstaerke war wohl 
nicht schlecht (wir reden von 80'er, Disco, Saturday Night Fever, Star 
Wars).

Dieses Interview kennst Du sicherlich:
http://archive.computerhistory.org/projects/chess/related_materials/oral-history/spacklen.oral_history.2005.102630821/spracklen.oral_history_transcript.2005.102630821.pdf

Und auch diesen Artikel kennst Du sicher:
https://archive.org/details/byte-magazine-1978-10/page/n87/mode/2up?view=theater

Und wenn wir jetzt schon in die 80er gehen: Ich werde jetzt einen Film 
(Einweg-Sensor mit chemischer Auslesung) in meine Kamera (Canon AE-1) 
packen.

von Johannes S. (vamogu05)


Lesenswert?

Klaus F. schrieb:
> Naja, wenn du an der "alten" Platine beim RAM auch /CE dauhaft low setzt
> (Gnd) und nur dessen /OE steuerst:
> Dann wird jedes /WR einer beliebigen Adresse ins Ram gescchrieben.
> Z.B. auch /WR auf die I-O Chipadressen (des 65C22) ... mit dem
> jeweiligen adressspezifischem Offset.

Hallo Klaus,

ja, jetzt verstehe ich dich. Du hast vollkommen Recht. Deshalb wird 
diese Methode, CE dauerhaft auf Low zu legen und OE aus den Adressen zu 
gewinnen auch nicht funktionieren. Darum wird das auch nirgends so 
gemacht. Beim Schreiben ist es nämlich egal welchen Zustand OE gerade 
besitzt. Es wird immer ins RAM geschrieben werden!
Es hilft auch nichts das RW-Signal irgendwie mit der RAM-Adresse zu 
"verwursten". Das RW-Signal ist von der Adresse unabhängig.
Man muss einfach die Steuereingänge der Speicher so verwenden, für das 
sie vorgesehen sind. CE eben für die Auswahl, und OE zur Datenfreigabe 
des Bausteins.

von Wulf D. (holler)


Lesenswert?

Harald K. schrieb:
> Wulf D. schrieb:
>> Wie kommst du denn auf 31ns? Einfach die 1/Taktfrequenz /2?
>> Nein, so einfach ist das nicht, ein Blick ins Datenblatt hilft.
>
> Den habe ich viel weiter oben schon geworfen:
>
> Beitrag "Re: 6502 System funktioniert nicht richtig"

Ok, das ist ein Screenshot vom alten Original, nicht der neue CMOS Chip. 
Egal: der W65C02S gibt jeder Peripherie tPWH + tPWL - tADS Zeit. Im 
Datenblatt bei 14 MHz abgelesen sind das 35ns + 35ns - 30ns = 40ns.

Bei höherem Takt entsprechend weniger. Die VIA wird vom gleichen Takt 
gespeist. Beim RAM will Johannes auf 15ns Typen gehen. Wusste gar nicht, 
dass es so schnelle mittlerweile gibt. Das sollte funktionieren.

Von Winbond habe ich auf Anhieb 45ns schnelle 27C512 gesehen. Das wird 
nicht reichen. Für höhere Frequenzen schon gar nicht, dann müsste man 
über den RDY-Eingang Waitstates einsteuern.

Ein ausführlicher Artikel zu dem Thema:
https://hackaday.io/project/174128-db6502/log/187116-wait-states-explained-14mhz-part-ii

Gruß Wulf

von Harald K. (kirnbichler)


Lesenswert?

Wulf D. schrieb:
> Im Datenblatt bei 14 MHz abgelesen sind das 35ns + 35ns - 30ns = 40ns.

Der Threadstarter möchte den Kram mit 24 MHz betreiben.

Wulf D. schrieb:
> Beim RAM will Johannes auf 15ns Typen gehen. Wusste gar nicht,
> dass es so schnelle mittlerweile gibt.

Die gibts schon seit Jahrzehnten, so etwas war bereits in den 90ern als 
Cache-SRAM auf manchen PC-Motherboards zu finden. Verbraucht halt 
ziemlich viel Strom.

von Wulf D. (holler)


Lesenswert?

24MHz ergibt eine Zugriffszeit von 23ns. Mit sehr schneller CS-Logik 
(AS) könnten 20ns schnelle Bausteine genügen. Habe noch nie so schnelle 
EPROMS gesehen.

Ich würde im Layout eine Waitstate-Logik an RDY vorsehen, ggf. mit 
Jumper, falls man die doch nicht haben will.

Ist im oben verlinkten Artikel wirklich gut und Schritt für Schritt 
erklärt, wie man so etwas in ein 6502 System einbaut.
Gruß Wulf

von HaraldS K. (kuske)


Lesenswert?

Das sollte auch nur eine grobe Schätzung sein. Sollte aber klar sein was 
gemeint ist.

von Johannes S. (vamogu05)


Lesenswert?

Wulf D. schrieb:
> 24MHz ergibt eine Zugriffszeit von 23ns. Mit sehr schneller
> CS-Logik
> (AS) könnten 20ns schnelle Bausteine genügen. Habe noch nie so schnelle
> EPROMS gesehen.
>
> Ich würde im Layout eine Waitstate-Logik an RDY vorsehen, ggf. mit
> Jumper, falls man die doch nicht haben will.
>
> Ist im oben verlinkten Artikel wirklich gut und Schritt für Schritt
> erklärt, wie man so etwas in ein 6502 System einbaut.
> Gruß Wulf

Hallo Wulf,

Danke für Deine kompetente Einschätzung. Unbedingt 24 MHz müssen es 
nicht sein. Ich habe hier eine Platine die mit 24 MHz läuft. Verbaut 
sind auf dieser ein 45ns EPROM und ein MT5C6408-15 SRAM. Die 
Adressdecoder sind ein 74F32 und ein 74F04. Gleicher Aufbau, wie mein 
Nachbau. Also OE direkt an GND. Das EPROM ist vermutlich schneller als 
45ns, sonst würde das nicht stabil laufen. Von dieser Platine wurde eine 
Kleinserie (<10 Stück) vor Jahren produziert. Die Besitzer der 
Schachcomputer, in denen diese Platine läuft kenne ich zum Großteil. Ich 
habe noch nichts negatives über deren Geräten gehört. Habe selber einen 
der stabil läuft.

Hast Du eine Idee welchen Festwertspeicher man sonst noch nehmen könnte 
der schneller ist als 45ns?
Gibt es Geräte mit denen man die Zugriffszeit von Speichern testen kann 
(für den Privatgebrauch erschwinglich)? mit meinem 50MHz Oszi werde ich 
da nicht glücklich werden.
Die Idee mit den Waitstates gefällt mir auch. Den Artikel habe ich mir 
abgespeichert. Allerdings würde die Performance darunter etwas leiden. 
Da kann man gleich bei geringerem Takt bleiben. Oder sehe ich das 
falsch?

von Carsten W. (eagle38106)


Lesenswert?

Nimm doch ein RAM, das Du im Adressraum parallel zum EPROM legst. Du 
fährst dann das Board mit 12MHz hoch und kopierst alles ins RAM. Dann 
schaltest Du vom EPROM aufs RAM um und auf 24 MHz. Kannst Du dann gleich 
auch für die SW-Entwicklung nehmen. Also gleich ein 64k RAM, das nur an 
den gewollten Stellen in den Adressraum eingeblendet wird.

: Bearbeitet durch User
von Johannes S. (vamogu05)


Lesenswert?

Carsten W. schrieb:
> Nimm doch ein RAM, das Du im Adressraum parallel zum EPROM legst. Du
> fährst dann das Board mit 12MHz hoch und kopierst alles ins RAM. Dann
> schaltest Du vom EPROM aufs RAM um und auf 24 MHz. Kannst Du dann gleich
> auch für die SW-Entwicklung nehmen. Also gleich ein 64k RAM, das nur an
> den gewollten Stellen in den Adressraum eingeblendet wird.

Prinzipiell keine schlechte Idee. Allerdings doch ein deutlicher 
Mehraufwand. Werde ich mir noch überlegen.
Danke für den Tipp.

von Wulf D. (holler)


Lesenswert?

Willst du die Performance ausreizen, bleibt wirklich nur die Idee mit 
dem RAM. Waitstates kosten Geschwindigkeit, auch wenn du die „nur“ bei 
EPROM Zugriffen einfügen musst.
Du könntest auch das bestehende RAM einfach vergrößern, so dass du 
keinen weiteren CHIP benötigst. Wird aber so oder so eine SW-Erweiterung 
bedeuten. Du brauchst wahrscheinlich auch eine Art 
Speicherbank-Umschaltung, zwei 64kByte-Chips passen beim Kopieren 
vermutlich nicht in den Adressraum.

Wie auch immer, mit dem 45ns-EPROM sind ohne Waitstates für den Betrieb 
innerhalb der Spezifikation nur 12MHz drin. Bei 24MHz ist das EPROM um 
den Faktor 2 überfahren, da wundert es mich schon sehr, dass das System 
noch läuft.

Gruß Wulf

von Thomas W. (dbstw)


Lesenswert?

Johannes S. schrieb:

> Die Idee mit den Waitstates gefällt mir auch. Den Artikel habe ich mir
> abgespeichert. Allerdings würde die Performance darunter etwas leiden.
> Da kann man gleich bei geringerem Takt bleiben. Oder sehe ich das
> falsch?

Im Endeffekt: Ja. Die 65C02 (und der WDC) ist komplett statisch, und mit 
dem RDY-Eingang kannst Du die CPU praktisch anhalten (die wilde Fahrt 
geht dann mit der naechsten Phi2-Flanke weiter).

D.h. die CPU hat (z.b.) einen Basistakt von 14MHz, beim Zugriff auf das 
EPROM dann aber nur 7MHz (die Speicherzugriffe ins RAM waeren weiterhin 
mit 14MHz).  Der Effekt ist dann natuerlich sehr abhaengig von Deinem 
Code: Laeuft das Programm im EPROM (wegen der Wait-States) hast Du 
natuerlich nur den halben Takt, kannst Du das Programm in das RAM 
kopieren (der Vorschlag von Carsten) und im RAM ausfuehren, dann 
haettest Du volle Geschwingkeit.

Ist schon ein groesserer Umbau der Schaltung.

Wie lange dauert denn ein Spielzug? Ich erinnere mich noch an meinem 
Sargon, der (bei einem TRS-80 mit 1.7MHz Z80) schon mal 10 Minuten 
"denken" musste (bei entsprechende Spielstaerke).

Eine weitere Sache: Du hast Dich auf das Memory-System konzentriert. Am 
Bus haengt auch die 65C22 mit dran, und der Timer/IO laeuft mit Phi2. 
Und der Chip ist lt. WDC mit 14MHz spezifiziert.

von Johannes S. (vamogu05)


Lesenswert?

Wulf D. schrieb:
> Willst du die Performance ausreizen, bleibt wirklich nur die Idee mit
> dem RAM. Waitstates kosten Geschwindigkeit, auch wenn du die „nur“ bei
> EPROM Zugriffen einfügen musst.

Ja, die Idee mit dem Kopieren ins RAM ist gar nicht so schlecht. Ist 
halt wesentlich mehr Aufwand da eine funktionierende Schaltung 
aufzubauen.
Da, das Programm häufiger auf das EPROM zugreift als auf das RAM sind 
Waitstates nicht wirklich performancesteigernd.

Thomas W. schrieb:
> Wie lange dauert denn ein Spielzug? Ich erinnere mich noch an meinem
> Sargon, der (bei einem TRS-80 mit 1.7MHz Z80) schon mal 10 Minuten
> "denken" musste (bei entsprechende Spielstaerke).

Ist abhängig von der eingestellten Spielstufe. Im Turniermodus ca. 3min. 
pro Zug. Aber beim Lösen von Schachproblemen sogar mehrere Stunden.

> Eine weitere Sache: Du hast Dich auf das Memory-System konzentriert. Am
> Bus haengt auch die 65C22 mit dran, und der Timer/IO laeuft mit Phi2.
> Und der Chip ist lt. WDC mit 14MHz spezifiziert.

Ja, ich würde gerne die 65C22 mit 1MHz betreiben, damit keine 
Anpassungen des Original ROMs fällig wären. Da müsste ich dann auf jeden 
Fall mit Waitstates arbeiten.
Die höhere Taktfrequenz der 65C22 benötigt im Programmcode dann schon 
einige Anpassungen (Verzögerungen) beim Umschalten der Ports, bzw. 
Anpassungen der Tonausgabe. Außerdem muss auch die Interruptfrequenz 
geändert werden. Das könnte man sich alles sparen, wenn die VIA 65C22 
mit 1MHz laufen würde.

von Thomas W. (dbstw)


Lesenswert?

Johannes S. schrieb:

>> Eine weitere Sache: Du hast Dich auf das Memory-System konzentriert. Am
>> Bus haengt auch die 65C22 mit dran, und der Timer/IO laeuft mit Phi2.
>> Und der Chip ist lt. WDC mit 14MHz spezifiziert.
>
> Ja, ich würde gerne die 65C22 mit 1MHz betreiben, damit keine
> Anpassungen des Original ROMs fällig wären. Da müsste ich dann auf jeden
> Fall mit Waitstates arbeiten.

Das ist eine Herausforderung: Phi2 macht das Timing fuer den Bustreiber 
und die Timer, d.h. die Timer haben keine unabhaengige Timebase (die 
Timer-Frequenz ist der Bustakt). Und die Phi2-Frequenz wird durch die 
Wait-States nicht veraendert.

> Die höhere Taktfrequenz der 65C22 benötigt im Programmcode dann schon
> einige Anpassungen (Verzögerungen) beim Umschalten der Ports, bzw.
> Anpassungen der Tonausgabe. Außerdem muss auch die Interruptfrequenz
> geändert werden. Das könnte man sich alles sparen, wenn die VIA 65C22
> mit 1MHz laufen würde.

Ich bin so oder so erstaunt, dass es ueberhaupt ohne Anpassungen 
funktioniert, denn ca. 16x Takt ist schon interessant.

von Harald K. (kirnbichler)


Lesenswert?

Johannes S. schrieb:
> Die höhere Taktfrequenz der 65C22 benötigt im Programmcode dann schon
> einige Anpassungen (Verzögerungen) beim Umschalten der Ports, bzw.
> Anpassungen der Tonausgabe.

Du hast doch eine von einem "Elektroniker" angepasste Platine, die 
funktionieren soll. Wie geht das denn, wenn im Programmcode noch "einige 
Anpassungen" erforderlich sein sollen?

von Johannes S. (vamogu05)


Lesenswert?

Thomas W. schrieb:
> Das ist eine Herausforderung: Phi2 macht das Timing fuer den Bustreiber
> und die Timer, d.h. die Timer haben keine unabhaengige Timebase (die
> Timer-Frequenz ist der Bustakt). Und die Phi2-Frequenz wird durch die
> Wait-States nicht veraendert.

Darum hätte ich die VIA 65C22 mit einem durch 16 geteilten Takt 
betrieben. Das war meine ursprüngliche Idee. Da wußte ich von Waitstates 
noch nichts. Habe das dann verworfen, als ich mehr über die 
Kommunikation der CPU mit der VIA herausgefunden habe. Aber jetzt denke 
ich, sollte das doch möglich sein die VIA mit 1 MHz zu betreiben, 
während die CPU mit 16MHz getastet wird. Die VIA muss halt die CPU 
anhalten während Schreib-Lesezugriffen. Das sollte doch machbar sein?

> Ich bin so oder so erstaunt, dass es ueberhaupt ohne Anpassungen
> funktioniert, denn ca. 16x Takt ist schon interessant.
Nein, ohne Anpassungen würde das nicht vernünftig laufen. Die Töne wären 
nur sehr kurze, hohe Piepser. Die Interrupts würden zu oft aufgerufen, 
dadurch würde das Programm seine Bedenkzeit nicht ausreizen und viel zu 
früh den Rechenvorgang abbrechen. Wichtig ist, die selbe IRQ-Frequenz 
wie beim Original einzustellen. Die Töne muss man dann trotzdem noch 
anpassen.

Harald K. schrieb:
> Du hast doch eine von einem "Elektroniker" angepasste Platine, die
> funktionieren soll. Wie geht das denn, wenn im Programmcode noch "einige
> Anpassungen" erforderlich sein sollen?

Der "Elektroniker" der diese 16MHz Platine gebaut hatte, hatte schon 
Anpassungen vorgenommen. Allerdings nutzte das Programm dann nicht mehr 
die den Spielstufen entsprechende Rechenzeit, was von einigen Usern 
erkannt und bemängelt wurde. Ich konnte mich dann auf die Erfahrungen 
meiner Assemblerprogrammierung mit dem C64 erinnern und den Code 
letztendlich anpassen.
D.h. je nach Taktfrequenz wären etliche Bytes im ROM zu patchen. Würde 
die VIA mit 1MHz laufen wäre das nicht der Fall und man könnte das 
Original-ROM verwenden.

von (prx) A. K. (prx)


Lesenswert?

Johannes S. schrieb:
> sollte das doch möglich sein die VIA mit 1 MHz zu betreiben,
> während die CPU mit 16MHz getastet wird

Im Prinzip ja. Man muss den VIA mit einem permanenten 1 MHz Takt 
versorgen und bei jedem Zugriff auf den VIA muss die CPU sich so auf 
diesen Takt synchronisieren, dass das Zeitverhalten der Bussignale 
dieses 1 MHz Zyklus eingehalten wird. Also die setup/hold times bei 
phi2(1MHz) 0>1 und 1>0.

So etwas in der Art hatte die 68000 CPU intern.

: Bearbeitet durch User
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.