Suche 8 Zoll CP/M-Boot-Disketten oder ISIS-II Boot Disketten für Intellec MDS

  • Hier ein Screnshot des Logic State Analyzer, der einen groben Überblick zu den Fehler gibt.

    Zusätzlich zu den ECB-Bus Signalen sind der Datenbus und einige Control Signale des Z80 auf den FDC angeklemmt.

    Die Signale sind an einem vorangestellten "F" zu erkennen.

    Zu beachten ist, daß der Datenbus auf dem FDC und auf der CPU jeweils durch einen invertierenden Treiber (74LS640) getrieben werden.

    Aus einem Datum E4 am FDC-internen Datenbus wird ein 1B auf den ECB-Bus.

    Der FDC holt sich den ECB-Bus über BUSREQ_N und transferiert einige Bytes in den Speicher des Zielrechners.

    Dann kommt die Übertragung zum HALT. Der Schreibzyklus, in diesem Falle auf Adressse 801B des Zielrechners wird nicht beendet.


  • Während der Datenübertragung vom Speicher des FDC in den Speicher des Zielrechners, der dann abrupt endet,

    macht der Z80 auf dem FDC zwei Opcode Fetches, einen Memory-Read-Zyklus und einen Memory Write Zyklus.

    Der Z80 auf dem FDC führt hier einen LDIR-Befehls aus, Opcode = ED B0. Der Opcode wird nach jedem Transfer neu aus dem EPROM geholt.

    Nach jedem Opcode Fetch führt der Z80 auf dem FDC einen Refresh Zyklus aus.

    Komisch, der Refresh Zyklus landet nicht auf dem ECB-Bus. Liegt da ein Design Fehler vor?

    Im Moment ist das nicht wichtig. Ich verwende nur SRAM.


  • Hier ein weiterer Screenshot, der zeigt, daß die Opcodes des LDIR Befehls (ED B0) für jeden Transfer neu aus dem EPROM ausgelesen werden.


    Meine Vermutung an dieser Stelle: Die Opcodes des LDIR Befehls werden im Fehlerfall vom Z80 nicht richtig verstanden.

    Ich sehe mir das Firmware EPROM an, Es ist ein 2732 mit maximaler Zugriffszeit von 450 nsec. Ist das vielleicht zu langsam?

    In meiner EPROM-Schachtel finde ich nur Hitachi HM482732. Die kann mein TL866 EPROM Brenner nicht schiessen.

    Ich finde ein Hitachi 462532, das ich mit einem Galep 4 brennen kann. Das hat aber ebenfalls eine maximale Zugriffszeit von 450 nsec.

    Ich hole einen Notebook mit Windows 2000 hervor und brenne das 462532 trotzdem.

    Beruhigend ist, daß der GALEP 4 die gleiche Checksum anzeigt, wie auf dem Firmware EPROM aufgepinselt.

    Da sind in der Vergangenheit glücklicherweise keine Bits gekippt.

    Der Test ist ernüchternd. Mit dem neuem EPROM funktioniert der FDC überhaupt nicht.

    Ich bastele mir einen 2764 zu 2732 Adapter und schiesse die Firmware in ein 2764 EPROM mit 250 nsec Zugriffszeit.

    Damit funktioniert der FDC, aber der Fehler bei der Datenübertragung ist unverändert da.

    Ich bin auf einer falschen Spur. Später messe ich Setup- und Hold-Zeit der EPROM Daten mit dem 450 nsec 2732.

    Setup- und Hold-Zeiten sind ausreichend.

    Das ist nicht das Problem.


  • Hier ist ein Screenshot in dem ich mit 4 Markern den Zeitpunkt markiert habe, wo das Refresh-Signal des Z80 auf dem FDC eigentlich auf den ECB-Bus durchgeschaltet werden müsste. Leider passiert das nicht.

    Ich befürchte, die ECB-Bus Treiber werden nur für die Dauer der Speicherzugriffe auf den ECB-Bus geschaltet.


  • Mein Adapterprint vom 50 poligen Floppy-Kabel auf ein 34-poliges Standard PC-Floppy Kabel nervt.

    Bei den Messungen ist er dauernd im Weg und ich muss außerdem befürchten, daß er Kurzschlüsse verursacht.


    Ich bastele mir ein Adapterkabel vom 50-poligen Floppy-Anschluß auf den 34-poligen PC-kompatiblen Anschluß

    und verwende dafür ein Standard PC-Floppy-Kabel.

    Glücklicherweise sind viele Pins gleich belegt.

    An einigen Stellen muss ich Drähte trennen und anders verbinden.

  • Ich bin mit meiner Berichterstattung über das Projekt etwas in Verzug.


    Vor einigen Tagen war ich dann soweit, daß ich ehr ein analoges Problem vermutet habe.

    Ich habe zunächst einmal ein 100 nF Abblockkondensator zwischen GND und VCC des Z80 auf dem FDC geschaltet.

    Beim Z80 liegen die Pins fast direkt gegenüber in der Mitte des Baustein.

    Zu meiner Überaschung verschlimmerte sich das Problem durch diese Maßnahme.

    Das deutet darauf hin, daß sich der Abblockkondensator nicht gegen ein vernünftiges GND-potential abstützen kann.

    Ich habe dann eine differentielle Probe P6247 zwischen dem GND-Pins des ECB-Bus und dem GND-Pin des Z80 angeschlossen.

    Hier konnte ich ca. 600 mV Spitze-Spitze, ich weiss nicht wie ich es nennen soll, Ripple, Ground Bounce, gemessen.

    Dieser Schmutz wurde durch den zusätzlichen Abblockkondensator vermutlich auf den VCC-Anschluss des Z80 gekoppelt

    und hat die Probleme noch verschärft.

    Ich habe mir daraufhin die GND-Verdrahtung der FDC-Karte angesehen.

    Die Karte ist 2-lagig aufgebaut. GND und VCC werden zusammen mit den Signalen auf Vorderseite und Rückseite geführt.

    Die GND-Leitung des Z80 führt über eine schmale Verbingung zunächst vom ECB-Bus weg zur Front wird wird dann an GND angebunden

    Auch andere GND Verbindungen sind als schmale Stege ausgeführt.

    Im ersten Schritt lege ich eine GND-Verbindung vom GND-Pin des 756 Floppy Controllers zum GND-Pin des Z80 und binde

    auch alle dazwischen liegenden Bausteine an diese GND-Leitung an.

    Daneben binde ich auch den VCC-Pin des Z80 über eine Litze an eine Durchkontaktierung, die zu einer VCC-Schiene führt,

    die gut an den ECB-Bus Stecker angebunden ist.

    Durch diese Maßnehmen reduzieren sich die Störungen am GND-Pin des Z80 von ca. 600 mV auf ca 300 mV.


    Das Problem wird wesentlich entschärft.

    Ich kann ISIS-II von Diskette booten und auch ein DIR-Kommando ausführen.

    Später traue ich mich sogar, eine Datei zu kopieren.


    Allerdings ist das System immer noch nicht ganz OK.

    Manchmal bleibt es beim Booten noch hängen. Manchmal stürzt es ab und läuft im günstigen Fall auf einen Interrupt Vector,

    der noch vom Monitor besetzt ist. Manchmal kommt der Command Prompt nach einem DIR-Kommando nicht zurück.


    Die Fehlersuche muss weiter gehen.


    • Offizieller Beitrag

    daß die Opcodes des LDIR Befehls (ED B0) für jeden Transfer neu aus dem EPROM ausgelesen werden.

    Das ist vollkommen richtig so.

    Wuerde der Opcode Fetch nicht erfolgen, wuerden auch keine REFRESH Zyklen vom Z80 generiert.


    Mach mal den HALT Befehl und dschau dir das auf dem LA an. Der HALT Opcode Fetch wird unendlich oft wiederholt, wegen dem REFRESH.

    • Offizieller Beitrag

    Hier konnte ich ca. 600 mV Spitze-Spitze, ich weiss nicht wie ich es nennen soll, Ripple, Ground Bounce, gemessen.

    600mV Ground Bounce ist schon eine Hausnummer!


    Mach noch 'ne Batterie an Blockkondensatoren an die ICs, so wie beim Z80, dann denke ich laeuft's.

  • Ich frage mal als Laie, sollte nicht das Netzteil die Versorgungsspannung ohne Ripple & Noise liefern?
    Wo kommt das denn her wenn nicht vom Netzteil ?

    Ripple and Noise = Überlagerte Restwelligkeit und Rauschspannung auf einer Gleichspannung.

    Ergänzung - das ist dann doch wohl was anderes.

    Ich habe dann eine differentielle Probe P6247 zwischen dem GND-Pins des ECB-Bus und dem GND-Pin des Z80 angeschlossen.

    Hier konnte ich ca. 600 mV Spitze-Spitze, ich weiss nicht wie ich es nennen soll, Ripple, Ground Bounce, gemessen.

    Mit freundlichen Grüßen


    fritz

    Einmal editiert, zuletzt von fritzeflink ()

  • Die Stromaufnahme der elektronischen Schaltkreise ist nicht konstant, sondern kann sich rapide ändern abhängig davon, was sie gerade tun.

    Die Stromversorgung der Bausteine kann nicht immer optimal verdrahtet werden, schon gar nicht bei einer zweilagigen Platine,

    bei der die Stromversorgung sich den Platz mit den Signalleitungen teilen muss.

    Es gibt also Spannungsabfälle, die sich abhängig von den Schaltvorgängen ändern. Das führt zu Ripple auf den Versorgungsspannungen.

    Besonders groß kann die Stromänderung sein, wenn viele Ausgänge ihren Zustand gleichzeitig ändern.

    Diese Stromänderungen müssen von Abblockkondensatoren aufgefangen werden, die sich ganz nah an den Stromversorgungspins der

    Bausteine befinden sollten. Die Stromänderungen können rapide erfolgen. Um diese rapiden Stromänderungen aufzufangen müssen kleine

    (keramische) Abblockkondensatoren 10 nF, 100 nF direkt an den Pins der Bausteine platziert werden. Größere, langsame Elkos liefern dann die Energie für

    mehrere der kleinen schnellen Kondensatoren nach. Die Anschlüsse der Abblockkondensatoren zu GND und VCC müssen so kurz wie möglich sein und die Leiterbahnen sollten so breit wie möglich sein, um die Anbindung der Abblockkondensatoren so niederohmig wie möglich zu machen.

    Einmal editiert, zuletzt von NIXDAS ()

    • Offizieller Beitrag

    Anbindung der Abblockkondensatoren so niederohmig wie möglich zu machen.

    Niederinduktiv ist sogar NOCH wichtiger.

    Die Induktivitaet verhindert die notwendige Stromänderung.


    Aber beides, niederohmig und niederinduktiv, erreicht man durch die gleichen Massnahmen, wie du beschrieben hast.

    Sehr gute Beschreibung!

  • Ich frage mal als Laie, sollte nicht das Netzteil die Versorgungsspannung ohne Ripple & Noise liefern?
    Wo kommt das denn her wenn nicht vom Netzteil ?

    Ripple and Noise = Überlagerte Restwelligkeit und Rauschspannung auf einer Gleichspannung.

    Ergänzung - das ist dann doch wohl was anderes.

    Ich habe dann eine differentielle Probe P6247 zwischen dem GND-Pins des ECB-Bus und dem GND-Pin des Z80 angeschlossen.

    Hier konnte ich ca. 600 mV Spitze-Spitze, ich weiss nicht wie ich es nennen soll, Ripple, Ground Bounce, gemessen.


    Ein paar Anmerkungen:


    NIXDAS hat gemessen den Offset des Massepotentials zwischen GND am Bus und am Z80, 0.6V

    TTL-Bezugspegel für "0" ist max. 0.8V.

    Alleine durch den Spannungsabfall von "Masse" zu "Masse" ergibt sich schon, dass die "0"- Signale im grenzwertigen/undefinierten Bereich >=0.8V sein müssen.


    Weiterhin ist davon auszugehen, dass der Gesamt-Spannungsabfall dann bei 2x~0.6V liegt, resultierend in Vcc von nur noch 3.8V - auch schon ausser Spezifikation.


    Schliesslich wirft sich die Frage auf - warum zeigen sich erst nach 40 Jahren Probleme? Und da würde ich eben, wie fritzeflink schrieb, mir auch mal das Netzteil ansehen. Dort sollte man sich mal ansehen, wie der Ripple auf 50Hz ausschaut, sowie auf ~50-200kHz, falls Schaltnetzteil.

    Meine persönliche Mutmassung ist ja, dass beim "neuen" Gerät der Fehler noch unterhalb der "Triggerschwelle" war, weil die Netzteilkondensatoren noch gut waren.


    Meiner Erfahrung schadet da nie, bei Längsnetzteilen die Ladekondensatoren grösser zu dimensionieren als die seinerzeit üblichen 2200-4700uF/Ampere. Das reduziert Netzripple massiv, und bereitet auch keine Platzprobleme, da moderne Elkos bei gleicher Baugrösse eine viel grössere Kapazität bieten. Die langsamen Glättkondensatoren durch Low-ESR-Typen zu ersetzen dürfte auch nicht schaden.

    Bei Schaltnetzteilen kann man die Kapazität auch grösser machen, sollte es damit aber nicht übertreiben (vielleicht einen E-Reihen-Schritt grösser, z.B. 2700 statt 2200uF).


    Generell finde ich, man kann sich als vernünftigen Masstab die ATX-Spezifikation nehmen, welche für 5V eine Toleranz 4.75-5.25V und einen Ripple (egal welche Frequenz) von max. 50mV p-p gestattet.

    .

    Sehr gute Beschreibung!

    Finde ich auch!

    Der Beitrag wäre durchaus was für unsere Wissensdatenbank.

    Volle Zustimmung!

    Meiner Meinung nach fehlen in der Wissensdatenbank einige Grundlagen-Rubriken, die systemunabhängig sind und wo meiner Beobachtung nach z.T. haarsträubende Kenntnislücken bestehen bei dem einen oder anderen Forumsmitglied:


    -Richtiger Versand (hier zum Thema Monitorversand)

    -ESD

    -Stromversorgung

    -Grundlagen elektrische Sicherheit

  • Der Hinweis auf das Netzteil ein weiterer guter Ansatz.


    Alles fing damit an, daß ich meinen alten Rechner eines Tages von seinem Platz ganz oben auf dem Schrank im Keller herunter geholt habe.

    Ich habe den Rechner ohne weitere Überprüfung eingeschaltet. Damals waren die Boot-Floppies bereits einer Aufräum-Aktion zum Opfer gefallen.

    Das ungewöhnlich serielle Anschlußkabel 15-polig auf 9-polig existierte noch.

    Der Rechner startete noch, die POST-Codes in der Hex-Anzeige zählten hoch, aber außer ein paar Monitor-Kommandos auszuprobieren konnte ich ohne Boot Floppies nichts tun.

    Schon kurze Zeit später löste sich ein Kondensator im Netzteil in eine riesige Rauchwolke auf. An der Rückseite des Gehäuses sind die Schmauchspuren

    heute noch zu sehen. Das Problem konnte noch schnell gelöst werden. Einen passenden Kondensator hatte ich noch liegen.

    Leider hielt die Freude nicht lange an. Schon nach einigen weiteren Stunden stelle das Netzteil seinen Dienst sang und klanglos ein.

    Die Sicherung ist OK. Ohne Schaltplan kann ich nichts ausrichten. Trotz des Alters, ich schätze, daß es aus den 70-er Jahren stammt.

    handelt es sich um ein Schaltnetzteil. Das schöne an dem Netzteil war, daß es neben den 5 Volt und einer negativen Spannung die 24 Volt

    für die Floppy-Laufwerke erzeugt hat. Die anderen Spannungen, + 12 Volt, -12 Volt, -5 Volt habe ich durch Längsregler erzeugt.


    Ich habe das Netzteil provisorisch durch ein Netzteil mit ATX-Anschluss (Delta DPS-160KB-2) aus einem kleinen PC-Server ersetzt.

    Natürlich sind alle Verbindungen jetzt ein Stück länger geworden und der ATX-Stecker ist auch zusätzlich hinzu gekommen.


    Ich wollte Gehäuse des alten Netzteils irgendwann ausräumen und ein oder zwei kleine Schaltnetzteile von der Stange dort einbauen.

    Das alte Netzteil mit seinen Kühlrippen ist einfach viel dekoratives als das Provisorium.

    Leider finde ich es im Moment nicht wieder.


    Wie misst man Ripple am besten?

    Ich habe es mir im ersten Ansatz einfach gemacht, eine Probe auf der Backplane angeklemmt und AC-gekoppelt gemessen.

    Auf diese Weise messe ich etwa 150mV Ripple auf der Backplane.


    Ich hänge ein Bild des provisorischen Netzteils an.

    Die Festplatte dient als Grundlast.

    Das Teil mit den Kühlrippen ist ein 12 Volt auf 24 Volt Wandler.


    Der Lüfter des Netzteils trägt nichts zur Kühlung des Rechners bei.

    Ich wollte das Gehäuse nicht durch einen Ausschnitt für den Lüfter verändern.

    • Massebezugspunkt ist der Masseverteiler in Netzteil. Ohne Spannungsabfall abgreifbar z.B. durch unbelastetes Molex/Floppy-Kabel. Steht kein solches zur Verfügung, kann man z.B. eine der Masseleitungen im Laufwerkskabel trennen, um direkt spannungsabfallfrei abgreifen zu können auf den Masseverteiler. Wird Masse woanders (mit Spannungsabfall) abgegriffen (z.B. am Backplane), sind die Messergebnisse nur von bedingtem Aussagewert.
    • Eine der Schwierigkeiten beim Netzteiltesten ist das Verhalten bei Laständerungen. Denn da kommt es zu, sagen wir mal "störenden Unregelmässigkeiten". Bei 150mV schon im statischen Betrieb bei Abgriff an Backplane, deutet das auf real erheblich höhere Schwankungswerte hin.
    • Die AC-Kopplung hat den Nachteil, dass sie nur den Ripple ([Rest]Welligkeit) durchlässt, aber Sags (Spannungseinbrüche) versteckt.
    • Das "Ersatz-Netzteil" bestehend aus schwer 12V-lastigem NT und DC-DC-Wandler ist meines Dafürhaltens nicht gerade optimal. Kleine Lastschwankungen auf 12V haben viel stärkere Auswirkungen auf 5V. Grosser Kühlkörper deutet auf vermutlich geringen Wirkungsgrad des DC-DC-Wandlers und damit erhöhte Systembelastung hin.
    • 24V-Last geht bei Betrieb Floppy hoch. Dann taktet der DC-DC-Wandler hoch. 12V bricht ein, parallel dazu die anderen Spannungen. Wie das NT die 12V wieder einregelt, schwingen die anderen Spannungen überproportional. Die Auswirkungen davon wurden durch die Installation der Abblockkondensatoren gemindert. Frage: was ist das für eine komische Schwingung von ca. 1.4-1.6ms Periodendauer, am besten erkennbar im letzten Foto? Ist die immer konstant oder sieht das anders aus, wenn z.B. der Floppymotor anläuft?
    • Also ich würde da schon das alte NT heraussuchen. Den "Primärteil" 230->24V kann man sich als billige Meanwell-LED-Beleuchtung kaufen, oder man nimmt ein gängiges zigarettenschachtelgrosses Laptop-NT 24V 5A. Der Längsteil könnte ja weiterbenutzt werden, eine Fehlersuche dort wäre auch ohne Schaltplan einfach.
    • Die grosse Sendeschleife da in freier Luft zu betreiben, mit mehreren Ampere Breitspektrum-HF, das nochmal zu überlegen würde ich auch als anratenswert erachten. Mitunter macht das nämlich die lieben Beamten im Peilwagen neugierig, auf einen Besuch vorbeizukommen und darauf zu bestehen, von Amts wegen die vor Ort vorgefundenen Gerätschaften auf zulässige RF-Emissionswerte zu prüfen. Das ist nur dann kostenfrei, wenn kein Gerät vorgefunden wird, das die zulässigen Emissionswerte überschreitet. Ansonsten liegt der "gängige Einstiegspreis" bei einigen tausend Euro.
  • Ich habe inzwischen einen neuen Testaufbau mit einer 4-fach ECB-Backplane gebastelt, die von einem Vero Trivolt PK60 Netzteil versorgt wird.

    Der Floppy Controller steckt ganz rechts.

    Die darauf bestückten IC sind nur problemlos durch eine Oszilloskop Meßspitze zu erreichen, ohne die Karte für jede Meß-Adaption

    aus dem Gehäuse ausbauen zu müssen.


  • Die Rückseite der Floppy Controller-Karte hat inzwischen einige zusätzliche keramische 100 nF Abblockkondensatoren bekommen.

    GND- und VCC-Leitungen wurden weiter vermascht.

    An zwei Stellen, wo zwei 100 nF Abblockkondensatoren unmittelbar nebeneinander platziert waren, wurde jeweils einer durch einen 10 uF Elko ersetzt.

    Nahe dem Z80 wurde ein 3,3 uF Tantal-Elko durch einen 100 uF Elko ersetzt.


    Auf dem folgenden Bild beachte man die dünne Leiterbahn, die vom Masseanschluss des Elkos in Richtung des ECB-Bus Steckers führt.

    Das ist die Masseleitung des Elkos und des 100 nF Abblock-Kondensators.

    Die Induktivität einer dünnen Leitung wie dieser macht den 100 nF Abblock-Kondensator zumindest teilweise unwirksam.

    Abblock-Kondensatoren müssen immer zu kurz wie mögich und so dick wie möglich an das abzublockenden Bauteil und an GND und VCC angeschlossen werden.


  • Bei der Durchsicht der Schaltung habe ich zwei offene Eingänge, IC6 Pin 17 und Pin 2, entdeckt.

    Offene Eingänge können dazu führen, daß die Ausgänge unkontrolliert schalten.

    Noch schlimmer ist, daß die Ausgänge oszillieren können.

    Deshalb sollten offene Eingänge immer auf einen definierten Pegel gelegt werden.

    Das geschieht entweder durch eine Drahtbrücke nach GND oder über einen Pull-Up-Widerstand

    gegen VCC. Eine direkte Verbindung von Eingängen nach VCC ist nicht zu empfehlen.

    Die Eingänge vom CMOS Bauelementen sind mit ESD-Schutzdioden beschaltet.

    Spannungsspitzen auf der Versorgungsspannung können die Eingänge in den Latch up bringen,

    wobei die ESD-Schutzdioden permanent durchgeschaltet sind.

    Dieser Zustand lässt sich erst beenden indem die Spannungsversorgung abgeschaltet wird.

    Eingänge werden durch den Latch Up Effekt auf ein bestimmtes Potential, high oder low, geklemmt.

    Sie können beschädigt werden und im schlimmsten Fall zerstört werden.





    Bei der Lakosa FDC-Karte wurde keine Verbesserung durch diese Maßnahme erzielt.

    Einmal editiert, zuletzt von NIXDAS ()

    • Offizieller Beitrag

    Deshalb sollten offene Eingänge immer auf einen definierten Pegel gelegt werden.

    Bei CMOS ein MUSS !

    Bei TTL (Standard, LS etc, aber NICHT HC, HCT) wird der Eingang immer gegen VCC getrieben (PullUp oder Emitter). Da kann man offene Eingaenge dulden, wenn der Ausgang nicht beschaltet ist. Schoen ist es aber nicht.

  • Sehe ich da einen LS374 doppelt huckepack gelötet?


    Was macht das Teil?

    Ist das "doppelt gemoppelt" vielleicht ein Versuch gewesen, den Fan-Out zu erhöhen?

    Ist da nicht eigentlich bessere Praxis, einem Chip zu verwenden, welcher von Haus aus besseren Fan-Out hat? (F, S, ...)?


    P.S.: Instruktiver und lehrreicher Bericht von der Überholung :thumbup:

  • Als ich die Floppy Controller Karte gekauft war Lakosa gerade dabei die Karte aufzubohren.


    Es gibt zwei Disketten Bänke, Bank 0 und Bank 1. Jede Bank hat ein eigenes Status Register.

    Die zweite Bank kam später hinzu und Lakosa hat das Status Register der zweiten Bank huckepack über

    das Status Register (74LS374) der ersten Bank gelötet.

    Beide 74LS374 sind bei VCC, GND, Inputs und bei den Outputs miteinander verbunden.

    Die Clock Inputs und Output-Enable Inputs beider Bausteine werden getrennt angesteuert.

    Der Clock Input und Output-Enable Input des oberen Bausteins ist über Fädeldrähte verbunden.

    Genauso sind die Steuersignale der Motoren über Fädeldrähte nachträglich verdrahtet.

    Ich denke Lakosa hat das PCB später bereinigt oder hatte vor, das PCB später zu bereinigen.

    Ich habe noch eine Prototypenversion.

    Einmal editiert, zuletzt von NIXDAS ()

  • Ich habe beim Z80 Datenbit 0 begonnen, einige Signale auf dem FDC zu kontrollieren.

    Schon bei der ersten Messung gefällt mir etwas nicht.

    Im nachfolgenden Bild ist der Fehlerfall gezeigt.

    Der Z80 transferiert eine Reihe vom Bytes vom FDC-Speicher in den Speicher des Z80 am ECB-Bus.

    Irgendwann endet der Transfer vorzeitig. Das WR_N Signal des Z80 auf dem FDC bleibt ständig auf low.

    Der Z80 auf dem FDC macht zwei M1 Zyklen, um den LDIR-Befehl aus dem EPROM zu holen.

    Nach jedem Opcode Fetch erfolgt ein Refresh Zyklus.

    Beim ersten Refresh Zyklus ereicht DO einen Signalpegel vom ca 4 Volt.

    Beim zweiten Refresh Zyklus erreicht D0 nur einen Signalpegel 1,5 Volt.




    Meine erste Vermutung war, daß während des zweiten Refresh Zyklus ein anderen Teilnehmer auf den Datenbus geschaltet wird.


    Im unteren Teil des Bildes wird ein gezoomter Ausschnitt der Signale am oberen Rand des Bildes gezeigt.

  • Ich habe inzwischen alle Bausteine geprüft, die während des Refresh-Zyklus auf den Datenbus geschaltet werden könnten

    mit dem Ergebnis, daß während der Refresh Zyklen keiner der Bausteine auf den Datenbus geschaltet wird.

    Der Datenbus des Z80 wird während des Refresh-Zyklus in den hochohmigen Zustand geschaltet.

    Wenn nun ein Datenbus-Bit vor dem Refresh-Zyklus auf HIGH-Pegel war. so floatet es während des Reflesh Zyklus

    noch ein wenig höher in Richtung VCC. Wenn aber ein Datenbus-Bit vor dem Refresh-Zyklus auf LOW-Pegel war.

    so floatet es während des Reflesh Zyklus ebenfalls ein wenig höher in Richtung VCC, erreicht aber nur einen Pegel von 1,5 Volt - 2 ,5 Volt.

    Die im vorherigen Bild beobachtete Signalform ist also nicht ungewöhnlich sondern zu erwarten.

  • Während der Messungen am Dekodier-PROM IC18 ist mir das Signal 8LTCH_N aufgefallen.

    An diesem Signal sind unerwünschte Einbrüche zu erkennen, die man schon nicht mehr als Glitches bezeichnen kann.

    Das Signal 8LTCH_N schaltet das 8-Bit Status-Register des Floppy Disk Bank 1 auf den ECB-Bus (Output Enable, low-aktiv).

    Offenbar gibt es Glitches am Ausgang des Dekodier-PROMs während sich die Eingänge des PROMs ändern.

    Die Impulsbreite ist so lang, daß das Status Register (74LS374) zumindest kurzeitig auf dem ECB-Bus aufgeschaltet werden kann.

    Das kann zu Bus-Contention führen. Zumindest erzeugt dieses Verhalten unerwünschte Aktivität im Rechner.

    Das Verhalten tritt während des Datentransfers vom Floppy Controller zum Speicher des ECB-Rechners auf und zwar

    nur so lange wie ein Interrupt von uPD765 Floppy Controller aktiv (high) ist.


  • Die Glitches treten nur auf, während der Interrupt vom uPD765 Floppy Controller ansteht.



    Das FDC_INT-Signal ist active high und nur auf dem Screenshot falsch bezeichnet.


    Die Glitches treten auf, wenn sich Eingänge ändern, wie hier ECB_A0.



    Ich habe den Inhalt des original Dekodier-PROMs analysiert und auf ein GAL16V8BLQ umgesetzt.







    Das 20-Polige GAL konnte ich durch einen 20-poligen Zwischenssockel auf das 18-polige PROM adaptieren.

    Lediglich Pin 9 (GND), Pin10 und PIN11 des 20-poligen Zwischensockels mussten durch einen Drahtbrücke verbunden werden.

    Einmal editiert, zuletzt von NIXDAS ()

  • Am Signal 8LTCH_N kann ich nach dem Umbau keine Glitches mehr messen.


    Das GAL ist nicht in der Lage den Ausgang vollständig auf LOW-Pegel zu treiben.

    Vor der Modifikation war es noch schlimmer. Das Dekodier-PROM konnte das Signal nur auf ca. 500 mV treiben.

    Vielleicht werde ich die Pull-Up-Widerstände, die für das Dekodier-PROM zwingend erforderlich waren, irgendwann entfernen.

    Dummerweise befinden sie sich zusammen mit anderen Pull-Up-Widerständen in einem 8-fach Widerstandsarray.

    Im Schaltplan ist der Wert der Pull-Up-Widerstände mit 330 Ohm angegeben. Bei gezogenen PROM bzw. PLD messe ich etwa 450 Ohm gegen VCC.

    Es handelt sich wohl eher um 470 Ohm Pull-Up-Widerstände.



    Die Stabilität des Floppy Controllers konnte durch die Maßnahme leider nicht verbessert werden.