Forum: Mikrocontroller und Digitale Elektronik 3,5" Floppy auslesen


von bruzzler (Gast)


Lesenswert?

Hallo,
ich möchte gerne mit einem uC Daten von 3,5" Floppys lesen und brauch
dafür noch ein paar Informationen bezüglich der elektrischen
Ansteuerung des Laufwerks. Ich habe zwar eine Belegungsplan für das
Laufwerk, aber keine Informationen darüber, was für Spannungen wann /
wo angelegt werden müssen.
Vielleicht hat das ja schon mal jemand versucht ?
Ich weiss das das Thema hier schön öfter besprochen wurde, aber die
meisten Antworten waren: "zu schwierig.." .
Wär schön wenn jemand ein paar Informationen für mich hat.

von thkais (Gast)


Lesenswert?

Ist wirklich nicht einfach, da man IMHO das ganze Timing und auch die
Track/Sector Ansteuerung selber machen muß.
Schon mal über MMC-Karten nachgedacht? Wenns um Datenaustausch zwischen
PC<->MC geht, wäre das auch eine Alternative.

von Profi (Gast)


Lesenswert?

Du brauchst einen Floppy-Controller, z.B. den WD1797, WD2979 oder
nichtkompatibel: U 8272-04, NEC: µPD 765, Intel: 8272), wenn ich mich
nach 20 Jahren recht erinnere.
An den kannst Du über Treiber (z.B.74LS244) direkt das Laufwerk
anschließen. Der ursprüngliche 34-polige Bus heißt übrigens Shugart.
Den gab es auch mal differenziell mit 50 Pins. Der im PC verwendete ist
dem serh ähnlich, bis auf die Drehung der Leitungen für Drive A:.
Das bewirkt, dass der PC das MotorOn für jedes LW extra steuern kann,
dafür aber nur 2 statt 4 LWe.
s.z.B:
http://www.buchty.net/emr/casio/drive-if.html

Geht wunderbar.
Zum Thema FAT und DIR-Einträge gibts hier im Forum und im ganzen iNet
mehr als genug zu Lesen.

von bruzzler (Gast)


Lesenswert?

Erstmal danke für die antworten.
@thkais
Es geht mir nicht primär darum Daten zu speichern.
@Profi
Auf einen Disk Controller möchte ich mangels Verfügbarkeit gerne
verzichten. Ich weiss das das mit dem Timing schwierig ist ( Bitbreite
< 2uS bei DD-Disketten im MFM Format). Würde es aber trotzdem gerne mal
versuchen. Falls also jemand ein paar Infos über die elektrische
Ansteuerung ( Pegel, Reihenfolge usw.) hat, würde ich mich sehr freuen.

von Rufus T. Firefly (Gast)


Lesenswert?

Du möchtest also einen Floppy-Controller in Software emulieren?
Igittigitt.


Die Pegel sind alle TTL-Pegel, immerhin.
Die Ansteuerung ist bis auf die Datenaufbereitung eigentlich auch recht
einfach; hier mal einige Kommentare zu den einzelnen Signalen:

Vom Controller zum Laufwerk:

/DSx [14,12] ("Drive Select") dient zur Auswahl des anzusprechenden
Laufwerkes
/MOx [10,16] ("Motor on") dient zum Ein/Ausschalten des Motors des
anzusprechenden Laufwerks

/HS [32] ("Head Select") wählt einen der beiden Schreib-/Leseköpfe
aus

STEP [20] steuert den Schrittmotor der Schreib-/Leseköpfe an; für jeden
Impuls wird der Kopfträger um eine Spur verschoben. Die Richtung (nach
innen/nach außen) wird mit der Leitung DIR [18] festgelegt.

/WE [24] ("write enable") schaltet das Schreiben ein

DATA_W [22] dient zum Schreiben, hier sind MFM-codierte Daten zu
übertragen.

Vom Laufwerk zum Controller:

Index [8] löst bei jeder Umdrehung der Diskette einen Impuls aus und
signalisiert so den Anfang einer Spur

TRACK0 [26] wird beim Positionieren des Kopfträgers auf Spur 0 (die
innerste) aktiviert

/WP [28] ("write protect") liefert den Status der
Schreibschutzlichtschranke/des Schreibschutztasters

DATA_R [30] liefert die vom Laufwerk gelesenen Daten

(alle ungeraden Nummern sind Masse).


Warum Igittigitt? Eklig sind folgende Aspekte:
- Aufbereitung der MFM-Daten
- Auswertung und Erzeugung der CRC-Daten in den Sektorheadern
- Schreiben von Sektordaten an die richtige Stelle in einer Spur ...

Controllerlose Diskettenansteuerung war früher mal sehr verbreitet: Das
Diskettenlaufwerk 1541 des VC 64 von Commodore wurde so angesteuert (und
wertet das Indexloch nicht aus, was die Kompatibilität zu anderen
Diskettenlaufwerken gegen Null optimierte); auch die Diskettenlaufwerke
des Apple II arbeiteten so.
Neuere Apples verwendeten ein GCR genanntes Format, das auch niemand
anderes lesen konnte, da die Anzahl der Sektoren pro Spur
unterschiedlich war und die Datenrate dynamisch angepasst wurde. Dieses
Verfahren findet heutzutage bei allen Festplatten Anwendung, war damals
aber ein Kompatibilitäts-K.O.

"mangels Verfügbarkeit" - sowas dürfte eigentlich nicht schwer zu
bekommen sein.

von bruzzler (Gast)


Lesenswert?

@Rufus

