Hardware > Hardware (Classic 16-/32-Bit)

Atari Mega ST Bus FPU Karte ...

<< < (14/16) > >>

Lukas Frank:

--- Zitat von: czietz am Di 08.02.2022, 17:31:48 ---68881 in der Viking stabilisiert.
--- Ende Zitat ---

Wie? Wo? Was?

czietz:
Ich habe den Fehler gefunden. Zumindest in meinem MegaST, denn es ist nicht gesagt, dass sich alle gleich verhalten.

Hier ist das Problem zu sehen. Die hellblaue Kurve zeigt die /AS-Leitung an der FPU; also alle Buszugriffe im Rechner. (Nicht jeder Bus-Zugriff geht zur FPU, natürlich.) Die magenta Kurve zeigt die /CS-Leitung (Chip-Select) an der FPU. Wenn sie "low" ist, wird die FPU angesprochen, reagiert also auf Bus-Zugriffe über /AS usw. Dargestellt ist ein Zugriff auf ein 32-Bit-breites FPU-Register; erkennbar daran, dass zwei Zugriffe in unmittelbarer Folge passiert. Zur Erinnerung: Die 68000-CPU im ST hat nur einen 16-bittigen Datenbus und muss die 32 Bit aus dem Register folglich in zwei "Häppchen" holen.



Was man nun sieht: Die Chip-Select-Logik hat irgendeinen Glitch, eine Race-Condition, was auch immer. Diese Nadel beim zweiten Zugriff führt dazu, dass sich die FPU kurz nicht und dann doch wieder angesprochen fühlt, also statt zwei Zugriffen letztlich drei sieht. Und das ist genau das Problem! Das passt der State-Machine in der FPU nicht und sie steigt mit einem Fehler (Status 0x1D0D, "protocol violation", wie bei Dir @Lukas Frank) aus.

Vorläufige Lösung ... eher ein Hack, ganz offensichtlich so keine Dauerlösung:



Der 1 nF Kondensator zwischen /CS und VCC macht die Nadel auf der /CS-Leitung quasi platt. Ich will noch herausfinden, wie die /CS-Logik implementiert ist; vielleicht kann das Problem an anderer Stelle besser lösen.

Lukas Frank:
Super, vielen Dank. Bleib dran ...

Bei mir läuft der DML Test mit dem LineA Emu von Arne Fehlerfrei durch wenn der Rechner eine ganze Zeit an ist und entsprechend Temperatur hat/bekommt.

czietz:

--- Zitat von: Lukas Frank am Di 08.02.2022, 17:56:21 ---Bei mir läuft der DML Test mit dem LineA Emu von Arne Fehlerfrei durch wenn der Rechner eine ganze Zeit an ist und entsprechend Temperatur hat/bekommt.

--- Ende Zitat ---

Auch das kann ich bestätigen. Noch bevor ich heute den wahren Grund gefunden habe, hatte ich gestern die FPU mittels Heißluftföhn ordentlich auf Temperatur gebracht. Zu warm zum Anfassen, also geschätzte >50°C. Dann lief der Test auch. (Wie gesagt: das war noch vor dem Hack mit dem Kondensator an /CS.)

ICs ändern ja ihr Verhalten über Temperatur. Ich vermute, die FPU wird bei der Hitze zu träge, um die störende  "Nadel" noch mitzubekommen.

czietz:
Wie schon erwähnt, war ich mit dem 1-nF-Kondensator an der FPU-/CS-Leitung nicht zufrieden, der nötig war, um die "Nadeln" zu unterdrücken und die FPU stabil zu bekommen. 1 nF ist hier schon eine vergleichsweise große Kapazität und entsprechend verschleift sie auch die gewollten Änderungen des /CS-Signals.

Daher habe ich die Nadel rückwärts durch die Dekoderlogik verfolgt und habe eine Stelle gefunden, an der ein deutlich kleinerer Kondensator ausreicht: 270 pF zwischen Pins 7 (GND) und 8 (Ausgang) des 74LS30 mit der Bezeichnung U54:



Das wird nun die Dauerlösung. FPUTEST (mit FPU.PRG) läuft nun stabil, auch bei sehr kalter FPU. (Hinweis: Ich habe die min. nötige Kapazität nicht bis zum Ende ergründet. 22 pF reichten nicht, mit 270 pF läuft es stabil; Zwischenwerte habe ich nicht getestet.)

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln