Reparatur robotron 8086 Clone (EC1834) - 8253 Fehler

  • Moin,


    ich wollte mal hier um Rat fragen... Vielleicht fällt euch was ein...


    Ich versuche mich seit einigen Monaten an der Reparatur eines alten EC1834 8086er Boards.

    Im Moment hängt es mangels Ideen.


    Zur Vorgeschichte - Rechner war viele Jahre irgendwo im Keller.

    Netzteil habe ich wieder hinbekommen - war nur Netzfilter und die Sicherungshalter vergammelt.


    Das Board hat einen Tausch des 8086 hinter sich (der russische Klon war tot) und ein 74LS10, welches für die Freigabe des Signals READY signals zuständig ist.


    Damit hatte ich ihn so weit, dass die CPU anfing, den BIOS Start abzuarbeiten.


    Das ganze kommt beim Timer Test zum stoppen. Der äquivalente BIOS Code (hab gerade keinen schöneren Link zur Hand, im 1834 BIOS sind die nicht benötigten IO-DELAY Jumps nicht enthalten):

    appendix-bios/test1.asm at master · kaneton/appendix-bios
    IBM AT 80286 BIOS. Contribute to kaneton/appendix-bios development by creating an account on GitHub.
    github.com


    Über diesen Test kommt er nicht.


    Beim direkten Vergleich mit einem anderen Board (leichtere Reparaur) sollte der Test nach etwa 4 Schleifendurchläufen beendet sein.

    Mein Problemfall zählt hier durch und geht am Ende in den HLT.


    Herausgefunden habe ich, dass der 8253 beim Lesen vom Latch Register NUR gerade Werte liefert. Also D0 bleibt IMMER 0.


    Ich habe nun diverse Sachen geprüft:

    Der 8253 selbst funktioniert im anderen Board.

    Vor dem 8253 sitzt ein FlipFlop als Taktteiler - Mit Oszi den Takt gemessen (Eingang+Ausgang) - das passt.

    Alle anderen ICs, die Verbindung zu D0 haben, habe ich mittlerweile gesockelt, getauscht und geprüft (soweit möglich) - da ist so keiner als Fehlerhaft auszumachen.

    Wenn ich D0 am Timer vom Bus nehme, liefert er auch dann kein H Pegel, wenn ich mit einem Logic Analyzer die Werte prüfe. Evtl. liegt das hier aber am offenen Zustand.

    Ich habe die Chip/Select Signale geprüft - nicht, dass irgendein anderer IC des Datenbus (-segment) auf D0 zugreifen wird. C/S ist da exklusiv beim Timer.


    Ich freue mich, wenn ihr noch irgendwelche Ideen habt. Ich will das Rätsel lösen... :stupid:

    Schaltpläne sind vorhanden (noch nur als große TIF). Ich habe vor Wochen angefangen, die in KiCad zu digitalisieren - dann lässt sich leichter nach Signalen suchen. Ist aber noch nicht fertig.


    Gruß

    Mario

  • Moin fanhistorie,

    Guten Abend

    mgoegel


    Dieses pdf wirst du ja kennen,

    korrekt, zumindest hab ich 2 der gedruckten Versionen, bis eben noch nicht als PDF... ;)


    Und die Schematic - korrekt. Mit denen arbeite ich.

    Ich habe gerade erst auf KiCad 6 für den überarbeiteten Plan umgestellt, daher ist mein github repo aktuell nicht up to date...


    Das Assembler BIOS Listing zeigte mir Andreas persönlich, als er seine POST Karte abholte ;)

    In dem github Link sind da noch schöne Kommentare, die einiges näher erläutern. Deswegen hatte ich das einem simplen Auszug vorgezogen.


    Also die Basis passt, wir reden über die gleichen Dinge.

  • Guten Abend,

    mgoegel


    mit dem pdf ist leichter zu arbeiten, weil wir uns dann auf bestimmte Seiten, oder Hinweise uns beziehen können,


    was meinst du damit :

    Das ganze kommt beim Timer Test zum stoppen. Der äquivalente BIOS Code (hab gerade keinen schöneren Link zur Hand, im 1834 BIOS sind die nicht benötigten IO-DELAY Jumps nicht enthalten):

    Vorab , die Takterzeugung wirst du wahrscheinlich überprüft nachgemessen haben,

    Entsprechen diese auf deinem Board,

    OSC, 14,7456 MHz,

    CLK86, 4,9152 MHz,

    PCLK, 2,4576 MHz,


    kannst die auch aussgen , ob die Flankensteilheit , keine Abstände oder Jitter auf dem Signal sit, , soweit o.k. ist,

    CLK z.b. geht auf High bei fallender Flanke von OSC.

  • Guten Abend,

    mgoegel


    mit dem pdf ist leichter zu arbeiten, weil wir uns dann auf bestimmte Seiten, oder Hinweise uns beziehen können,

    Ja kein Thema.

    Zitat

    was meinst du damit :

    Das ganze kommt beim Timer Test zum stoppen. Der äquivalente BIOS Code (hab gerade keinen schöneren Link zur Hand, im 1834 BIOS sind die nicht benötigten IO-DELAY Jumps nicht enthalten):

    Naj, BIOS Code geht in HLT, weil er die Schleifen komplett durchläuft, weil nicht alle 8 Datenleitungen auf 1 gehen.
    Ich konnte das so halbwegs mit meinem 16 Kanal Logic Analyzer anhand der BIOS Adressen nachvollziehen, die die CPU abruft.
    Meine POST Karte bleibt dann bei "02" stehen.

    Zitat

    Vorab , die Takterzeugung wirst du wahrscheinlich überprüft nachgemessen haben,

    Entsprechen diese auf deinem Board,

    OSC, 14,7456 MHz,

    CLK86, 4,9152 MHz,

    PCLK, 2,4576 MHz,

    Hat er geprüft...

    Ich hatte gestern CLK86, PCLK und den CLK0-2 vom Timer nochmal nachgemessen und notiert:

    CLK86: 4,9175 MHz
    PCLK: 2,4588 MHz
    Timer CLK0-2: 1,2294 MHz


    Ich nehme an, die paar KHz Abweichung sollten kein Thema sein?

    Mein Zweit-Board liegt allerdings näher am Ideal. Dort war CLK86 4,915 MHz (letzte Stelle nicht notiert)

    Zitat

    kannst die auch aussgen , ob die Flankensteilheit , keine Abstände oder Jitter auf dem Signal sit, , soweit o.k. ist,

    CLK z.b. geht auf High bei fallender Flanke von OSC.

    Ich ziehe da nochmal ein Bild aus dem Oszi. Ich denke, dass kann jemand mit Erfahrung besser beurteilen als ich.
    Die Flanke ist steil, schwingt aber laut Oszi auch ordentlich nach.
    Die Abstände sahen theoretisch gut aus. Jitter konnte ich auf dem Oszi so nicht erkennen. Ich habe das jetzt aber auch nicht aktiv gemessen.

    Das CLK/OSC würde ich auch nochmal auf ein Bild ziehen.


    Schaffe ich leider heute nicht mehr. Denke das wird morgen Abend.


    Danke! :)


    Gruß

    Mario

  • Ach was, ich hab's doch noch schnell aufgebaut...


  • Heute hatte ich mal wieder einen kleinen Geistesblitz...


    Der 8253 zählt ja, basierenden auf dem PCLK, der durch D52 halbiert wird.


    Was, wenn nun an anderer Stelle der Takt irgendwo quer läuft?

    Theoretisch müsste ich mal die Takte zählen, die zwischen 2 XIOR Anforderungen liegen und das mit dem anderen Board vergleichen.


    Das sollte sich doch mit dem LA bewerkstelligen lassen.

    Vermutlich keine angenehme Tätigkeit, aber könnte mir vielleicht einen Hinweis liefern.


    Vielleicht kann ich die Zählung ja irgendwie automatisiert bewerkstelligen... Export vom LA z.B.

  • Wenn ich D0 am Timer vom Bus nehme, liefert er auch dann kein H Pegel, wenn ich mit einem Logic Analyzer die Werte prüfe. Evtl. liegt das hier aber am offenen Zustand.

    Er wird ja sicherlich vorher Kommandos bekommen. Denen fehlt dann das Bit 0, bzw. dieses ist eher zufällig. Insofern zählt er dann möglicherweise gar nicht.

    Ein offener Ausgang (und das ist D0 ja beim Lesen) funktioniert immer.


    Was du sicher machen kannst, wäre D0 über 1kOhm mit dem Bus zu verbinden. Dann kämen die Schreibdaten an und bei Lesen wäre schnell zu sehen, ob a) der 8253 ein High auszugeben versucht aber b) irgendwas anderes den Bus-D0 nach GND zieht.

  • Hi Reinhard,

    bei den geschriebenen Daten bin ich mir gerade unsicher. Ich meine aber, dass Bit 0 zufälligerweise auch beim schreiben nicht gesetzt war, oder funktionierte. Ich müsste mir die LA Traces nochmal anschauen.


    Aber die Idee ist nicht schlecht. Das würde ich auch nochmal probieren.

  • Also D0 wird hier vom Code nicht gesetzt. Ich denke, ich habe D0 auf 1 nur bei Zugriff auf andere ICs gesehen:



    Entweder bringt das mit dem 1k Widerstand was, oder halt die Takte zählen...

  • Das Board hat s73x, allerdings würde ich mal mutig vermuten, dass dieser Code in keiner Version anders ist, wenn er bis zum 286er identisch (abgesehen von den IO Delays) genutzt wird.

    Heute Nachmittag wird das mit den Takten geprüft. Mal schauen...

  • So, ich glaube, das hat mich einen Schritt weiter gebracht...

    Da ist ein deutlicher Unterschied zwischen den Boards.


    Das, welches nur gerade Zahlen liefert, ist irgendwie zu schnell - ich habe da definitiv weniger Takte, bis zum 3. IOW (Read Latch) der Schleife.



    Das funktionierende Board hat hier mehr Takte benötigt.


    Ach ja... Beide Boards haben die gleiche BIOS Version. Es kann nicht am Code liegen.

  • Guten Abend

    mgoegel


    Da du schon die Takterzeugung nachgemessen hast würde ich erst mal überprüfen, die einzelnen Pegel direkt auf dem Baustein, ob CLk0, CLK1, CLK2 gleichsinning sind, dann später ob auch Out 1übereinstimmt, dann später Out 2,

    danach das Timing der Übernahme


    Für die Mitleser

  • Guten Abend fanhistorie,


    Die Unterschiede der CLK Dauer, die man hier sieht, vermute ich in der mangelnden Leistungsfähigkeit des Logic Analyzers.

    Die Aufzeichnung läuft mit 5 MHz. Das sollte zwar eigentlich für die 2,5MHz von PCLK reichen.


    Aber was den Hinweis mit Messung der Clock Signale angeht, werde ich auf jeden Fall Folge leisten. Das Problem muss da irgendwo liegen.

    Ich hatte auch schon überlegt, einmal sämtliche ICs in dem Bus Pfad auszuwechseln - sind alle gesockelt und nur einzeln getauscht - evtl. ist es ja ein Paar, was Ärger macht.

  • Moin,


    ich bin gestern noch nicht dazugekommen...

    Beim drüber nachdenken kann der Fehler aber nicht an der Stelle liegen.


    Der Fall liegt hier ja schon bei der PCLK Erzeugung (8284?) und nicht am Timer selbst (also zwischen 8253 und dem DL074 @D52). Die Takte sind dort ja schon weniger.


    Interessant wäre jetzt der Unterschied von CLK86. Allerdings versagt der LA bei 5 MHz. Ich muss mal schauen, wie das bei 8MHz aussieht, vermutlich aber nicht besser - ich bräuchte da ja mindestens 10MHz, das schafft der aber nicht.


    Ich bin mir gerade nicht sicher, ob ich den 8284 schon getauscht hatte.

  • A0 und A1 waren bei der oberen Messung nicht angschlossen?

  • Oh ja, gut aufgepasst ;)

    Scheine ich beim Boardwechsel vergessen zu haben. Allerdings finde ich die relevante Stelle mittlerweile schon blind... ;)


    Mir fehlt da ein passender Tastkopf. Ich überlege schon eine Weile, wie ich bei solchen Messungen, mir den Vorgang erleichtern könnte.

    Nicht nur aus Faulheit, auch um solche Fehler zu vermeiden...

  • So schlecht ist mein LA (LA1010) doch nicht...

    Bis 16MHz gehen alle 16 Kanäle. Damit konnte ich auch CLK86 messen.

    Immerhin sind die Werte reproduzierbar. CLK86 hat doppelt so viele Zyklen, wie PCLK.


    Ich messe morgen nochmal die Zyklen nur zwischen den Lesezyklen und vergleiche das mit dem anderen Board, bevor ich mit anderen Messungen fortfahre.

  • ok, auf dem anderen Board sind die Zyklen auch reproduzierbar.

    Ich habe zwischen Zeilen 3 bis 9 im Code von Post 12 genau 2 CLK86 Takte weniger auf dem Board, welches nicht läuft.


    Ich habe auch mal den 8086 vom nicht funktionierenden Board auf das funktionierende Board gesteckt, um irgendwelche Unterschiede der versch. CPU Typen (Intel/NEC) auszuschließen. Das ändert nichts.


    Ich denke, ich muss wieder zurück zum CPU Takt oder in die Gegend um den 8288...

  • Guten Abend

    mgoegel


    Zu dem 8284, bzw der Takterzeugung

    Du solltest nur beachten, daß je nach Fabrikationsart ggf Anpassung siehe Schaltbild nötig sind,




    Wobei wir bisher noch kein einziges Bild von dir bekamen zwecks der Lokalisierung der Einzelbausteine /Hersteller, Date, Ausführung..., also wissen wir auch nicht ob der Orginal K1810GF82 oder der 8284

    von einem anderen Hersteller,


    Was evt interessant ist, das der K1810GF82 vom großen Bruder bezogen wurde anhand den bisherigen Quellen


    Da ich selbst kein russisch kann, habe ich ein paar Euro investiert und mir Unterlagen soweit zusammengekauft,


    Bei dem Originalen von der SU sieht man z. b. 3 Anschlüsse vom Quartz, evt Schirmung oder anderer Aufbau, aber dies nur am Rande,

    und das restliche ist selbsterklärend,


    Auf den Fotos sieht man verschiedene Hersteller, für den 8274, und weitere Bausteine welche in Linzenz gefertigt wurde,


    Zurück zu der Takterzeugung, bzw den nicht entsprechenden korrekten Flanken, und Zeitangaben,


    Schau erst mal deine Spannungsversorgung an, ob ggf dort "Gras, Jitter oder sonstiges zu sehen ist,


    Wenn nichts auffälliges, würde ich den 8284 mal Sockeln, dann den QUARTZT und den dazugehörigen Kondensator tauschen, dann direkt am Ausgang messen,

  • Moin.

    Danke @fanhistorie


    Viele Informationen... Da brauche ich einen Moment zum Verarbeiten.


    Hier ein Foto vom Board. Ich habe das etwas bearbeitet (Schärfe, Licht/Kontrast), damit man die Beschriftung besser lesen kann.


    Sämtliche Messungen passieren zur Zeit im ausgebauten Zustand. Netzteil sind 2 Labornetzteile.

    Eines ist ein Manson, das andere ein RD6018, beide neu von diesem Jahr. Ich benutze für beide Boards immer die gleiche Kombination. Ich habe die aber beide noch nicht auf Ripple, oder so, geprüft.


    Das funktionierende Board ist abweichend vom obigen. Das hat 2 ISA Slots von Werk an montiert und extrem viele Jumperwires...

    Da muss ich nochmal ein Foto von machen - heute ist mir zu kalt für die Werkstatt...


    Der 8284 auf dem funktionierenden Board ist ebenfalls ein 8284, ich weiß aber gerade nicht, von welchem Hersteller. Es war kein Siemens, hatte ich gestern Abend noch geschaut, aber jetzt schon wieder vergessen, welcher.


    Ich werde da erst nächste Woche weiter machen können. Ich fahre morgen Nachmittag übers Wochenende weg.


    Bis dahin will ich schauen, ob ich mit der Digitalisierung des Schaltplans voran komme.

  • Guten Abend

    mgoegel


    Danke für die Bilder,

    ein interessante Bauteile / Zusammenstellung,

    SEL, Siemens, Tesla,... dann Orginal SU,


    warten wir das weitere ab, :kafeee:


    Interessant ist dabei der dritte Quarz Anschluss auf welchen Pin des IC dieser wohl geht, war der Siemens Orginal oder hast du diesen schon ersetzt, oder im Kreuzvergleich getestet,


    Wenn du keine Orginal Netzteile hast, würde käme dann dann ggf. für Störungen Kondensatoren oder sonstiges auf dem Board in Frage,

  • Der Siemens hier war Original. Ich hatte nochmal geschaut. Ich meine, ich hatte noch keinen 8284 zum Tausch da.


    Ich war doch nochmal kurz in der Werkstatt und habe die funktionierende Platine schnell fotografiert.


    Die Mischung bleibt sehr kreativ ;)


    Was den 3. Anschluss des Quarz angeht - ich vermute, das ist die Abschirmung. Sieht man auch hier auf dem Foto ganz gut, dass der da mit einem Draht Masseverbindung bekommt. Narva dürfte russisch sein. ;)


    Mit den möglichen Störungen der Spannung - du meinst dann vermutlich Elkos, eher nicht die Koppel-Cs?

    Ich muss es dann nächste Woche mal mit dem Oszi messen...

  • Moin fanhistorie,

    Ja, stimmt, ich erinnere mich gerade an die Glühbirnen von Narva - hab ich vor kurzem sogar noch OVP irgendwo in der Scheune gesehen. Irgendwie kam es mir bekannt vor.


    Zu den Boards... Da muss ich Mal im robotron Forum fragen. Dich interessiert vermutlich eher nicht, wo ICH die her habe ;)

    Lötwellenverfahren musste ich auch erstmal googeln - das habe ich so auch noch nicht gehört gehabt.


    Wahnsinn, was du hier zum Thema an Infos postet. Danke für den Aufwand. Ich nehme da vieles mit.


    Diese Woche werde ich vermutlich eher nicht in die Werkstatt gehen (jedenfalls nicht lange). Bei den aktuellen Außentemperaturen ist es dann für mich dort nicht mehr sehr angenehm. Ist zwar Frostfrei, aber 5-8° sind dann nicht mehr schön. Ich werde mich weiter an die Digitalisierung des Schaltplans machen.