Z80-PIO für den ZX81

ZX-Team Forum
Benutzeravatar
PokeMon
User
Beiträge: 4280
Registriert: 31.08.2011, 23:41

Re: Z80-PIO für den ZX81

Beitrag von PokeMon » 03.12.2015, 23:34

Mein PIO ist fertig und funktioniert.
Bislang konnte ich auf die Schnelle mit 6.5 MHz kein Fehlverhalten feststellen.
Ich belaste aber auch nicht die Ausgänge sondern messe mit dem Oszilloskop.
Ich schreibe verschiedene Werte mit Power Basic über die OUT Befehle auf der Kommandoeingabezeile und das scheint ohne Wechselwirkungen zu funktionieren.
Ich werde morgen mal ein kleines Testprogramm schreiben.

Hast Du die Probleme auch, wenn Du die LEDs wegläßt ? :wink:
Wer seinen Computer ehrt, lebt nicht verkehrt.

Benutzeravatar
PokeMon
User
Beiträge: 4280
Registriert: 31.08.2011, 23:41

Re: Z80-PIO für den ZX81

Beitrag von PokeMon » 04.12.2015, 00:58

Ich habe jetzt nochmal ein kurzes Testprogramm geschrieben, einen Zähler der über beide Ports geht.
Sieht auf dem Oszilloskop gut aus, ich werde morgen nochmal meinen Logic Analyzer anschließen und Stichproben machen, ob aufeinanderfolgende Werte abweichen. Ich kann es mir aber ehrlich gesagt nicht vorstellen.

Ich vermute, Du belastest die Ausgänge zu stark mit Deinen LEDs. Laut Datenblatt liefert die PIO maximal (guten Gewissens) 1.6mA mit Ausgang als High (dann aber nur mit etwa 2.4V am Ausgang). Jetzt ist es schon ein Unterschied, ob man einen oder 8 oder gar alle 16 LEDs auf einen Schlag schaltet und zusätzlich noch die 1.6mA deutlich überschreitet. Das kann zu internen Spannungsabfällen im (!) IC führen, die ggf. solche Fehlfunktionen auslösen kann.
pio.gif
pio.gif (28.15 KiB) 2619 mal betrachtet
Die NMOS Variante kann noch deutlich weniger schalten mit nur 0.25 mA High. Die Ports am Ausgang B haben offenbar stärkere Treiber und können bis zu 5mA schalten. Das gilt aber nicht für Port A oder ist hier nicht spezifiziert. Da ich mit viel mit Datenblättern beschäftige ist bei heutigen modernen ICs neben der Einzelbelastung eines Ausgangs auch die Gesamtbelastung über alle Ausgänge spezifiziert und zwar deutlich niedriger. Das heißt man soll nur einige aber nicht alle Ausgänge volle Kanne belasten.

Probier doch bitte mal folgendes Programm aus (unten als Source und angehängt als .p File). Hier läuft ein Zähler auf dem Port und dabei werden die LEDs nur immer nacheinander eingeschaltet. Das sollte sich freundlicher mit Deiner PIO verhalten. Generell wäre zu überlegen, ob Du bei einer Neuauflage nicht noch einen Treiber auf die PIO setzen willst. So ein Bustreiber wie ein 74HC245 liefert immerhin 8mA High oder Low bei akzeptablen Ausgangspegeln. Wer es braucht kann ggf. auch den pin-kompatiblen 74AC245 einsetzen, der kann +/-24mA.
ZX81PIO.p
(971 Bytes) 42-mal heruntergeladen

Code: Alles auswählen

100     RAND USR #1000#
        GOTO 110

1000    REM _asm

        LD  A,$0F
        OUT ($D7),A
        OUT ($DF),A
        LD  DE,1
        LD  HL,0

loop:   LD  A,L
        OUT ($C7),A
        LD  A,H
        OUT ($CF),A
        ADD HL,DE
        JR  NC,loop
        RET

        END _asm
Wer seinen Computer ehrt, lebt nicht verkehrt.

Benutzeravatar
Paul
User
Beiträge: 2376
Registriert: 10.03.2010, 12:01
Wohnort: Germanys west end

Re: Z80-PIO für den ZX81

Beitrag von Paul » 04.12.2015, 07:11

