USB Cartridge: Probleme mit div CPUs

Moderatoren: Sleeπ, andymanone

Antworten
Erhard
Beiträge: 1116
Registriert: 04.11.2021 15:52
Has thanked: 132 times
Been thanked: 342 times
Kontaktdaten:

USB Cartridge: Probleme mit div CPUs

Beitrag von Erhard »

Hallo,

auf der Fujiama war aufgefallen, daß der USB Cartridge Test von Carsten an meinen XE-Remakes anzeigte, daß das USB Cartridge nicht funktioniert.

Ich hänge da jetzt seit Tagen mit dem Logikanalysator dran und es scheint so, als ob es nicht unbedingt an den XE Remake Boards liegt sondern an den CPUs oder irgendeinem Timing.

Eine "gute" CPU bringt augenscheinlich auch an einem XE Remake Board erfolgreiche Ergebnisse.

Ich habe mal als erstes basierend auf Angaben von Carsten ein stark gekürztes Testprogramm geschrieben.

Das sieht so aus (das NOP habe ich erst da eingefügt, wo der Test auf dem A8 fehlschlägt, damit ich eine Abbruch-Bedingung bei $61D definieren konnte, denn nach einer Verzweigung nach Rückwärts springt der Adressbus doch erst einmal vorwärts - deshalb braucht eine Verzweigung auch einen Takt mehr wenn sie ausgeführt wird)
USBTEST-PGM.png
USBTEST-PGM.png (23.95 KiB) 420 mal betrachtet
Dann hier der Fall, wo der Test erfolgreich läuft:
LA-WORKING-CPU.png
LA-WORKING-CPU.png (22.58 KiB) 420 mal betrachtet
USB-CART-DIAG_WORKING.zip
(8.47 KiB) 10-mal heruntergeladen
Und hier der Fall, wo der Test abbricht:
LA-NOT-WORKING-CPU.png
LA-NOT-WORKING-CPU.png (37.46 KiB) 420 mal betrachtet
USB-CART-DIAG_NOT-WORKING.zip
(8.11 KiB) 12-mal heruntergeladen
Im zweiten Fall kann man sehen, daß obwohl der Wert $E2 nach $D501 geschrieben wird (s. Cursor D), hinterher $10 ausgelesen wird (s. CURSOR C)

Ich hab keine Ahnung, was da schief läuft.

Das Programm was man braucht, um die Dateien des Logikanalysators laden, anzeigen und beliebig zoomen zu können ist frei unter pctestinstruments.com erhältlich.

Mit Screenschots über einen Durchlauf des Programms kann man hier nicht arbeiten - zumindest ich habe keinen Bildschirm mit der 50-fachen Breite eines normalen 16:9 Monitors.

Hilfe ausdrücklich erwünscht.
Jede Info, die zu Hause auf meinem Rechner liegt habe ich unterwegs nicht verfügbar.
Jede Info, die im Netz liegt finde ich nicht wieder, wenn ich sie benötige.

Benutzeravatar
DjayBee
Beiträge: 1084
Registriert: 17.08.2021 04:02
Has thanked: 796 times
Been thanked: 376 times
Kontaktdaten:

Re: USB Cartridge: Probleme mit div CPUs

Beitrag von DjayBee »

Deppenfrage der Woche :
Was ist eine USB Cartridge?

Edit: Die "Deppenfrage" ;-) wird hier weiter behandelt: Was ist eine (A8) USB-Cartridge ?

Um diese Thema nicht zu verwässern, an dieser Stelle bitte ausschließlich die eigentliche Fragestellung betreffende Beiträge posten. THX

HiassofT
Beiträge: 199
Registriert: 17.08.2021 11:03
Wohnort: Salzburg, Austria
Has thanked: 21 times
Been thanked: 100 times
Kontaktdaten:

Re: USB Cartridge: Probleme mit div CPUs

Beitrag von HiassofT »

Das ist ein klassischer Fall des vermurksten Atari-Timings, insbesonders beim ANTIC Zugriff - aka die gute, alte, PHI2-Problematik.

Wenn Du Dir die D5xx Zugriffe, insbesonders die mit darauffolgendem ANTIC Zugriff genauer anschsiehst wirst Du bemerken, dass sich im nicht-funktionierenden Fall (fast) zeitgleich mit der fallenden PHI2 Flanke die Adressleitungen ändern:
not-working.PNG
not-working.PNG (33.35 KiB) 211 mal betrachtet
Im funktionierenden Fall siehts etwas besser aus, da ändern sich die Adressleitungen erst ca 20ns nach PHI2 (was aber immer noch sehr knapp ist):
working.PNG
working.PNG (31.38 KiB) 211 mal betrachtet
Jetzt hätte der SL811HS aber gerne, dass die Adressleitung mindestens 10ns nach der abschliessenden Flanke von RD/WR noch gültig ist (address hold time).

Mit dem Gatter, das aus R/W und PHI2 RD bzw WR erzeugt kommen aber nochmal knapp 10ns dazu, also hat sich die Adressleitung bereits 10ns vor Ende geändert - auf sowas reagieren die neueren, schnelleren Chips recht allergisch (Du bist da im Bereich des undefinierten Verhaltens, da kann alles mögliche passieren).

Grundproblem ist erst mal, dass der ANTIC viel zu früh die Adressleitungen treibt - die Adreessleitungen sollten noch einige dutzend ns nach dem Ende von PHI2 treiben und i.A. machen das die CPUs selber auch.

Meine Vermutung ist, dass die CPUs unterschiedlich starke Ausgangstreiber haben oder unterschiedlich schnell abschalten so je nach CPU die Adressleitungen ein klein wenig länger oder kürzer gültig sind - was den Unterschied zwischen "geht" und "geht nicht" ausmacht.

Kurzum: mach den klassischen "stabilizing" mod mit der Brücke über den 2 LS08 pins (oder probier's mit einem F08), dann sollte es klappen.

so long,

Hias

Erhard
Beiträge: 1116
Registriert: 04.11.2021 15:52
Has thanked: 132 times
Been thanked: 342 times
Kontaktdaten:

USB Cartridge: Probleme mit div CPUs

Beitrag von Erhard »

Hallo Hias,

erst mal recht vielen Dank für die Erläuterung!

HiassofT hat geschrieben:
11.09.2025 20:56
mach den klassischen "stabilizing" mod mit der Brücke über den 2 LS08 pins
Ich weiß nicht, was da genau gemeint ist. Könntest Du die Pins benennen (ähm, benummern) ?

Noch eine Frage: die HI-Spikes auf der HALT-Leitung, sind die unproblematisch?

PS: der Phi2-Ausgang der CPU sieht an der steigenden Flanke ziemlich kacke aus. Wäre es nicht besser, wenn alles was vor Pin1 des LS08 abgegeriffen wird an Pin3 angeschlossen wäre? Oder würde das das Timing weiter verschlechtern?

Viele Grüße

Erhard
Jede Info, die zu Hause auf meinem Rechner liegt habe ich unterwegs nicht verfügbar.
Jede Info, die im Netz liegt finde ich nicht wieder, wenn ich sie benötige.

HiassofT
Beiträge: 199
Registriert: 17.08.2021 11:03
Wohnort: Salzburg, Austria
Has thanked: 21 times
Been thanked: 100 times
Kontaktdaten:

Re: USB Cartridge: Probleme mit div CPUs

Beitrag von HiassofT »

Hier der Link zur Stabilizing Mod: http://nleaudio.com/css/stabiliz.htm
ON 600XL/800XL COMPUTERS: Solder a wire from pin 4 of the 74LS08 to pin 13 of this same chip.

ON 65XE/130XE COMPUTERS: Solder a wire from pin 4 of the 74LS08 to pin 2 of this same chip.
Durch den Mod wird PHI2 zu PHI2 AND PHI1 und dadurch etwas (um 10-20ns) verkürzt.

Die steigende Flanke von PHI2 ist ziemlich egal, zu der Zeit passiert nichts wichtiges, wichtig ist die fallende (die zum Glück auch bei TTL Chips relativ steil ist).

Mit einem 74F08 statt dem 74LS08 bekommst Du einen deutlich kürzeren Propagation Delay (ca 5 statt 15ns) und vermutlich steilere Flanken (das kann gut oder schlecht sein) und erzielst einen ähnlichen Effekt.

Die Spikes in Halt sind mir in deinen Traces auch aufgefallen, kann mich nicht erinnern, dass ich sowas in meinen Tests gesehen hab, hab aber angenommen, dass da bei Dir evtl irgendwas reingekoppelt hat. Check mal am besten mit einem Scope, das ist auch bei den Adressleitungen etc hilfreich, da die Lo-Hi Schwellet des ICs durchaus anders als die beim LA eingestellten sein kann - "analog" kannst Du besser sehen wie das Signal zwischen 0.7 und 2.4V aussieht und wann/wo evtl Lo/Hi erkannt wird.

so long,

Hias

HiassofT
Beiträge: 199
Registriert: 17.08.2021 11:03
Wohnort: Salzburg, Austria
Has thanked: 21 times
Been thanked: 100 times
Kontaktdaten:

Re: USB Cartridge: Probleme mit div CPUs

Beitrag von HiassofT »

HiassofT hat geschrieben:
11.09.2025 22:37
Durch den Mod wird PHI2 zu PHI2 AND PHI1 und dadurch etwas (um 10-20ns) verkürzt.
Das sollte natürlich "PHI2 AND PHI0" heissen, nicht "PHI2 AND PHI1" - letzteres wäre ziemlich sinnlos :-)

