Forum: Mikrocontroller und Digitale Elektronik Floppy mal anders


von Willi (Gast)


Lesenswert?

Hallo.

Hier wollten schon einige ein Floppy-Laufwerk an einen AVR hängen ...
Ich möcht's mal anders herum versuchen :

Und zwar möcht ich ein Floppy-Laufwerk bauen (mit einem AVR), dass
nicht auf eine Diskette speichert, sondern in einen internen RAM. Es
soll aber sonst funktionieren wie ein normales (als Laufwerk "B")
Das Wort RAM ist richtig gewählt, da es nicht notwendigerweise
resistenter Speicher sein muss.
Ist das an und für sich möglich ?
Hat eventuell jemand Informationen über Diskettenlaufwerke (Protokolle,
etc.) ?

Sinn und Zweck liegt darin, das Testen von Bootloadern, etc. zu
vereinfachen (Image auf RAM, Virtual Machine und gut)

von Christian Zietz (Gast)


Lesenswert?

Shugart-Bus ist das Stichwort. Aber ich halte das für übertrieben
schwierig. Über diesen Bus laufen nämlich die noch im magnetischen
Aufzeichnungsverfahren codierten Bits, das müsstest Du nachbilden.

Was ich nicht recht verstehe, ist Dein Anwendungszweck. Ist das nichts,
was man mit Floppy-Images machen kann?

von Willi (Gast)


Lesenswert?

Kann man Floppys überhaupt emulieren ?
Wenn nicht, kann man das für den IDE-Kanal machen, oder ist hier der
AVR zu langsam ? (Timeout-probleme, etc.)

von Rufus T. Firefly (Gast)


Lesenswert?

@Christian:
So kompliziert dürfte die "Emulation" von MFM-codierten Daten nicht
sein. Eine Beschreibung des Formats sollte sich in einem Datenblatt
eines Floppycontrollers wie dem WD37c65 finden (der "gute alte"
µPD765 hatte noch keinen sog. "Datenseparator", deshalb dürfte dessen
Datenblatt weniger helfen).

Allerdings wird hier -je nach Art der Diskette- mit einer Datenrate von
500 kBit/sec oder mehr gearbeitet.
Vermutlich ist hier eher ein FPGA angesagt.

Es gab mal einen Hardware-Floppy-Emulator, der sogenannte
FlashPath-Adapter von Olympus. Der wurde zwar in ein herkömmliches
Diskettenlaufwerk eingelegt, emulierte dann weitestgehend eine normale
Diskette, auch wenn die Daten von einer eingesetzten SmartMedia-Karte
kamen ...

@Willi:
Der AVR dürfte für eine IDE-Emulation um etliche Größenordnungen zu
langsam sein.

von A.K. (Gast)


Lesenswert?

Diese Technik stammt aus der Zeit vor dem Internet - ob da heute Doku
rumfliegt? Zum Track-Layout siehe Datasheets von µPD765 und dessen
Nachbauten wie Intel 8272, FDC37Cxx oder auch vom
http://www.swtpc.com/mholley/DC_5/TMS279X_DataSheet.pdf.

Zur Bitcodierung siehe
http://www.storagereview.com/guide2000/ref/hdd/geom/dataMFM.html.

Das Timing wird interessant. 500 KHz Bitrate, mit MFM Codierung drin.
Ein maximal getakteter AVR wird's wohl schaffen, aber einfach wird das
nicht. Denn es langt nicht, die Bits einzusammeln, Du musst auch noch in
Echtzeit rauskriegen, was da grad läuft, also ob grad ein
Sektor-Adressfeld reinläuft. Und streng synchron.

Was für Bootloader übrigens? PC-Software? => VMware mit virtueller
Floppy im Image-File.

von Gerald (Gast)


Lesenswert?

Hallo Willi,

ich habe schon einmal vor ewiger Zeit so etwas erfolgreich entwickelt.
Habe 4 Floppylaufwerke simuliert, rein elektronisch.
Das Ganze lief damals mit einem Z80 und wurde am Betriebssystem CPM
betrieben, also heute Steinzeittechnik.
Was damals mit 4 MHz Taktfrequenz am Microcontroller möglich war, muss
doch heute mit den schnellen Microcontrollern leicht möglich sein.

Gruss

Gerald

von A.K. (Gast)


Lesenswert?

Mit einem Z80 die Bits einzeln bei 500 KHz (damals wohl eher 250KHz)
eingefangen und auf Inhalt mitsamt der escape codes für
Sektormarkierung in Echtzeit untersucht? Respekt. Oder war da die
par/ser-Wandlung mit Datenseparator extern?

Wenn's wirklich ernst ist: Tiny2313 als vorgeschalteter
Bit/Byte-Wandler, der seine Daten mit dem Hauptcontroller per
synchronem USART (2Mbps) im 9bit Modus austauscht. 9bit wegen der
escape codes.

von Hauke Sattler (Gast)


Lesenswert?

@Willi
Ich hab sowas mal angefangen. Kann aber aus Zeitmangel momentan nicht
weitermachen.
Falls du interresse hast, mail mich einfach mal an, dann kann ich dir
mal meine zusammengetragenen Dokus und Atmel ASM Sourcecodes
zuschicken.

Meine Planung war ein Mega162 oder Mega128 (bei letzterem hätte ich
noch ein paar Pins für Display und Tasten übrig) und auf RAM und/oder
Flashcard zu speichern. Format: MFM mit variablen Block/Sektor/Track
Verhältnissen. Die MFM->8Bit Par Umwandlung (inklusive MFM
Steuercodeerkennung) ist fertig. Die Disketten Emulation (Daten aus dem
RAM in eien MFM Datenstrom umwandeln incl. Index- usw. Marken) ist auch
im Prinzip fertig.

cu
Hauke

von Heinz (Gast)


Lesenswert?

@Willi
Ich weiss nicht ob es dir was hilft, aber hier ist mal ein Link zu
einer  Seite wo ein Diskettenlaufwerk an den Parallelport angeschlossen
wurde. Vielleicht kannst du ja noch was draus lernen.
http://afr.back2roots.org/

von Thomas (kosmos)


Angehängte Dateien:

Lesenswert?

Hallo, ich habe heute etwas interessantes gefunden leider finde ich den 
Beitrag nicht mehr wo es darum geht bei alten HP-Oszis die Disketten 
gegen haltbarere Datenträger auszutauschen. Naja Smart-Media Karten 
gibts auch nicht mehr aber vielleicht noch gebraucht zu erwerben. Habe 
aber keine Ahnung ob man evtl. auch mehr als 720 bzw 1440 kb drauf 
speichern kann. Die SM Karten müsste es bis 128 MB gegeben haben.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Das geht nicht. Das ist kein Ersatz für eine Diskette, sondern ein nur 
mit spezieller Software nutzbarer Adapter, um SmartMedia-Karten 
auszulesen.

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.