Ich hoffe doch wohl das Joachim die Widerstände gegen 5V verdrathet hat und die LEDs mit den Ports gegen Masse zieht. So wäre es jedenfalls üblich.
Weil anders wäre schlecht (um es mit den Worten einer ehemaligen Gesundheitsministerin aus Aachen zu sagen :mrgreen: )
Theoretisch ist zwischen Theorie und Praxis kein Unterschied.
Praktisch allerdings wohl.

Benutzeravatar
Joachim
User
Beiträge: 770
Registriert: 06.11.2004, 20:21

Re: Z80-PIO für den ZX81

Beitrag von Joachim » 04.12.2015, 09:20

Es ist anders und das ist schlecht! Und das kam so: Das uralte Testprogramm wurde für eine LED-Anzeige geschrieben, die mit Hi-Pegeln über Transistoren LED ansteuert. Ich teste damit schon immer meine PIOs nach dem zusammenlöten. Hat auch immer geklappt. Es waren nie NMOS oder CMOS-Bausteine. Die Neue wollte ich am ZXmore testen, weil da die Alten auch schon funktionierten. Von den Monitörchen habe ich welche, die nach Masse und welche, die nach 5V verdrahtet sind. Damit man die Lauflichter gut sehen kann, habe ich die genommen, die nach Masse verdrahtet sind. Ich weiß, das macht man nicht, aber es war halt alles vorhanden: LEDs und Programm. Was mich dann stutzig machte war, dass die Alten gingen und die Neue nicht. Ich dachte deshalb, dass es an der Neuen liegen muss. Und so kam alles ins Rollen.
Ich habe auch noch LED-Anzeigen mit einem ULN2803 drauf. Mal seh'n, was sich da tut. Außerdem werde ich die Ports mit Karls Programm auch an meinen Logic Analyzer testen.
Tut mir leid, wenn ich für Aufregung gesorgt habe. Aber dadurch hat sich auch das Layout für künftige PIOs verbessert :)
Viele Grüße!
Joachim


ZX80, ZX81, ZX-Spectrum, ZX96, ZX2000, ZXmore, ZX81NU, Blauer Engel, AX81

Benutzeravatar
siggi
User
Beiträge: 1960
Registriert: 06.12.2005, 08:34
Wohnort: D, Hessen, Ranstadt-Dauernheim
Kontaktdaten:

Re: Z80-PIO für den ZX81

Beitrag von siggi » 04.12.2015, 11:07

PokeMon hat geschrieben:Naja - ich sehe den 1k Widerstand auch nicht als wirklich kritisch, er erklärt aber Deine Messungen oben.
Naja, ich sehe das etwas anders, denn die Clock-Signale nach dem Widerstand (Joachims Bild 2) sehen schon recht grauslich aus.
Ich benutze ja den Takt im ZeddyNet-Gal, um das Timing am WIZ hinzurücken. Und mit den krummen Takt-Flanken wird das Timing dann "irgenwie fast" sein, aber nicht so, wie ich mir das mal gedacht hatte.
Ich schlage also vor, diesen Widerstand in der Taktleitung zu überbrücken, wenn man am Bus normale Zeddy-Karten anstecken will. Nur wer später die (bisher nicht existente) Speccy-Erweiterung mit externem Taktgeber verwenden will, braucht ihn ja. Und da könnte man ja einen Jumper über den Widerstand drüberlegen, wenn man beides machen will.

Gruß
Siggi
Mein ZX81-Web-Server: online seit 2007
http://zx81-siggi.endoftheinternet.org/index.html

Benutzeravatar
PokeMon
User
Beiträge: 4280
Registriert: 31.08.2011, 23:41

Re: Z80-PIO für den ZX81

Beitrag von PokeMon » 04.12.2015, 13:34

siggi hat geschrieben:Naja, ich sehe das etwas anders, denn die Clock-Signale nach dem Widerstand (Joachims Bild 2) sehen schon recht grauslich aus.
Auf den ersten Blick ja. Auf den zweiten nicht unbedingt.
Wobei das Signal sowieso durch das Messen verschlechtert wird - solange man keinen speziellen HF Tastkopf hat (am Besten aktiver Tastkopf).
Aber wer hat das schon.

Tendenziell bekommt man eine Zeitverzögerung mit den flacheren Flanken von 1k*5pF = 50ns. Wenn ich den Tastkopf hinhalte habe ich schon etwa die doppelte Kapazität und eine Verzögerung von 100ns. Sehen wir mal die positiven Aspekte, die sehr hohen Frequenzen werden rausgefiltert, was sich positiv auf eine EMV Prüfung auswirken wird. :mrgreen:

Meine PIO läuft hier einwandfrei, sogar mit 6.5 MHz. Jetzt wird Deine Wiznet/GAL Kombi möglicherweise unter Beweis stellen müssen ob sie mit 6.5 MHz klar kommt, was immer Du da auch zurechtgebogen hast. Etwas nachteilig ist diese Verzögerung bei nichtsymmetrischen TTL Pegeln im Gegensatz zu CMOS, was tendenziell zu einem asymmetrischen Takt und noch etwas kürzeren CLK Perioden führt.

Aber den Widerstand darf natürlich jeder überbrücken wenn er mag. Man könnte ihn auch auf 470R reduzieren, was den Effekt abmildert, dann muss das CLK Flipflop eben ein wenig mehr schwitzen wenn ein externer CLK reinkommt.
Wer seinen Computer ehrt, lebt nicht verkehrt.

Benutzeravatar
siggi
User
Beiträge: 1960
Registriert: 06.12.2005, 08:34
Wohnort: D, Hessen, Ranstadt-Dauernheim
Kontaktdaten:

Re: Z80-PIO für den ZX81

Beitrag von siggi » 04.12.2015, 13:49

PokeMon hat geschrieben:
siggi hat geschrieben:Naja, ich sehe das etwas anders, denn die Clock-Signale nach dem Widerstand (Joachims Bild 2) sehen schon recht grauslich aus.
Meine PIO läuft hier einwandfrei, sogar mit 6.5 MHz. Jetzt wird Deine Wiznet/GAL Kombi möglicherweise unter Beweis stellen müssen ob sie mit 6.5 MHz klar kommt, was immer Du da auch zurechtgebogen hast.
Bei "normalen" Clock-Signalen und 6,5 Mhz paßt das Timing jedenfalls und ZeddyNet läuft problemlos (siehe unteres Bild):
viewtopic.php?f=2&t=273&hilit=Zeddynet. ... =100#p5217

Beim ZXmore (mit 1k Bremswiderstand) konnte ich ZeddyNet bisher ja nur ansatzweise testen ...

Gruß
Siggi
Mein ZX81-Web-Server: online seit 2007
http://zx81-siggi.endoftheinternet.org/index.html

Benutzeravatar
PokeMon
User
Beiträge: 4280
Registriert: 31.08.2011, 23:41

Re: Z80-PIO für den ZX81

Beitrag von PokeMon » 05.12.2015, 19:40

Joachim, ich habe heute nochmal mit der PIO getestet und eine andere Testroutine geschrieben.
Hier übrigens meine Testanordnung:
IMG_8983k.JPG
IMG_8983k.JPG (222.93 KiB) 2535 mal betrachtet
Die alte Routine überschreibt immer beide Register nacheinander - da kann man Wechselwirkungen zwischen den Ports nicht gut beobachten. Ich würde Dich bitten falls Du Zeit hast, doch mal das beigefügte Testprogramm auf Deinem System laufen zu lassen mit den LED's. Hier wird auf Port A Seite ein Zähler laufen gelassen mit 8 Bit, der startet bei 1 und zählt bis 256 bzw. 0 und dann wieder von vorne und zwar nur eine Ausgabe pro Frame. Somit ist ein Durchlauf 256/50 also etwa 5 Sekunden und das kann man noch ganz gut beobachten. Auf der linken Seite (Port B) wird nur eine LED eingeschaltet, die nach jedem Durchlauf vom Bit 0 bis Bit 7 läuft (also 8 mal) und sich dann ebenfalls wiederholt. Da Port B nur alle 5 Sekunden geändert wird, sieht man eventuell verhängnisvollle Fehler aus falsch beschriebenem Port besser.

Leider habe ich nicht so tolle LED Module, daher wärst Du für diesen Test (der insgesamt 40 Sekunden dauert) als Kandidat prädestiniert. Du kannst das Programm abbrechen, wenn Bit 7 auf Port B leuchtet und dann BREAK drückst. Wenn die ausgeht springt die Routine ins BASIC zurück und startet sich nochmal. Also maximal musst Du 5 Sekunden auf BREAK bleiben, je nachdem wie genau Dein Finger ist. :D

Ich schaue mir gleich trotzdem nochmal die schnelle Variante auf meinem Logic Analyzer an. Diese Anzeige dürfte auch sehr verträglich für die PIO sein, da immer nur eine LED pro Frame zugeschaltet wird und insgesamt maximal 9 LEDs leuchten können.

Code: Alles auswählen

2000    REM _asm

        LD  A,$0F
        OUT ($D7),A
        OUT ($DF),A
        LD  DE,$FFFF
        LD  ($4034),DE
        LD  B,1
        LD  A,B
        OUT ($CF),A

.loop:  AND A
        LD  HL,($4034)
        SBC HL,DE
        JR  NC,.loop
        ADD HL,DE
        EX  DE,HL
        LD  A,E
        CPL
        OUT ($C7),A
        XOR A
        ADD A,E
        JR  NZ,.loop
        SLA B
        LD  A,B
        OUT ($CF),A
        JR  NC,.loop
        RET

        END _asm
Dateianhänge
ZX81PIO.p
(1012 Bytes) 43-mal heruntergeladen
Wer seinen Computer ehrt, lebt nicht verkehrt.

Benutzeravatar
Joachim
User
Beiträge: 770
Registriert: 06.11.2004, 20:21

Re: Z80-PIO für den ZX81

Beitrag von Joachim » 05.12.2015, 20:09

Hallo Karl,
mach' gern.
Ein erster Test verlief negativ. Es leuchtete eine LED auf Port B (Bit 0)und dann kommt nichts. Man kann aber nach längerer Zeit breaken. Im FAST-Modus (BASIC) blieb es bei diesem Verhalten. Jedoch waren die Bits 1 - 7 an Port A an. Einen Break habe ich aber nicht hinbekommen. Dieser Zustand (Port B LED 0 leuchtet, Port A LED 1 - 7 leuchten) ist jetzt ca. 5 Min. so. Ich teste mit der LED-Anzeige, bei denen die LED leuchten, die Hi-Pegel bekommen.
Ich werde morgen oder heute Nacht mal das Programm im Einzelschritt mit ASDIS durchgehen. Mal sehen was dann die LED sagen.
Viele Grüße!
Joachim


ZX80, ZX81, ZX-Spectrum, ZX96, ZX2000, ZXmore, ZX81NU, Blauer Engel, AX81

Benutzeravatar
PokeMon
User
Beiträge: 4280
Registriert: 31.08.2011, 23:41

Re: Z80-PIO für den ZX81

Beitrag von PokeMon » 05.12.2015, 21:38

Hallo Joachim,
komisch - sicherheitshalber habe ich es nochmal angehängt.

Nicht dass ich eine falsche Version genommen habe.
Wichtig: Du darfst das BASIC Programm nicht ändern (jedenfalls nicht vor Zeile 2001) weil sich sonst die Startadresse für das Maschinenprogramm verschiebt.
Also am Besten keine Zeile einfügen, löschen oder sonst wie editieren.

Ich kann ja mit dem Oszilloskop alle Signale messen.
A0=20ms (50Hz)
A1=40ms
A2=80ms
A3=160ms
A4=320ms
A5=640ms
A6=1.2s
A7=2.4s

Und nach jedem Durchlauf wird eine andere LED auf Port B angesteuert, also alle 4.8s (B0,B1,B2,B3,B4,B5,B6,B7).
Das Programm muss auf Deinem Rechner doch das Gleiche machen ?


Auf meinem Logic Analyzer sieht übrigens alles ganz sauber aus. Der Port A zählt sauber hoch und auf Port B bleibt der eingestellte Wert. Dieses Programm beschreibt etwa alle 8us die Ports - außer wenn gerade die Bildschirmanzeige läuft, dann ist natürlich 12ms Pause. Ich habe nur Stichprobenkontrollen gemacht aber die sehen auch über einen längeren Zeitraum (256 aufeinanderfolgende Schreibzugriffe) keine Änderungen an Port B.
Dateianhänge
ZX81PIO.p
(1012 Bytes) 42-mal heruntergeladen
Wer seinen Computer ehrt, lebt nicht verkehrt.

Benutzeravatar
Joachim
User
Beiträge: 770
Registriert: 06.11.2004, 20:21

Re: Z80-PIO für den ZX81

Beitrag von Joachim » 05.12.2015, 22:57

Hallo Karl,
das Programm, so wie ich es runtergeladen habe, ist ok. Es läuft auf meinem ZX96 wie geschmiert. Damit ist auch geklärt, weil ich dort eine Anzeige mit LED habe, die mit high geschaltet werden, dass das Programm die LED mit high bedient. Ein solche muss ich jetzt auch am ZXmore nehmen. Mal seh'n, wie es dann ist.
Am Programm habe ich beim Test mit dem ZXmore nichts verändert.

Nebenbei: das Lauflicht sieht irgendwie wie ein tropfender Wasserhahn aus. Auch nicht schlecht.

1. Ergebnis:
Anzeige-LED gewechselt. Die LED werden durch einen ULN2803 getrieben. Mit Programm ZX81PIO.P zeigt sich gleiches Ergebnis wie mit der alten Anzeige. Beim Programm PIOC7CF.P zeigt sich auch der gleiche Fehler wie vorher.

2. Ergebnis:
Gleicher Hardware-Aufbau. Jedoch habe ich während des Betriebes den USB-Stick gezogen (ein Nano mit 4 GB). Ich wollte das neue Programm, das ich auf einen Stick mit einer 64 MB-SD-Card gezogen habe, einspielen. Beim Einstecken lief das Programm FEHLERFREI!
Zuletzt geändert von Joachim am 05.12.2015, 23:22, insgesamt 1-mal geändert.
Viele Grüße!
Joachim


ZX80, ZX81, ZX-Spectrum, ZX96, ZX2000, ZXmore, ZX81NU, Blauer Engel, AX81

Benutzeravatar
PokeMon
User
Beiträge: 4280
Registriert: 31.08.2011, 23:41

Re: Z80-PIO für den ZX81

Beitrag von PokeMon » 05.12.2015, 23:13

Naja - die Anzeige ist halt dann invers. Der Zähler läuft rückwärts und es bewegt sich im 5 Sekundentakt nicht eine LED sondern eine Lücke. :wink:
Wer seinen Computer ehrt, lebt nicht verkehrt.

Benutzeravatar
PokeMon
User
Beiträge: 4280
Registriert: 31.08.2011, 23:41

Re: Z80-PIO für den ZX81

Beitrag von PokeMon » 05.12.2015, 23:15

Joachim hat geschrieben:Mit Programm ZX81PIO.P zeigt sich gleiches Ergebnis wie mit der alten Anzeige.
Kannst Du das nochmal konkretisieren ?
Irgendwie blicke ich langsam nicht mehr durch ... :shock:
Wer seinen Computer ehrt, lebt nicht verkehrt.

Benutzeravatar
Joachim
User
Beiträge: 770
Registriert: 06.11.2004, 20:21

Re: Z80-PIO für den ZX81

Beitrag von Joachim » 05.12.2015, 23:24

Habe meine Antwort editiert. Das Pegelspiel ist anders. Soweit ich mich erinnere (habe jetzt das Datenblatt nicht zur Hand) invertiert der ULN2803.
Bitte schau dir mal meine editierte Antwort an. Sorry, dachte, du bist nicht online und habe deshalb editiert.
Viele Grüße!
Joachim


ZX80, ZX81, ZX-Spectrum, ZX96, ZX2000, ZXmore, ZX81NU, Blauer Engel, AX81

Benutzeravatar
Joachim
User
Beiträge: 770
Registriert: 06.11.2004, 20:21

Re: Z80-PIO für den ZX81

Beitrag von Joachim » 05.12.2015, 23:41

3. Ergebnis:
Test jetzt mit dem neuen Programm ZX81PIO.P: Lauflicht geht fehlerfrei. Mit dem Stick hat es nichts zu tun. Allerdings muss man zum Starten des Programms und auch während des Laufs immer wieder eine Taste drücken. Kann ich im Basic-Programm und auch im MC nicht erkennen. Ist das ok?
Seltsam: Wenn alle Bits auf Port B durch sind, wird wieder LED 0 angezeigt, auf Port A stehen für einpaar Sekunden alle LED. Diese erlöschen dann von selbst und dann muß man auf eine Taste drücken.

4. Ergebnis:
Habe jetzt spaßeshalber die kleine Monitörchen angesteckt. Port A läuft einwandfrei. Auf Port B werden LED manchmal übersprungen. Wenn alle Bits auf Port B durch sind, wird wieder LED angezeigt, auf Port A steht für einpaar Sekunden die LED 7. Diese erlischt dann von selbst und dann muß man auf eine Taste drücken.

Eins ist schon mal klar: mit den LED-Anzeigen ohne Treiber kann man nicht richtig testen.
Viele Grüße!
Joachim


ZX80, ZX81, ZX-Spectrum, ZX96, ZX2000, ZXmore, ZX81NU, Blauer Engel, AX81

Benutzeravatar
Joachim
User
Beiträge: 770
Registriert: 06.11.2004, 20:21

Re: Z80-PIO für den ZX81

Beitrag von Joachim » 05.12.2015, 23:52

Korrigiere Ergebnis 4: es steht nicht LED 7, sondern LED 0.

Einzelschritt geht leider nicht, weil die Systemvariable FRAMES einbezogen wird. Das habe ich nicht gleich gesehen.
Viele Grüße!
Joachim


ZX80, ZX81, ZX-Spectrum, ZX96, ZX2000, ZXmore, ZX81NU, Blauer Engel, AX81

Benutzeravatar
Joachim
User
Beiträge: 770
Registriert: 06.11.2004, 20:21

Re: Z80-PIO für den ZX81

Beitrag von Joachim » 06.12.2015, 00:00

PokeMon hat geschrieben:
Joachim hat geschrieben:Mit Programm ZX81PIO.P zeigt sich gleiches Ergebnis wie mit der alten Anzeige.
Kannst Du das nochmal konkretisieren ?
Irgendwie blicke ich langsam nicht mehr durch ... :shock:
Das Lauflicht, das das Testprogramm PIOC7CF.p erzeugt, kann immer noch nicht beide Ports mit jeweils 8 LED gleichzeitig aufleuchten lassen. Auch nicht mit einer LED-Anzeige, die Treiber hat.

Und noch was, Karl, wir können das Ganze auch in Mahlerts vertiefen. Da kann ich dir alles vorführen. Die PIO-Platine als solche ist ja in Ordnung. Du hast doch jetzt ein ganz anderes Projekt (neue Release) um die Ohren. Außerdem willst du doch auch in den Chat.
Viele Grüße!
Joachim


ZX80, ZX81, ZX-Spectrum, ZX96, ZX2000, ZXmore, ZX81NU, Blauer Engel, AX81

Benutzeravatar
Joachim
User
Beiträge: 770
Registriert: 06.11.2004, 20:21

Re: Z80-PIO für den ZX81

Beitrag von Joachim » 06.12.2015, 00:31

Ein letzte Sache noch für heute Nacht: Egal mit welcher Anzeige ich teste, der Zähler auf Port B hat definitiv einen Zufallswert und zählt nicht 1,2,4,8 ...128.. Im Programm wird B aber nur zum shiften verwendet. Rätselhaft.
Viele Grüße!
Joachim


ZX80, ZX81, ZX-Spectrum, ZX96, ZX2000, ZXmore, ZX81NU, Blauer Engel, AX81

Benutzeravatar
PokeMon
User
Beiträge: 4280
Registriert: 31.08.2011, 23:41

Re: Z80-PIO für den ZX81

Beitrag von PokeMon » 06.12.2015, 12:02

Hallo Joachim,

ich hoffe Du hast Dir wegen mir jetzt nicht die ganze Nacht um die Ohren geschlagen. :shock:

Das Verhalten ist echt merkwürdig - Du musst eigentlich gar keine Taste drücken, das Programm läuft in einer Schleife immer wieder durch.
Genauer - es wird ein Durchlauf mit RAND USR gestartet, der auf Port A einen Zähler von 0-255 laufen läßt (genau genommen startet er das erste Mal mit 1) und Port B eine LED nach jedem Durchgang ein Bit weitersetzt (von 0 bis 7). Dann geht es zurück ins BASIC und in einer Schleife wird RAND USR erneut gestartet. Das ist der Grund warum man erst nach etwa 40 Sekunden unterbrechen kann. Der Zähler braucht 5 Sekunden für ein Durchlauf und auf B werden nacheinander alle 8 Bits gesetzt (also immer nur eins).

In der Tat können wir das in Mahlerts vertiefen - vielleicht kann aber auch ein anderer User hier mal an seinem ZXmore testen. Bei mir läuft es fehlerfrei. Wenn sonst andere Programme fehlerfrei bei Dir laufen und wenn die Platine an einem ZX81 oder ZX96 fehlerfrei läuft wäre möglicherweise noch eine Ursache eine Wechselwirkung unbekannter Art.

Anbei noch ein Foto von meiner Platine / Rückseite. Ich habe es mit den Kondensatoren recht einfach gelöst und einfach bei den beiden Ports einen 10uF MLCC Kondensator als SMD zwischen die äußeren Pins gesetzt, da liegt ja 5V und GND. Das sollte m.E. für die Karte auch genügen.
IMG_8986k.JPG
IMG_8986k.JPG (139.03 KiB) 2473 mal betrachtet
Und ja - in der Tat konzentriere ich mich aktuell auf die Software für das nächste Release für den ZXmore.
Wer seinen Computer ehrt, lebt nicht verkehrt.

Benutzeravatar
PokeMon
User
Beiträge: 4280
Registriert: 31.08.2011, 23:41

Re: Z80-PIO für den ZX81

Beitrag von PokeMon » 06.12.2015, 12:07

PS: Eine Idee habe ich noch, Joachim.
Du sagst - im FAST Mode sind keine Probleme da.
Zu guter Letzt könntest Du auch noch nach Laden des Programms Doppel-Shift C drücken um die ZX81 Session ohne ZXmaster laufen zu lassen.
Kannst Du leicht prüfen, danach geht das Umschalten in Instanz 0 nicht mehr und die blaue LED wird etwas heller (bei Tageslicht möglicherweise nicht gut erkennbar). Bitte probiere das doch nochmal.
Wer seinen Computer ehrt, lebt nicht verkehrt.

Benutzeravatar
Joachim
User
Beiträge: 770
Registriert: 06.11.2004, 20:21

Re: Z80-PIO für den ZX81

Beitrag von Joachim » 06.12.2015, 14:34

Hallo Karl,
ich habe eben ohne ZXmaster getestet. Als LED-Anzeige habe ich die mit den ULN2803-Treibern genommen.
Sh+Sh+L brachte keinen Lademodus, ZXmaster war also abgeschaltet.
Port A läuft tadellos, Port B zeigt nichts. Die LED- Anzeige für Port B habe ich überprüft. Alles in Ordnung.
Außerdem ist das Drücken einer Taste nicht notwendig.
Nach BASIC-Kommando FAST und RUN (immernoch ohne ZXmaster) wird auf Port B Bit 0 angezeigt. Auf Port A ist entweder nichts oder alle LED. Dann steht das Programm. Es wird keine Taste mehr angenommen.
Wenn ich mit sh+sh+P den Powermodus abschalte, dann läuft alles fehlerfrei. Wenn ich dazu noch den ZXmaster abschalte, läuft auch alles fehlerfrei.
Ich baue jetzt nochmal eine PIO auf und probiers damit. Vielleicht habe ich ja doch irgendwo einen Lötfehler drin. Eine zweite PIO kann man immerwieder brauchen.
Auch werde ich mal zusehen, wie ich dir das Verhalten als Video zeigen könnte. Auch das wäre auch für andere Geschichten nicht schlecht.
Viele Grüße!
Joachim


ZX80, ZX81, ZX-Spectrum, ZX96, ZX2000, ZXmore, ZX81NU, Blauer Engel, AX81

Benutzeravatar
PokeMon
User
Beiträge: 4280
Registriert: 31.08.2011, 23:41

Re: Z80-PIO für den ZX81

Beitrag von PokeMon » 06.12.2015, 16:51

Also so richtig erklären kann ich das jetzt nicht.
Zunächst ist es normal, wenn im FAST Modus nur Bit 0 von Port B angezeigt wird, weil das Programm natürlich so einfach gestrickt ist, dass es pro Frame nur 1 mal Port A ansteuert und FRAMES natürlich im FAST Modus nicht aktualisiert wird (wie auch ...). Insofern ist das Verhalten völlig normal.