so long,

Hias

Erhard
Beiträge: 1116
Registriert: 04.11.2021 15:52
Has thanked: 132 times
Been thanked: 342 times
Kontaktdaten:

USB Cartridge: Probleme mit div CPUs

Beitrag von Erhard »

Hallo Hias,

das mit dem "Stabilizing-Mod" werde ich bei nächster Gelegenheit testen.
Die 3K Pull-Up an Pin1 des LS08 können drin bleiben?

Ich hab mir das jetzt auch noch mal auf dem Schaltplan angeschaut.

Im XE gibt es ja zwei verschiedene Phi2:

- das aus der CPU mit der schlechten steigenden Flanke geht an den Freddie, CO25953 und an Pin1 des LS08
- das aus Pin3 des LS08 geht an die restlichen Custom-Chips und an den Modulport

Zu welchen Punkten (von Phi2, CS, R/W) müssen der Adressbus und der Datenbus jeweils gültig sein?
Obwohl, müßte ja auch im 6502 Datenblatt drin stehen ...

Bezüglich des HALT-Signals:

Bei den ultrakurzen verwendeten Strippen dürfte nichts reingestreut haben.

Ich habe die Signale bis auf CCTL mit einem Breakout-Board direkt an der CPU abgegriffen ...

Auf jeden Fall vielen Dank!
Jede Info, die zu Hause auf meinem Rechner liegt habe ich unterwegs nicht verfügbar.
Jede Info, die im Netz liegt finde ich nicht wieder, wenn ich sie benötige.

Erhard
Beiträge: 1116
Registriert: 04.11.2021 15:52
Has thanked: 132 times
Been thanked: 342 times
Kontaktdaten:

USB Cartridge: Probleme mit div CPUs

Beitrag von Erhard »

Hallo,

Internetausfall bei mir im Ort und Umgebung. Nix geht, keine Geldautomaten, keine DSL-Einwahl.

Ich habe jetzt einen alten Huawei-Router in Betrieb genommen und bin jetzt hier mit 2G und Ping-Zeiten von bis zu 4 Sekunden ...

Der Stabilizing-Mod hat es offenbar sofort gebracht.

Allerdings sind die XE-Remakes etwas anders:

1) Der Phi2-Ausgang der CPU geht nur an den LS08
2) Pin4 vom LS08 muß an Pin2 gebrückt werden, da die CPU an Pin1 geht

Die Wirkung des Mods werde ich mir noch mit dem LA zu Gemüte führen.
Jede Info, die zu Hause auf meinem Rechner liegt habe ich unterwegs nicht verfügbar.
Jede Info, die im Netz liegt finde ich nicht wieder, wenn ich sie benötige.

HiassofT
Beiträge: 199
Registriert: 17.08.2021 11:03
Wohnort: Salzburg, Austria
Has thanked: 21 times
Been thanked: 100 times
Kontaktdaten:

Re: USB Cartridge: Probleme mit div CPUs

Beitrag von HiassofT »

Hallo Erhard,

schön, dass es mit dem Mod geklappt hat!

Tip: wenn Du Dir das mit dem LA genauer ansiehst dann schraub besser die Samplerate auf 200 oder 500MHz hoch, dann siehst Du den Unterschied genauer - 100MHz/10ns ist etwas grob.

wg Timing: wichtig ist, was an den externen Bauteilen anliegt, im Fall des SL811HS an RD, WR und A0.

A0 ist einfach, das ist ja direkt mit dem Adressbus verbunden und hängt quasi direkt an der CPU.

Zwischen PHI2 an der CPU und RD/WR liegen erst mal der 74LS08 im Atari (ca 15ns tPD) und der 74LS00 in der Cartridge (ca 10ns tPD) - macht zusammen eine Verzögerung von ca 25ns.

Wenn Du dann noch die 10ns Address Hold Time des SL811HS dazurechnest ergibt das insgesamt ca 35ns - d.h. die Adressleitungen sollten sich frühestens 35ns nach der fallenden Flanke von PHI2 (an der CPU gemessen) ändern.

