mikrocontroller.net

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


Autor: bruzzler (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: thkais (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Profi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: bruzzler (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Rufus T. Firefly (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: bruzzler (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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. :-]

Autor: bruzzler (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
http://www.teac.de/dspd/downloads/datasheets/dl_fd...

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

Autor: bruzzler (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Hauke Sattler (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Martin S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ).

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.