www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Floppy mal anders


Autor: Willi (Gast)
Datum:

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

Autor: Christian Zietz (Gast)
Datum:

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

Autor: Willi (Gast)
Datum:

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

Autor: Rufus T. Firefly (Gast)
Datum:

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

Autor: A.K. (Gast)
Datum:

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

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.

Autor: Gerald (Gast)
Datum:

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

Autor: A.K. (Gast)
Datum:

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

Autor: Hauke Sattler (Gast)
Datum:

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

Autor: Heinz (Gast)
Datum:

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

Autor: Thomas O. (kosmos)
Datum:
Angehängte Dateien:

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

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

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

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.