1986-BHV-12 S.7-10

Selbstbau Doubler für EXP1

Helmut Bernhardt

Nachdem sich bei mir nun schon der zweite WD1771 Single Density Floppy- Controller verabschiedet hat und der Chip wohl auch bald nicht mehr zu haben ist, entschloß ich mich, mir selbst einen Doubler zu bauen der ohne diesen Käfer auskommt. Es ist auch nicht einzusehen, warum auf einem Doubler zwei Floppycontroller sitzen müssen, wo doch der WD1791 alles das, was der WD1771 kann, (nämlich beim Booten die erste Spur der Diskette in Single Density und gelegentlich auch mal ganze Disketten in SD zu lesen oder zu schreiben (wenn ein unterausgerüsteter Zeitgenosse den digitalen Informationsaustausch nur in diesem Format leisten kann) nebenbei auch erledigen könnte.

Letzteres Argument soll nun aber auch gegenstandslos werden, denn den hier beschriebenen Doubler kann sich leicht jeder selbst bauen und auch finanzieren. Grundlage ist der WD2793 Floppycontroller, der schon aufgrund seiner Bescheidenheit bei der Spannungsversorgung (ausschließlich +5V und GND) mein Wohlwollen verdient hat. Außerdem enthält er auf dem Chip schon einen PLL-Datenseparator und eine Schreibvorcompensation. Dadurch können die meisten ICs auf den Doublern von TCS und dem davon abgekupferten von RB entfallen, die nur diesen Job leisten.

Der WD2793 kann intern den an Pin 24 angelegten Takt von 2MHz (für den Betrieb von 8" Floppies) auf 1MHz (5" Floppies) runterteilen, wenn an den Pins 17 und 23 Low-Pegel angelegt wird. Über Pin 37 läßt sich vorgeben, ob in Single Density (high) oder Double Density (low) gelesen und geschrieben werden soll.

Durch die 5 zusätzlichen ICs links neben dem WD2793 auf dem Doubler Board lassen sich diese Features programmieren. Zwei Flip Flops geben über ihre Q-Ausgänge die Pegel für die Pins 17, 25 und 37 vor. Nach einem RESET ist der Floppycontroller auf Minifloppy und Single Density eingestellt. Durch Ausgabe folgender Werte an das Contollregister mit der memory mapped Adresse 37ECH bzw. das Sektorregister 37EEH lassen sich die Betriebszustände folgendermaßen einstellen:

37ECH:1111 1xx0 bin (FFH)Single Density
 1111 1xx1 bin (FEH)Double Densitv
37EEH:1000 0xx0 bin (80H)Minifloppy (5 1/4")
 1100 0xx0 bin (C0H)Maxifloppy (8")

Diese Daten haben im Control- bzw. Sektorregister keine Wirkung. Aus den Daten und der Schreibadresse werden nur extern die Triggersignale für die Flip Flops decodiert, wobei für die Density D0 und für die Drivegröße D6 den einzustellenden Pegel vorgibt.

Schaltplan

Diese Schaltung ist in Abb.1 gezeigt. Das einseitige Layout und die Anordnung der Drahtbrücken und Bauteile ist aus den folgenden Abbildungen zu ersehen. Die zur Position des WD2793 leicht versetzte Dil40-Anordnung von Lötpunkten wird von der Lötseite mit einem entsprechenden Stecker bestückt, der in den Sockel des WD1771 auf dem EXP1 gesteckt wird. Zur Zugentlastung dieses Steckers sollten an ca. 15-20 der durchragenden Pins auf der Bestückungsseite kurze Drahtstücke angelötet werden. Das verhindert ein eventuelles Abreißen der Leiterbahnen beim Herausziehen des Doulers aus dem WD1771-Sockel.

Beim Einsatz dieses Doublers muß der invertierende Datentreiber 74LS640 neben dem 1771-Sockel durch den nichtinvertierenden, pinkompatiblen Typ 74LS245 ersetzt werden, da der WD2793 keine invertierenden Daten-Ein-/Ausgänge (wie WD1771 und WD1791) hat. Die Entscheidung fiel für den WD2793, der sich nur in seinen nichtinvertierenden Dateneingängen vom WDD2791 unterscheidet, wegen unüberwindlicher Beschaffungsschwierigeiten beim WD2791. Das bedeutet aber leider auch, daß dieser Doubler bei anderen Floppycontroller-Boards nicht verwendet werden kann, da dort nicht einfach ein Treiber ausgewechselt werden kann.

Layout; Drahtbrücken; Bestückung

Auch ein weiterer Nachteil dieses Doublers soll noch erwähnt werden. Für die einwandfreie Funktion von Datenseparator und Schreibvorkompensation sind einige Trimmungen an den Potentiometern P1 und P2 und dem Trimmcondensator C1 vorzunehmen. Dazu ist ein Oszilloskop nötig. Wenn das nicht verfügbar ist, kann im Notfall auch mit Probieren getrimmt werden. Dann werden P1, P2 und C1 auf Mittelstellung gedreht und durch wiederholte Bootversuche und ständiges Verändern der Einstellung von P2 und C1 die günstigste Einstellung für das Lesen einer Diskette gefunden. Mit P1 muß dann noch die Schreibvorkompensation geregelt werden, was durch Schreiben auf Diskette und anschließendes Lesen geprüft werden kann. Die Einstellungen sind nicht sehr kritisch, so daß auch dieses Vorgehen möglich ist.

Die im Datenblatt vorgegebene Einstellung mit Hilfe eines Oszilloskops läuft folgendermaßen ab:

Der Comuter wird mit gedrückter "BREAK" Taste eingeschaltet, um im Level II BASIC zu landen. Es wird der Befehl POKE 14316,255 (auf DD schalten) ausgeführt. Dann werden mit einem Jumper die beiden Stifte "TEST" kurzgeschlossen (Pin 21 des WD2793 an GND). Mit P1 kann dann die Breite der Pulse an Pin 31 (WD) unter Oscarkontrolle auf einen Wert zwischen 100 und 300ns eingestellt werden.

Mit P2 wird dann die Pulsbreite an Pin 29 (TG43) auf 60-65ns eingestellt. Mit C1 wird an Pin 16 (DIRC) eine Frequenz von 250kHz eingestellt.

Um die Hardware-Voraussetzungen, auch 8" Floppies betreiben zu können, zu nutzen, muß die Anordnung der Signale auf dem 34poligen Shugart-Bus für Minifloppies auf die für den 50poligen Bus für 8" Floppies umsortiert werden. Bei älteren 8" Drives muß diesen zusätzlich noch das Signal TG43 (WD2793, Pin 29) über einen Open Collector Inverter zugeführt werden. Neuere 8" Drives benötigen dieses Signal nicht mehr.

Wer sich diesen Doubler aufbauen will, kann für 10 DM (incl. Rückporto) von mir ein geätztes, ungebohrtes Board bekommen und darf sich mit der Beschaffung der Bauteile, dem Bohren, Löten und Trimmen selbst abmühen.

Steckerbelegung Floppy-Kabel



1987-BHV-03 S.7 / Club80 Nr.19, S.49

Nachtrag: Verbessertes Datenlesen

Ein zuverlässigeres Lesen der Daten von Diskette mit dem vor kurzen beschriebenen Selbstbau-Doubler auf Basis des WD2793 läßt sich durch folgende kleine Änderung erreichen.

1) Auf dem Doubler Board wird die Verbindung zwischen Pin 13 des 74LS123 und Pin 27 des WD2793 durchtrennt. Der Pin 27 des WD2793 wird stattdessen mit Pin 4 des 74LS123 verbunden.

2) Auf dem EXP1 Board werden die Pins 13 und 12 des 74LS04 aus der Fassung gebogen bzw. durchtrennt (wenn das IC direkt eingelötet ist). Auf der Lötseite werden die Pins 13 und 12 des 74LS04 miteinander verbunden.

Durch diese Änderung wird die Gatterlaufzeit der überbrückten Inverter eingespart. Die Fehlerquote beim Lesen von der Diskette wird damit drastisch gesenkt.

Das Layout des Doubles ist dem unter Punkt 1) beschriebenen Patch angepaßt. Das Board wird in Zukunft nur noch in dieser Form geätzt. Der Patch gemäß Punkt 2) ist dadurch zwingend.