"Igittigitt" glaub ich gerne, aber ich will ja vorerst "nur"
lesen.
Floppy Controller sind doch heutzutage direkt in die Chipsätze der PCs
inegriert (wenn überhaupt).
Wenn du noch einen Floppy Controller kennst, den man heutzutage bei
Reichelt und Co bekommt, dann her damit !
Die Belegung, hab ich ja, nur was mich interessiert sind Sachen wie,
Pos. oder neg. Beschaltung. Wenn ich nur ein Laufwerk benutze was muss
ich dann an "Motor Enable A", "Motor Enable B", "Drive Select A",
"Drive Select A" anlegen damit das Teil erst mal anfänt mit Daten
lesen.

von Olaf (Gast)


Lesenswert?

Also ich bin mir sicher das ich  den korrekten Pegel der Steuerleitungen
in 5min rausfinden kann wenn ich Google bemuehe.

Aber dein Problem sind die MFM Daten. Der Grund warum Commodore und
Apple damals nicht kompatible waren, war IMHO das die Prozessoren fuer
MFM Kodierung nicht Leistungsfaehig genug war und damals passte bloss
140kb auf die Seite einer Diskette.

Die ersten Floppycontroller bestanden aus einem SpezialIC und hatten
zusaetzlich noch einen extra Datenseparator weil die es damals nicht
anders hin bekommen haben.

Selbst mit so einem WD297 den man sicherlich noch irgenwo auftreiben
kann ist das nicht einfach weil die Teile keinen Puffer haben. Du musst
eine komplette Spur am Stueck lesen oder schreiben.

Sowas wuerd ich mir im leben nicht freiwillig antun!

Solltest du uebrigens an ein eigenes Datenformat denken, das wird nicht
unbedingt einfacher. Wenn du andere Frequenzen zur aufzeichnung benutzt
dann kommen die nicht durch die internen Filter in der Floppy.
Jedenfalls musste ich damals Shurgartlaufwerke umbauen damit die am
Apple liefen.

Olaf

p.s: Ich vermute uebrigens das die Steuerleitungen alle Lowaktiv sind
weil eine Floppy anfaengt zu laufen wenn man sie verkehrt rum an das
Kabel steckt. :-]

von bruzzler (Gast)


Lesenswert?

@Olaf
Bei Google finde ich nur ungefähr 1million Seiten wo steht, "Das würd
ich mir im Leben nicht antun" !
Das mit dem Lowaktiv stimmt wohl, zumindest habe jetzt herausgefunden
das man den Motor mit GND an Motor Enable B ans laufen kriegt.
Nur den Schreib-Lesekopf krieg ich einfach nicht in Bewegung...
Bevor ich das nicht hinkriege brauche ich mir über die MFM-Dekodierung
keine Gedanken machen.

von Olaf (Gast)


Lesenswert?

http://www.teac.de/dspd/downloads/datasheets/dl_fd05hf8630.pdf

Also ich hab genau 5s gebraucht um das Datenblatt zu finden.

http://pluto.njcc.com/~hjohnson/drive.txt


Und jetzt will ich spaetestens zu Weihnachten eine Homepage sehen wo du
das ans laufen gebracht hast. :-)

Olaf

von bruzzler (Gast)


Lesenswert?

Das Datenblatt ist GENAU das was ich gesucht habe, Danke !

  >Und jetzt will ich spaetestens zu Weihnachten eine Homepage
  >sehen wo du das ans laufen gebracht hast. :-)

Kein Problem !
Ich denke bis Weihnachten 2020 müsste das zu schaffen sein...

von Hauke Sattler (Gast)


Lesenswert?

Also zur Zeit progge ich mir nen FDD emulator auf AVR basis.
Ziel ist es den ganzen mechanischen Kram über Board zu werfen, und als
Speicher medium ne SM-Card zu verwenden. Am 34Pol. Shugard Interface
soll das aber wie ne normale Floppy aussehen (o.k. mit sehr schnellen
Trackwechseln).

Den MFM codec Part hab ich schon fertig. In der Simulation fubbt das
Ding auf einem 16MHz Atmel Mega16 unter VMLAB 3.10C, und verträgt sogar
noch einem um +- 3% eiernden FDD-Controler (laut spec sind nur +-0,5%
erlaubt).
Da nen part dranzuhängen der das dekodierte Daten Signal in 8bit par.
an einen Port rauszuhauen. ist auch kein Problem.
Evt. könnte ich auch nen 2. Port für das dekodierte Clock Signal
proggen (damit man die fehlenden Signalflanken bei den Index usw.
Marken erkennt).

Sag beischeid wenn Interesse besteht.

cu
Hauke

von Martin S. (Gast)


Lesenswert?

"Floppy Controller sind doch heutzutage direkt in die Chipsätze der PCs
inegriert (wenn überhaupt). Wenn du noch einen Floppy Controller kennst,
den man heutzutage bei Reichelt und Co bekommt, dann her damit !"

Ich hab in meiner Krams-Kiste noch jede Menge alter ISA_8 und ISA_16
Platinen drin. Wenn die nicht inzwischen verfault sind, schick ich dir
gerne eine zu, und du lötest dir die 40 poligen DIL
Floppy-Controller-Klötze da raus.


Zur Not hab ich in selbiger Kramkiste auch noch einen Floppycontroller
aus Urzeiten rumgeistern. War übrigens mein "erstes Projekt": Sharp
MZ80K (ist was PET ähnliches, nur Z80 Prozessor), und die
Floppy-Controller-Platine kam damals 500 DM. Die einseitigen
Diskettenlaufwerke kamen den gleichen Preis. Da hab ich mir doch lieber
in Dortmund bei der Hobbytronic den Krempel zusammen für 250 DM gekauft,
und 2 Wochen schönen bastelkram gemacht (gefädelte Floppycontroller
haben durchaus ihren ästhethischen (brech)Reiz ).

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.