Mit dem Mod gewinnst Du ca 15-20ns (die Verzögerung zwischen PHI0 in und PHI2 out an der CPU) plus ca 15ns tPD des 74LS08 Buffers am PHI0 Eingang der CPU (Pin 4 ist PHI0 out vom Antic) - insgesamt also ca 30-35ns, damit geht sich das haarscharf aus.

wg den Spikes in HALT: hab mir die noch mal genauer angesehen, die liegen alle ca 150-200ns nach der fallenden Flanke von PHI2, das ist auch der Zeitpunkt wo der ANTIC normalerweise HALT ändert. Kann also gut sein, dass das ein Glitch vom ANTIC ist.

Das ist jedenfalls weit weg vom kritischen Zeitpunkt der fallenden PHI2 Flanke an der HALT ausgewertet wird und damit harmlos.

so long,

Hias

Erhard
Beiträge: 1116
Registriert: 04.11.2021 15:52
Has thanked: 132 times
Been thanked: 342 times
Kontaktdaten:

USB Cartridge: Probleme mit div CPUs

Beitrag von Erhard »

Ich hab das gerade noch einmal aufgebaut.
Der LA steht auf 500 MHz, damit sollte ich eine Auflösung von 2 ns haben.

Phi0 messe ich an Pin37 der CPU
Phi2 messe ich an Pin30 des GTIA (was Pin3 von U18 entspricht)

Ohne Stabilizing-Mod fällt Phi2 ca 28-30 ns nach Phi0, die steigende Flanke ist um 40ns verzögert.
Mit Stabilizing-Mod fällt Phi2 ca 4 ns nach Phi0, an der steigenden Flanke ändert sich "logischer"-weise nichts.

Mit dem Mod gewinnt das System an der Stelle in meinem Fall mit den gemsessenen ca 25ns sogar etwas mehr als die von Dir angesagten 15-20 ns, also auf jeden Fall 20.

Man könnte jetzt noch schauen, ob es was bringt, die 3K Pull-Up am Eingang von U18 wegzunehmen, aber das dürfte wohl im einstelligen Nanosekunden-Bereich liegen?

Noch mal zum HALT-Signal, aber an etwas anderer Stelle.

In meinem Remake ist ein Lattice GAL 16V8B verbaut.

Laut Forum soll diese Chip-Version nicht das Gelbe vom Ei sein.

Und ich müßte eh mal den Inhalt reassemblieren. Ich hab davon nämlich nur eine Jedec-Datei und ich brauche das als GAL-Gleichung (also .EQN oder .GDS).

Bei sowas wie .PDS kriegt mein Gehirn einen Bluescreen.

Anbei noch die Dateien des LA, falls da jemand noch mal reinschauen möchte, einmal mit 500 MHz, da paßt aber nur ein Teil des Programmablaufs rein, da der LA nur 2K Speicher hat.

Und einmal mit 200 MHz, da paßt ein Durchlauf rein. Dummerweise hier wieder mit tonnenweise HALT-Zyklen.

Spezieller Dank an die Service-Tastatur. Das Tippen ist zwar etwas mühsam, aber mit der originalen Tastatur sind soche Arbeiten am offenen Herzen, ähm, offeen Atari nicht möglich. Da kommt man mit den (steifen) Pinabgreifern an die vielen Pins wo man dran muß nicht ran.
Dateianhänge
USB-CART-DIAG_STAB-MOD-500MHz.zip
(2.62 KiB) 6-mal heruntergeladen
USB-CART-DIAG_STAB-MOD-200MHz.zip
(8.24 KiB) 3-mal heruntergeladen
Jede Info, die zu Hause auf meinem Rechner liegt habe ich unterwegs nicht verfügbar.
Jede Info, die im Netz liegt finde ich nicht wieder, wenn ich sie benötige.

Benutzeravatar
mega-hz
Beiträge: 1480
Registriert: 03.11.2021 11:23
Has thanked: 457 times
Been thanked: 518 times

Re: USB Cartridge: Probleme mit div CPUs

Beitrag von mega-hz »

Erhard hat geschrieben:
Gestern 12:10


In meinem Remake ist ein Lattice GAL 16V8B verbaut.

Laut Forum soll diese Chip-Version nicht das Gelbe vom Ei sein.
Stimmt! besser ein 16V8D verwenden!
Mit den A oder B Typen gabs auch bei mir immerwieder Ärger. k.A. warum
keine PN's mehr! Bitte per email kontaktieren! atari1450xld©mega-hz.de

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast