FDD Spannungs- und Strompegel (INPUT/OUTPUT)

  • Ein YouTube Video von George Foot hat mich dazu animiert, etwas mit meinen FDDs zu spielen.

    https://www.youtube.com/watch?v=t-Cblankxqc

    D.h. ich werde relevante Pins vom 34-pin PCB edge connector auf ein Breadboard connecten und diverse Settings testen. Aus Sicherheitsgründen fange ich mit einem 5,25" Drive an, da mir das Risiko etwas kaputt zu machen bei meinen 8" FDDs zu groß ist und bei den 3,5" FDDs sieht man nichts von den Kopf-Bewegungen.

    Daher habe ich einige Sicherheitsfragen. GND des FDDs und des Breadboards müssen verbunden werden. Macht für mich Sinn. Die hochohmigen Eingänge wie MOTEA#, DRVSA und STEP# sollten bei 0V bis max. 5V eher unproblematisch sein und können bei Bedarf direkt auf GND gelegt werden (ohne das etwas kaputt geht)? Kritisch sind da wohl eher die (Open Collector - Active Low ???) Ausgänge wie TRK0# und INDEX#, die im Video LEDs ansteuerten. Natürlich mit Vorwiderstand zur Strombegrenzung, aber das mit dem "Pull Up" verstehe ich nicht ganz. Bei "Active Low" auf Seiten des FDDs müsste doch das andere Ende der LED (inklusive Vorwiderstand) mit +5V verbunden werden? Oder sehe ich das falsch? Leider waren diese Details im Video nur sehr verschwommen erkennbar. Auch RDATA , welches ich mit dem Oszi verbinden will, muss offenbar auch irgendwie mit einem Pull Up versehen werden.

    Gibt es da (von den Spannungspegeln her) signifikante Unterschiede zwischen 8", 5,25" und 3,5" FDDs ?

  • Pull up bedeutet ja über einen Widerstand mit +5V verbinden.

    Der Widerstand variiert ja nach Anwendung. Entscheidend ist dafür der Ausgang, an den der Pullup gelegt wird.

    Der Pullup legt den +5V Pegel an. Wenn der Ausgang aktiv wird, zieht er den Pegel nach GND. Welchen Strom der Ausgang nach GND ziehen kann, bestimmt wie groß der Widerstand mindestens sein muß, um den Ausgang nicht zu überlasten.

    Bei alten Floppylaufwerken findet sich das normalerweise in der Doku.

    In diesem System eine Leitung fest auf GND zu legen, um sie zu aktivieren, ist völlig OK.


    (Ältere) 5,25" und 8" Laufwerke verhalten sich diesbezüglich weitgehend gleich, manche der vorhandenen Signale unterscheiden sich aber.

    +++ ATH

  • Danke. Ich weiß, das sind Anfängerfragen, aber aus Respekt vor der alten Technik wollte ich nichts aus Versehen abrauchen lassen. Im Video werden einfache manuelle Schritte gezeigt, bei denen etwas am Breadboard eingesteckt und dann per LED oder Oszilloskop angezeigt wird. Natürlich wäre der nächste Schritt, das FDD mit meinem Arduino Mega ansteuern, aber ich hatte auch hier im Hinterkopf, dass es Pegelprobleme gibt, die berücksichtigt werden müssen.

  • Die hochohmigen Eingänge wie MOTEA#, DRVSA und STEP#

    Die Eingaenge sind aber nicht hochohmig.

    Alle Eingaenge (Floppylaufwerk und Controllerseite) haben Pullups, alle Ausgaenge sind Open-Collector.

    Aus den 8 Zoll Laufwerken und auch noch lange bei den 5 1/4 Zoll hatten die Pullups 150 Ohm. Im Uebergang nach 3,5 Zoll wurden es mehr.


    Die Eingaenge kannst du direkt auf GND legen, kein Problem. Wenn du die aber aus einem Microcontroller o.ae. ansteuerst sollte der Ausgang bis zu 33mA Strom aufnehmen koennen, sonst klappt das evtl. nicht oder du machst vielleicht etwas kaputt.

    ;------------------------------------
    ;----- ENABLE NMI INTERRUPTS
    (aus: IBM BIOS Source Listing)

  • Guten Abend

    frank128


    Hast du noch ein Model, oder eine Bezeichnung des 5,25 Floppy Laufwerkrs


    Bezogen auf deine Frage :

    Ich würde für die Pegel

    bei den Ausgängen z. B ein 74LS274, oder ein 74LS240 vorsehen, hat auch weitere Sicherheits Vorteile,

    als Beispiel ein paar Screens aus dem ITT3030 Servicemanual




    Wenn du ggf später Steppen, oder auch lesen möchtest, (wegen dem Timing) solltest du dir den FD1771 bzw später genannt WD1771 mal ansehen

  • Die hochohmigen Eingänge wie MOTEA#, DRVSA und STEP#

    Die Eingaenge sind aber nicht hochohmig.

    Das die Eingaenge hochohmig sind, hatte ich nur vermutet. Danke für den Hinweis.

    Zitat

    Alle Eingaenge (Floppylaufwerk und Controllerseite) haben Pullups, alle Ausgaenge sind Open-Collector.

    Bei meinen Tests dieses Wochenende habe ich auf dem Breadboard die FDD Eingänge nur zwischen "hochohmig" (praktisch mit nichts verbunden) und GND geschaltet. Bei den Ausgängen hatte ich Anfangs mit einem 5KOhm Widerstand ein Pullup gemacht, bin dann auf 500Ohm gewechselt, da die Read Data Leitung eine ganze Menge Störungen auf dem Oszi anzeigte.

    Zitat

    Aus den 8 Zoll Laufwerken und auch noch lange bei den 5 1/4 Zoll hatten die Pullups 150 Ohm. Im Uebergang nach 3,5 Zoll wurden es mehr.

    Gut zu wissen. Im Video hatte George Foot auch 150 Ohm Widerstände erwähnt.

    Zitat

    Die Eingaenge kannst du direkt auf GND legen, kein Problem. Wenn du die aber aus einem Microcontroller o.ae. ansteuerst sollte der Ausgang bis zu 33mA Strom aufnehmen koennen, sonst klappt das evtl. nicht oder du machst vielleicht etwas kaputt.

    Du meinst, es könnte auf Seiten des Mikrocontroller etwas kaputtgehen?

  • Hast du noch ein Model, oder eine Bezeichnung des 5,25 Floppy Laufwerkrs

    Derzeit teste ich mit einem TEAC FD-55BR 100-U

    Zitat

    Ich würde für die Pegel

    bei den Ausgängen z. B ein 74LS274, oder ein 74LS240 vorsehen, hat auch weitere Sicherheits Vorteile,

    Die müsste ich mir noch besorgen, ist aber sicher eine gute Idee.

  • Du meinst, es könnte auf Seiten des Mikrocontroller etwas kaputtgehen?

    Es kann, muss aber nicht.


    Selbst wenn nichts kaputt geht, kann es sein das der Low-Pegel (an einem Eingang) nicht anstaendig erreicht wird.

    Selbst die o.g. LS240 koennen nur 24mA (bei 0,5V), sind also somit auch zu schwach.

    ;------------------------------------
    ;----- ENABLE NMI INTERRUPTS
    (aus: IBM BIOS Source Listing)

  • Hier ein paar Bilder von meinem Testaufbau. Am Oszi liegt auf Kanal 1 der Index Impuls, auf den ich mit fallender Flanke triggere. Auf Kanal 2 liegt Read Data (mit Pullup). Leider sehen die Anzeigen auf dem Oszi bei Read Data nicht gut aus (bei normal formatierter MFM Disk). Ich habe kurzerhand einen Track mit 100KHz und einen anderen mit 50KHz Rechteck Signalen beschrieben (Write Gate auf GND, Rechteck Generator auf Write Data) und siehe da, das kann man dann tatsächlich gut von der Diskette zurück lesen (fdd-test-05.jpg,fdd-test-06.jpg).

  • Du meinst, es könnte auf Seiten des Mikrocontroller etwas kaputtgehen?

    Da Du mehrere Ausgänge gleichzeitig auf LOW ziehen musst, addieren sich die Ströme! Das kann den Arduino "ins Schwitzen" bringen oder gar zerstören. Musst Dir die maximalen Werte vom Arduino ansehen (auch die Summe der Signale). Falls Du einen Nachbau verwendest (IDUINO, etc.) kann es sein, dass diese noch weniger Strom liefern können.


    Schau Dir doch die Schaltung von FLUXTEEN an: Schaltplan FLUXTEEN


    Ich verwende dort ULN2003A als Treiber für die Open Collector Leitungen. Diese sind sehr stark und können die Leitungen problemlos auf LOW ziehen. Auf der Eingangsseite musst Du aufpassen, dass der ARDUINO die 5 Volt verträgt (nicht nur an der Stromversorgung). Beim verwendeten TEENSY 4.1 ist das nicht der Fall (kann nur 3.3 Volt), daher mussten am Eingang entsprechende Pegelwandler vorgesehen werden.


    Zu Deinen "Frequenz-Experimenten" ist anzumerken, dass die Floppylaufwerke nur einen begrenzten Frequenzbereich vertragen. Ist die impulslänge zu groß, dann wird nichts aufgezeichnet und beim Einlesen von der Floppy bekommst Du dann ein "Rauschen". Sind die Impulse zu kurz, dann geht es auch nicht richtig. Du kannst Dich an die üblichen Impulslängen halten: ca. 1µsec bis ca. 12µsec.


    Ansonst wünsche ich noch Gutes Gelingen!


    PAW

  • Zu Deinen "Frequenz-Experimenten" ist anzumerken, dass die Floppylaufwerke nur einen begrenzten Frequenzbereich vertragen. Ist die impulslänge zu groß, dann wird nichts aufgezeichnet und beim Einlesen von der Floppy bekommst Du dann ein "Rauschen". Sind die Impulse zu kurz, dann geht es auch nicht richtig. Du kannst Dich an die üblichen Impulslängen halten: ca. 1µsec bis ca. 12µsec.

    Der Rechteck Generator auf dem ELV "Experimentierboard" ging nur bis maximal 100KHz. Daher hatte ich nur 100KHz (10µsec) und 50KHz (20µsec) getestet. Die Ergebnisse waren aber OK. Ich habe bei mir auch noch einen Funktionsgenerator rumliegen, der bis 500 KHz abdecken sollte ...

  • Guten Morgen

    frank128


    Nur als Rückinfo, wegen deinem Hinweis zu dem festen Termination,

    Erstelle bitte noch Bilder von dem Laufwerk, der Platine, der Steckbrücken um zu überprüfen, ob ggf die Termination sich aufgeben lässt,


    Wie du sicher weißt, da feste Termination, nur als Einzellaufwerk spezifiziert,,

    wenn falls du mit 2 Laufwerken arbeiten möchtest, muss dieser dann entfernt, bzw auf dem Abschluss Laufwerk reduziert werden,


    Als Beispiel ein paar Bilder

    FD55-BR-528,

    Man sieht das bei diesem Model die Termination steckbar ist, statt wie bei einem Laufwerk 1 KOhm,

    wurde reduziert auf 330 Ohm.

    d. h. 7 * 330Ohm,

    falls du diskrete Widerständen einsetzten willst,


  • Nur als Rückinfo, wegen deinem Hinweis zu dem festen Termination,

    Erstelle bitte noch Bilder von dem Laufwerk, der Platine, der Steckbrücken um zu überprüfen, ob ggf die Termination sich aufgeben lässt,


    Wie du sicher weißt, da feste Termination, nur als Einzellaufwerk spezifiziert,,

    wenn falls du mit 2 Laufwerken arbeiten möchtest, muss dieser dann entfernt, bzw auf dem Abschluss Laufwerk reduziert werden,


    Ich nutze das TEAC FD-55BR 100-U nur als Einzellaufwerk, hatte es aber früher mal in einer Kryoflux Box (ex SCSI Tapedrive Gehäuse mit Kryoflux Karte) mit einem anderen Laufwerk zusammen genutzt. Ich muss gestehen, das ich dabei an die Terminierung nicht gedacht hatte. :(

    Ich werde morgen mal ein paar Bilder vom TEAC FD-55BR machen.

  • Ich muss gestehen, das ich dabei an die Terminierung nicht gedacht hatte. :(

    Das Thema Terminierung ist bei Floppylaufwerken vollkommen überbewertet. Und das ist ist kein Scherz.


    Terminierung ist in der Hochfrequenztechnik unumgänglich.

    Und Signale bei Floppylaufwerken sind weit von Hochfrequenz entfernt. Auf jeden Fall bei aktuellen Kabellängen.

    500 kbit/s (HD-Disketten) entspricht 250kHz. Bei Kabellängen von weniger als 2m ist das annäherend Gleichspannung.


    Daher ist es bei Floppylaufwerken egal an welcher Stelle die Terminierung ist. Auch darf sie 1kOhm sein.

    ;------------------------------------
    ;----- ENABLE NMI INTERRUPTS
    (aus: IBM BIOS Source Listing)

  • Zitat von PAW

    Da Du mehrere Ausgänge gleichzeitig auf LOW ziehen musst, addieren sich die Ströme! Das kann den Arduino "ins Schwitzen" bringen oder gar zerstören.

    Das hatte ich schon befürchtet. Mich wundert, das die FDD -> FDC Kommunikation über das 34 Pin Kabel so stromlastig konzipiert wurde.

    Zitat von PAW

    Ich verwende dort ULN2003A als Treiber für die Open Collector Leitungen. Diese sind sehr stark und können die Leitungen problemlos auf LOW ziehen.

    Wenn ich dann noch Zusatz-Schaltkreise benötige, warum nicht auch gleich einen vollwertigen Floppy Controller wie den WD37C65B verwenden? Der sollte doch die Stromlast bewältigen können? Das Problem wäre dann eher, den FDC durch den Ardunio ansteuern zu können.


  • Wenn ich dann noch Zusatz-Schaltkreise benötige, warum nicht auch gleich einen vollwertigen Floppy Controller wie den WD37C65B verwenden? Der sollte doch die Stromlast bewältigen können? Das Problem wäre dann eher, den FDC durch den Ardunio ansteuern zu können.


    Kommt darauf an, was Du damit machen möchtest. Der WD kann bestimmte Standardformate (mehr oder weniger PC-kompatibel, FM, MFM, soft sektoriert) bearbeiten. Für einen C64 oder Apple geht das schon nicht. Allerdings wirst Du mit einem Arduino aufgrund der relativ niedrigen Taktrate von 16MHz auch nicht sehr weit kommen. Deshalb habe ich mich für den TEENSY 4.1 entschieden, welcher mit 600MHz läuft! Dieser ist wie der Arduino zu programmieren (gleiche IDE, aber mit Zusatzprogramm für TEENSY).


    PAW

  • warum nicht auch gleich einen vollwertigen Floppy Controller wie den WD37C65B verwenden? Der sollte doch die Stromlast bewältigen können?

    Nein, tut er nicht.

    Weiterhin kommen aus dem Floppycontroller nur Signale wie WriteGate, WriteData, Step und Direction. Signale wie DriveSelect und SideSelect musst du dir i.a selber generieren.

    ;------------------------------------
    ;----- ENABLE NMI INTERRUPTS
    (aus: IBM BIOS Source Listing)

  • Zitat von PAW

    Da Du mehrere Ausgänge gleichzeitig auf LOW ziehen musst, addieren sich die Ströme! Das kann den Arduino "ins Schwitzen" bringen oder gar zerstören.

    Das hatte ich schon befürchtet. Mich wundert, das die FDD -> FDC Kommunikation über das 34 Pin Kabel so stromlastig konzipiert wurde.

    Guten Abend

    frank128


    Zu deiner Frage :

    Du musst dir die damalige Technik, um 1973-1976 und die dazugehörigen Dimensionen der Schaltschränke,

    Bauteile, Einsatzort, Verwendung... dir vorstellen


    Anhand meinen Info hat damals IBM oder besser geschrieben eine damalige Interessenvereinigung mit aktiver Beteiligung von Herstellern wir IBM, Singer... ) sich damals stark "inspirieren", ließen von der Shugart Schnittstelle, (Input 40mA) multiplex


    dies ist, war ausgelegt für 4 Laufwerke,

    mit 10 feet von Host zu Drive 0,

    entweder einfach Ribon oder tweast Pair,


    (Flachbandkabel so wie du es heute kennst, gab es damals (noch) nicht,

    10 feet sind > 300cm, und wenn du über dieses Länge mit TTL Bausteinen aktiv agieren willst, haben wohl die 40mA sich auch bewährt,


    Bei Interesse kann ich morgen, noch ein paar Screens posten,


    Abschließend auch wenn wir mal wieder ot sind,

    Es gab aber nicht nur die Shugart Schnittstelle, (welche allmählich zum Standart wurde, sondern wenn man auch die damaligen "militärischem" Geräte, Baugruppen hinzuzieht, auch schon anderes mit ganz anderen Konzepten,


    vieles was später in der Computer Technik verbreitet Verwendung fand, hat mit Sicherheit auch irgentwo technische Vorläufer, angefangen von der PC- Netzteil Technik, den Steckern, Leiterplatine, Design, allgemeine Halbleiterbauggruppen usw

  • Nur als Rückinfo, wegen deinem Hinweis zu dem festen Termination,

    Erstelle bitte noch Bilder von dem Laufwerk, der Platine, der Steckbrücken um zu überprüfen, ob ggf die Termination sich aufgeben lässt,

    Ich werde morgen mal ein paar Bilder vom TEAC FD-55BR machen.


    Wie versprochen.


  • Wenn ich dann noch Zusatz-Schaltkreise benötige, warum nicht auch gleich einen vollwertigen Floppy Controller wie den WD37C65B verwenden? Der sollte doch die Stromlast bewältigen können? Das Problem wäre dann eher, den FDC durch den Ardunio ansteuern zu können.


    Kommt darauf an, was Du damit machen möchtest. Der WD kann bestimmte Standardformate (mehr oder weniger PC-kompatibel, FM, MFM, soft sektoriert) bearbeiten. Für einen C64 oder Apple geht das schon nicht. Allerdings wirst Du mit einem Arduino aufgrund der relativ niedrigen Taktrate von 16MHz auch nicht sehr weit kommen.


    Für den Commodore Bereich und GCR gibt es ja spezielle Lösungen und ein C1571 Drive kann GCR und MFM. Ich habe im Internet schon mehrfach gelesen, das der Arduino zu langsam für solche Dinge ist. Aber es gibt doch ArduinoFDC?

    https://github.com/dhansel/ArduinoFDC


    Zitat

    ArduinoFDC is a sketch that implements a floppy disk controller. It works with Arduino Uno, Leonardo, Nano, Pro Mini, Micro and Mega.

  • warum nicht auch gleich einen vollwertigen Floppy Controller wie den WD37C65B verwenden? Der sollte doch die Stromlast bewältigen können?

    Nein, tut er nicht.

    Weiterhin kommen aus dem Floppycontroller nur Signale wie WriteGate, WriteData, Step und Direction. Signale wie DriveSelect und SideSelect musst du dir i.a selber generieren.

    OK, dann bringt ein FDC an dieser Stelle keinen Mehrwert und ArduinoFDC & ULN2003A kommt ins Spiel. Ich werde mir demnächst auch mal FLUXTEEN genauer anschauen.

  • ArduinoFDC & ULN2003A kommt ins Spiel. Ich werde mir demnächst auch mal FLUXTEEN genauer anschauen.

    Du darfst ArduinoFDC und FLUXTEEN nicht vergleichen.


    Ich kenne ArduinoFDC nicht, aber das Floppy Timing ist für einen Arduino schon grenzwertig. Beim Schreiben einer Floppy gibt der Arduino das Timing vor, kann klappen. Beim Lesen gibt das Floppylaufwerk bzw die Diskette das Timing vor, hier muss ein Arduino schon richtig gut programmiert werden.


    FLUXTEEN ist da deutlich performanter. Der tastet das Signal vom Floppylaufwerk mit einigen MHz ab. Damit lässt sich ein sehr genaues zeitliches Abbild des ReadData des Floppylaufwerks erstellen und analysieren. Schreiben einer Diskette ist so kein Problem.


    M.E. packst du hier Äpfel und Birnen in einen Topf. Was nicht heisst das Äpfel und Birnen nahrhaft und gesund sind. ;)

    ;------------------------------------
    ;----- ENABLE NMI INTERRUPTS
    (aus: IBM BIOS Source Listing)

  • FLUXTEEN ist da deutlich performanter. Der tastet das Signal vom Floppylaufwerk mit einigen MHz ab. Damit lässt sich ein sehr genaues zeitliches Abbild des ReadData des Floppylaufwerks erstellen und analysieren. Schreiben einer Diskette ist so kein Problem

    Schade das FLUXTEEN nur über ein Windows Programm angesteuert werden kann.

    +++ Auswahl des unterstützten PC-Betriebssystems: Windows XP und Windows 10 und VB6 Compiler (fertig) Für mich ist Linux Support ein hartes KO Kriterium.


    Für mich ist Linux Support ein hartes KO-Kriterium.

  • Schade das FLUXTEEN nur über ein Windows Programm angesteuert werden kann.

    Da geb ich dir gerne Recht.

    Aber wenn du dir anschaust was PAW da leistet und auf kurzem Weg (wenige Stunde, selten Tage) an Support leistet, ist mir das Betriebssystem egal.

    Da bin ich dann auf der Seite des Erfolgs.

    ;------------------------------------
    ;----- ENABLE NMI INTERRUPTS
    (aus: IBM BIOS Source Listing)

  • Ich hasse Microsoft - Windows 7 war noch OK im Desktop Bereich, aber mit Windows 10+ bin ich vollständig auf Linux umgestiegen. Ausnahme - ich habe noch einen Game-PC mit Windows 10. Im Server Bereich war ich sowieso nur auf UNIX/Linux unterwegs. Bei der Entscheidung vor Jahren Supercard vs Kryoflux hatte damals der Kryoflux Linux Support den Ausschlag gegeben, auch wenn die Supercard wohl auch über die serielle Schnittstelle in Linux ansteuerbar sein soll. Alle Tools im Commodore Bereich - OpenCBM, ZoomFloppy, NibTools, VICE lassen sich unter Linux kompilieren oder gibt es als Close Source (KryoFlux).

    2 Mal editiert, zuletzt von frank128 ()