Mein Verdacht war eigentlich, dass es eventuell einen Konflikt mit den I/O Adressen $7C-$7F gibt, die beim ZXmore zum Teil die Register setzen. Scheint aber nicht so zu sein, wenn es langsam ohne Probleme läuft. Die Frage ist dann natürlich, warum es mit 6.5 MHz im FAST Modus läuft. Möglicherweise ein PIO spezifisches Verhalten (je nach Hersteller) weil diese hier sagen wir mal im Grenzbereich genutzt wird (erlaubt sind 6.144 MHz).

Der andere Punkt ist, dass der CLK mit dem NMI Impuls und gleichzeitig Ende der NMI Routine wieder schneller läuft (umschaltet von 3.25 auf 6.5 MHz). Das wurde aus Vereinfachungsgründen gemacht, wirklich notwendig ist das nur beim letzten NMI, der der Bildsynchronisation dient. Es ist jetzt möglich je nach Lage des NMI Impulses, dass die CLK Umschaltung in mitten eines I/O Befehls passieren kann, wenn die NMI Routine zu Ende ist und der Impuls erst später endet da das asynchron passiert. Das kann im Zweifel die PIO übel nehmen, zumindest wäre das denkbar.

Das Verhalten könnte sich aber mit dem nächsten Release auch in diesem Punkt verbessern, da es hier nur noch einen langen NMI gibt und somit eine lange, ununterbrochene 6.5 MHz Periode. Es ist durchaus möglich, dass es deshalb bei mir nicht aufgetreten ist, weil ich ehrlich gesagt schon mit dem neuen Release teste. :oops:

Ich kann aber nochmal Version 0.9 rauskramen und schauen ob es da ein anderes Verhalten gibt.
Wer seinen Computer ehrt, lebt nicht verkehrt.

Benutzeravatar
Joachim
User
Beiträge: 770
Registriert: 06.11.2004, 20:21

Re: Z80-PIO für den ZX81

Beitrag von Joachim » 06.12.2015, 16:55

Hallo Karl,
würde ich nicht - da warte ich lieber, bis ich auch das neue Release habe und dann schau' mer mal (darf man das noch zitieren?).
Viele Grüße!
Joachim


ZX80, ZX81, ZX-Spectrum, ZX96, ZX2000, ZXmore, ZX81NU, Blauer Engel, AX81

Benutzeravatar
PokeMon
User
Beiträge: 4280
Registriert: 31.08.2011, 23:41

Re: Z80-PIO für den ZX81

Beitrag von PokeMon » 06.12.2015, 17:09

War kein Aufwand, einmal EEPROM brennen (mache ich momentan eh hundert mal am Tag beim Testen). :wink:
Bei mir läuft es auch mit Version 0.9 ohne Probleme. Krass.
Vielleicht kann ja in der Zwischenzeit nochmal einer der anderen PIO Kandidaten testen wenn er Zeit und das notwendige Equipment hat.

Ansonsten kann ich Dir auch kurz die Version 1.3 rübermailen wenn Du ein Programmiergerät besitzt für SST39SF040 Flash ROM und testen magst.
Da ist zumindest der Long NMI Mode schon drin, an der Version 1.5 arbeite ich aktuell noch, das ist noch kein stabiles Release.
Ich kann aber auch verstehen, wenn Du momentan lieber warten willst und schon genug getestet hast.
Wer seinen Computer ehrt, lebt nicht verkehrt.

Benutzeravatar
Joachim
User
Beiträge: 770
Registriert: 06.11.2004, 20:21

Re: Z80-PIO für den ZX81

Beitrag von Joachim » 06.12.2015, 18:20

Mein Galep III kann das Flash-ROM programmieren. Bitte schicke mir die Version 1.3. Da kann ich mittesten. Außerdem: wir testen ja nicht nur den ZXmore, sondern auch die PIO. Und bisher war es doch interessant, die ganzen Aspekte, die es zu beachten gilt, zu erfahren. Inklusive MC-Programmierung mit FRAMES-Variable.
Viele Grüße!
Joachim


ZX80, ZX81, ZX-Spectrum, ZX96, ZX2000, ZXmore, ZX81NU, Blauer Engel, AX81

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 5 Gäste