Forum: Mikrocontroller und Digitale Elektronik Diskettenlaufwerk ansteuern


von Josef P. (seppell)


Lesenswert?

Hallo. Ich möchte gerne ein Diskettenlaufwerk mit einen avr Controller
ansteuern. Wer kann mir helfen und einen C-Code zeigen.
Ich habe schon einige Internetseiten angesehen, aber keinen Code 
gefunden.

von MaWin (Gast)


Lesenswert?

Josef P. schrieb:
> Hallo. Ich möchte gerne ein Diskettenlaufwerk mit einen avr
> Controller
> ansteuern. Wer kann mir helfen und einen C-Code zeigen.
> Ich habe schon einige Internetseiten angesehen, aber keinen Code
> gefunden.

Siehe: https://dse-faq.elektronik-kompendium.de/dse-faq.htm#F.7.6

von c-hater (Gast)


Lesenswert?

MaWin schrieb:

> Siehe: https://dse-faq.elektronik-kompendium.de/dse-faq.htm#F.7.6

Ist bei genauerer Betrachtung doch ein wenig veraltet. Mit neueren AVR8 
rückt ein Floppycontroller selbst für HD und schreibend in den Bereich 
des Möglichen (vor allem dank CCL). Für DD und rein lesend war es schon 
vor 20 Jahren möglich.

Aber OK: wer sich für das Ansprechen von Floppylaufwerken tatsächlich 
interessiert, muss wohl allein herausbekommen, wie's geht. Schlicht 
deshalb, weil sich außer ihm aus guten Gründen praktisch kein Schwein 
mehr dafür interessiert.

von PittyJ (Gast)


Lesenswert?

Es gibt auch Diskettenlaufwerke mit USB-Anschluss.
Ist vielleicht einfacher, als diese 34 polige Buchse zu bedienen.

von c-hater (Gast)


Lesenswert?

PittyJ schrieb:
> Es gibt auch Diskettenlaufwerke mit USB-Anschluss.
> Ist vielleicht einfacher, als diese 34 polige Buchse zu bedienen.

Nein, nicht für einen AVR8. USB-Host mit Fullspeed liegt jenseits seiner 
Möglichkeiten.

von Klaus B. (butzo)


Lesenswert?

Josef P. schrieb:
> Hallo. Ich möchte gerne ein Diskettenlaufwerk mit einen avr Controller
> ansteuern.
Bei einer Standardfloppy eigentlich ganz einfach:

8" Scheibendurchmesser mit 77 Spuren und ein- oder zwei Seiten. Achtung 
der Antriebsmotor braucht normalerweise AC, also 230 V oder 110 V. Die 
Elektronik +/-5 V und 24V für den Schrittmotor.

Softsektoriert oder hardsektoriert?

Signale zum / vom Laufwerk:
Step, Direction, TG43, Read, Write, Side, Track 0, Write Gate,
Drive select, ggf.Index.
Alles überschaubar und bis auf Read / Write zeitunkritisch.

Welches Datenformat soll's denn werden, single density FM oder MFM, M²M, 
GCR? https://www.retrotechnology.com/herbs_stuff/m2fm.html
https://en.wikipedia.org/wiki/List_of_floppy_disk_formats

Nur Sektoren lesen/schreiben oder wird ein Filesystem benötigt?
z.B. https://stardot.org.uk/forums/viewtopic.php?t=9114


Butzo*aussen

von J. T. (chaoskind)


Lesenswert?

Hier solltest du was finden:
Beitrag "Musikalisches Diskettenlaufwerk"

von PICklig (Gast)


Lesenswert?

Klaus B. schrieb:
> Bei einer Standardfloppy eigentlich ganz einfach:
>
> 8" Scheibendurchmesser mit 77 Spuren und ein- oder zwei Seiten. Achtung
> der Antriebsmotor braucht normalerweise AC, also 230 V oder 110 V. Die
> Elektronik +/-5 V und 24V für den Schrittmotor.
>
...
>
> Butzo*aussen

Dazu noch einen Intel 8272 und fertig ist die Laube.
Pech, wenn man keinen hat.

von PittyJ (Gast)


Lesenswert?

c-hater schrieb:
> PittyJ schrieb:
>> Es gibt auch Diskettenlaufwerke mit USB-Anschluss.
>> Ist vielleicht einfacher, als diese 34 polige Buchse zu bedienen.
>
> Nein, nicht für einen AVR8. USB-Host mit Fullspeed liegt jenseits seiner
> Möglichkeiten.

Es war nicht die Rede von einem AVR8. Es ging allgemein um einen nicht 
näher spezifizierten "avr Controller".

Und bei avr findet man dann das:
https://ww1.microchip.com/downloads/en/DeviceDoc/doc8486.pdf

von Klaus B. (butzo)


Lesenswert?

PICklig schrieb:

> Dazu noch einen Intel 8272 und fertig ist die Laube.
> Pech, wenn man keinen hat.
Pah!
Ein Steve Wozniak hat nur ein PROM und einen Zähler gebraucht :-)
https://de.wikipedia.org/wiki/Integrated_Woz_Machine

Würde persönlich erstmal die Baugröße 8", 5", 3.5", 3" auswählen und
mit dem Lesen der uPD765 und WD1793 Doku anfangen.


Butzo*aussen

von (prx) A. K. (prx)


Lesenswert?

PICklig schrieb:
> Dazu noch einen Intel 8272 und fertig ist die Laube.
> Pech, wenn man keinen hat.

Digikey ersäuft dermassen in verschiedenen Floppy-Disk Controllern und 
den teils erforderlichen Datenseparatoren, dass sie welche verkaufen 
müssen.

: Bearbeitet durch User
von Thomas R. (Gast)


Lesenswert?

PittyJ schrieb:
> Es gibt auch Diskettenlaufwerke mit USB-Anschluss.
> Ist vielleicht einfacher, als diese 34 polige Buchse zu bedienen.

Ich suche am AVR immer noch den USB-Stöpsel.

von (prx) A. K. (prx)


Lesenswert?

Thomas R. schrieb:
> Ich suche am AVR immer noch den USB-Stöpsel.

Wurde vorhin verlinkt: "Atmel AVR4950: ASF - USB Host Stack"
https://ww1.microchip.com/downloads/en/DeviceDoc/doc8486.pdf

von Thomas R. (Gast)


Lesenswert?

Danke, den habe ich übersprungen ;-)

von H. H. (Gast)


Lesenswert?

(prx) A. K. schrieb:
> PICklig schrieb:
>> Dazu noch einen Intel 8272 und fertig ist die Laube.
>> Pech, wenn man keinen hat.
>
> Digikey ersäuft dermassen in verschiedenen Floppy-Disk Controllern und
> den teils erforderlichen Datenseparatoren, dass sie welche verkaufen
> müssen.

Nur über Marketplace, und keine einzelnen. :-(

von MaWin (Gast)


Angehängte Dateien:

Lesenswert?

Klaus B. schrieb:
> Pah!
> Ein Steve Wozniak hat nur ein PROM und einen Zähler gebraucht :-)
> https://de.wikipedia.org/wiki/Integrated_Woz_Machine

2 PROMs.

c-hater schrieb:
> Ist bei genauerer Betrachtung doch ein wenig veraltet. Mit neueren AVR8

Welchen, den 100 MHz Typen ? Muss man wohl noch ewig drauf warten. 
16msps schafft kein 20 MHz Controller. Selbst wenn man per 10 MHz SPI 
einliest und die Bytes durch tabellengesteuerte state machines jagt, 
reicht es nicht. Sicher, man kann es auch schlechter machen und mit 
Glück immer noch manchmal Daten lesen.

PICklig schrieb:
> Dazu noch einen Intel 8272

und C-hater redete von veraltet, was ist das denn dann erst, Archäologie 
?

von H. H. (Gast)


Lesenswert?

MaWin schrieb:
> Klaus B. schrieb:
>> Pah!
>> Ein Steve Wozniak hat nur ein PROM und einen Zähler gebraucht :-)
>> https://de.wikipedia.org/wiki/Integrated_Woz_Machine
>
> 2 PROMs.

Nein nur eines. Das andere enthielt den Bootloader, war für die Funktion 
des Controllers aber nicht nötig.

von Apple DOS (Gast)


Lesenswert?

Klaus B. schrieb:
> Pah!
> Ein Steve Wozniak hat nur ein PROM und einen Zähler gebraucht :-)
> https://de.wikipedia.org/wiki/Integrated_Woz_Machine

Hier etwas mehr Input wie die Floppys angesteuert wurden:
https://mirrors.apple2.org.za/Apple%20II%20Documentation%20Project/Books/Beneath%20Apple%20DOS.pdf

von PICklig (Gast)


Lesenswert?

> und C-hater redete von veraltet, was ist das denn dann erst, Archäologie
?

Wenn du persönliche Probleme mit dem 8272 hast, kannst du die für dich 
behalten.
Entscheidend ist doch immer, dass es funktioniert.

Dazu vielleicht noch einen 16C50 von GI.

von (prx) A. K. (prx)


Lesenswert?

PICklig schrieb:
> Dazu noch einen Intel 8272 und fertig ist die Laube.
> Pech, wenn man keinen hat.

Wobei der 8272 ein Nachbau des NEC µPD765 war. Peripherie war nicht 
Intels stärkste Seite.

: Bearbeitet durch User
von ACDC (Gast)


Lesenswert?

Josef P. schrieb:
> Hallo. Ich möchte gerne ein Diskettenlaufwerk mit einen avr Controller
> ansteuern

du willst also das hier nachbauen?

https://www.youtube.com/watch?v=G-X-p0C0Uas

von MaWin (Gast)


Lesenswert?

PICklig schrieb:
> Wenn du persönliche Probleme mit dem 8272 hast, kannst du die für dich
> behalten.
> Entscheidend ist doch immer, dass es funktioniert.

Der i8272 braucht Treiber und Datenseparatoren, das ist schon seit 1995 
überflüssig mit NS SuperFDC  PC8477B.

Da ein AVR auch Treiber und Datenseparator bräuchte, sind es mit einem 
PC8477B sogar weniger Chips.

von mIstA (Gast)


Lesenswert?

Klaus B. schrieb:
> 8" Scheibendurchmesser mit 77 Spuren und ein- oder zwei
> Seiten. Achtung der Antriebsmotor braucht normalerweise AC,
> also 230 V oder 110 V.

8" Laufwerke die schon 230V brauchen - gibts sowas tatsächlich?

von (prx) A. K. (prx)


Lesenswert?

mIstA schrieb:
> 8" Laufwerke die schon 230V brauchen - gibts sowas tatsächlich?

Dieser Art von Motor ist der feine Unterschied herzlich egal.

von Helmut P. (Gast)


Lesenswert?

MaWin schrieb:
> Der i8272 braucht Treiber und Datenseparatoren, das ist schon seit 1995
> überflüssig mit NS SuperFDC  PC8477B.

Das war schon viel früher überflüssig; schon der WD1772 brauchte den 
Kram nicht. Den fand man beispielsweise im Atari ST.

Wenn man das HD-Format braucht, ist ein WD3765 zu empfehlen, den gab es 
auch schon gegen Ende der 80er Jahre. Zu finden war der auf unzähligen 
MFM- und RLL-Festplattencontroller für ATs, so z.B. auf dem WD100.

Solange man aber nicht weiß, was der Threadersteller wirklich anfangen 
will, brauchen wir uns eigentlich auch keinen Kopf zu zerbrechen.

von H. H. (Gast)


Angehängte Dateien:

Lesenswert?

mIstA schrieb:
> Klaus B. schrieb:
>> 8" Scheibendurchmesser mit 77 Spuren und ein- oder zwei
>> Seiten. Achtung der Antriebsmotor braucht normalerweise AC,
>> also 230 V oder 110 V.
>
> 8" Laufwerke die schon 230V brauchen - gibts sowas tatsächlich?

Siehe Anhang.

von S. R. (svenska)


Lesenswert?

8"-Laufwerke brauchen immer einen direkten Netzanschluss. Erst 
5.25"-Laufwerke konnten die Drehzahl mit Gleichstromtechnik genau genug 
regeln.

Selbst aktuelle Retrotechnik benutzt immer einen FDC, der den ganzen 
schnellen Kram erledigt. Alte Technik ebenfalls. Es gab zwar vollständig 
diskret aufgebaute Floppy-Controller, aber die arbeiten durchgängig mit 
hardsektorisierten Disketten (NorthStar und so).

Ein klassischer AVR8 ist für die Decodierung von HD (also 500 Kbps) 
eigentlich zu langsam, aber ich erinnere mich dunkel an ein Projekt, was 
die 250 Kbps einer DD-Diskette geschafft hat.

Man kann zusätzliche Hardware mit Software kombinieren, wie Apple oder 
Commodore das getan haben, aber den Aufwand empfehle ich nicht.

von Helmut P. (Gast)


Lesenswert?

S. R. schrieb:
> 8"-Laufwerke brauchen immer einen direkten Netzanschluss. Erst
> 5.25"-Laufwerke konnten die Drehzahl mit Gleichstromtechnik genau genug
> regeln.

Davon weiß das 8"-Laufwerk in meinem Schrank offenbar nichts; das 
braucht nur 24V.

Beschreibung hier: https://retrocmp.de/fdd/nec/nec-fd1165_pd.pdf

von S. R. (svenska)


Lesenswert?

Helmut P. schrieb:
>> 8"-Laufwerke brauchen immer einen direkten Netzanschluss. Erst
>> 5.25"-Laufwerke konnten die Drehzahl mit Gleichstromtechnik genau
>> genug regeln.
>
> Davon weiß das 8"-Laufwerk in meinem Schrank offenbar nichts;
> das braucht nur 24V.

Beeindruckend. Muss eins der letzten Generation sein.

Ist aber auch egal, der TO hat in seinem Leben nur einen Beitrag 
verfasst und ist inzwischen über alle Berge.

von Wolfgang R. (Firma: www.wolfgangrobel.de) (mikemcbike)


Lesenswert?

Da gibt es noch ganz andere...
http://www.wolfgangrobel.de/museum/hamamatsu.htm

von axel (Gast)


Lesenswert?


von fgh (Gast)


Lesenswert?


von PICklig (Gast)


Lesenswert?

Ich lasse mir hier den i8272 nicht madig machen.

Sein formschoenes 40 pinniges DIP-Gehaeuse passt immerhin
in jeden mindestens 40 poligen zoelligen DIL-Sockel.
Das kannst du ja mit deinem Super-IO-Kaefer auch mal versuchen.

Und schon alleine wenn Mann mal GCR formatierte Disketten lesen will.
Der i8272 legt einem da keine Steine in den Weg.

Einen MFM-Dekoder kann man ja aehnlich einem Dekoder fuer
"Conditioned Di-Phase" noch mit allereinfachsten Standardbauelementen
zusammenbauen.
Bei GCR muesst ich nochmal nachsehen.

von Joachim B. (jar)


Lesenswert?


: Bearbeitet durch User
von Lotta  . (mercedes)


Lesenswert?

DDR-8-Zoll Floppys hatten einen 220v Antrieb.
Und als Steuerung nen ausgewachsenen K...-Rechner in
Einschubtechnik mit U880, U552, entsprechenden RAM und
U856 Serial Interfacce und U855 Parallel Interface.
Alles riesengroß. in Nachttischgröße.

mfg

von MaWin (Gast)


Lesenswert?

PICklig schrieb:
> Ich lasse mir hier den i8272 nicht madig machen.

Soll's ja geben.

Leute die prinzipiell nicht klüger werden wollen.

von Jester (Gast)


Lesenswert?

Klaus B. schrieb:
> Bei einer Standardfloppy eigentlich ganz einfach:
>
> 8" Scheibendurchmesser mit 77 Spuren und ein- oder zwei Seiten. Achtung
> der Antriebsmotor braucht normalerweise AC, also 230 V oder 110 V. Die
> Elektronik +/-5 V und 24V für den Schrittmotor.

Und dann wär da noch das Filesystem ...

von Zeno (Gast)


Lesenswert?

Lotta  . schrieb:
> Alles riesengroß. in Nachttischgröße.
Ich weis ja nicht wie groß bei Dir die Nachttische sind, aber bei mir 
sind diese schon noch größer als so ein altes Floppy. Bei 2 Maßen war 
halt eine Mindestgröße erforderlich - so ne 8" Disk ist nun mal 20x20cm 
groß.
Auch das mit dem Parallel und Serieninterface ist so nicht richtig. Die 
Floppy's Robotron hatten einen Bus der elektrisch mit dem Shugart-Bus 
kompatibel war allerdings hat man keinen international kompatiblen 
Stecker benutzt. In der DDR war das EFS-System üblich.
Eine schöne Übersicht über die in der DDR verwendeten Floppylaufwerke 
gibt es hier 
https://www.robotrontechnik.de/index.htm?/html/komponenten/fs.htm

von Ingo W. (uebrig) Benutzerseite


Lesenswert?

Zeno schrieb:
> Lotta  . schrieb:
>> Alles riesengroß. in Nachttischgröße.
> Ich weis ja nicht wie groß bei Dir die Nachttische sind, aber bei mir
> sind diese schon noch größer als so ein altes Floppy.

Ich glaube, Lotta meinte hier den Controller. Und das war eine 
K1520-Vollformatplatine, dicht gepackt. Später mit dem U8272 mit 
bisschen Takt/Datenseparator hätte das auf ein Viertel der Fläche 
gepasst...

von Disque Bleu (Gast)


Angehängte Dateien:

Lesenswert?

BlueDisk ... einige Apple-User werden ihn kennen ...

Vor langer langer Zeit gab es mal einen MFM-Controller für die
AppleII - Serie. Darauf sass der Intel 82077, der einzige Chip
der damals mit einigermassen vertretbaren Aufwand eine
Implementierung zuliess. Diesen 82077 könnte man heutzutage
auch leicht dazu verwenden mit einem Atmel-Controller etwas
Floppy-Controller-mässiges aufzubauen. Der Aufwand wäre im
Vergleich zur AppleII - Implementierung relativ gering.

BlueDisk konnte übrigens nicht nur HD Disketten lesen und
schreiben sondern auch die sehr seltenen 2.8MB Disketten
(EHD? wenn man das entsprechende Laufwerk dazu hatte).

von Zeno (Gast)


Lesenswert?

Ingo W. schrieb:
> Ich glaube, Lotta meinte hier den Controller. Und das war eine
> K1520-Vollformatplatine, dicht gepackt. Später mit dem U8272 mit
> bisschen Takt/Datenseparator hätte das auf ein Viertel der Fläche
> gepasst...
Naja, aber aber so grß wie ein Nachttisch war's trotzdem nicht. Hier 
https://www.robotrontechnik.de/index.htm?/html/komponenten/fs.htm mal 
ein paar Bildle vom 5120. Da ist der komplette Rechner vielleicht so 
groß wie ein kleiner Nachttisch.

Richtig groß (und schwer) waren die Dualfloppys vom E60/E100 
(sowjetische PDP11 Clone). Das erste was in unseren Geräten eingesetzt 
wurde war ca. 50cm breit (2x 8" nebeneinander), geschätzt 40cm hoch und 
auch 50cm tief. Das Nachfolgemodell war nicht mehr so hoch, "nur noch" 
ca. 20cm aber dafür fast doppelt so tief, so das der Elektronikschrank 
wo das Ding eingebaut war eine "Rucksackrückwand" bekommen mußte. Das 
ist jetzt aber fast 40 Jahre her - war halt eine andere Zeit.

von MaWin (Gast)


Angehängte Dateien:

Lesenswert?

Disque Bleu schrieb:
> der einzige Chip
> der damals mit einigermassen vertretbaren Aufwand eine
> Implementierung zuliess. Diesen 82077 könnte man heutzutage
> auch leicht dazu verwenden mit einem Atmel-Controller etwas
> Floppy-Controller-mässiges aufzubauen.

Wozu, wenn es single Chip Lösungen im Computerschrott gibt ?

Hier machen Viele den Eindruck, seit 1989 nichts mehr hinzugelernt zu 
haben.

von Lotta  . (mercedes)


Lesenswert?

Ts...
Was Opa und ich da auseinandergenommen hatten war ein
Beistellgerät, ca.. 40 - 50 Cm hoch, oben war die Floppy drinne
darunter war der Rechnereischub mit Rückverdrahtung und darunter ein
mächtig gewaltiger Schaltnetzteileinschub.

Das Laufwerk war nicht mehr vollständig, irgend ein Modellbauer hat die 
Mechanik geerbt, die Steuerung hab ich noch irgendwo, weil mich das 
Einschubsystem gereizt hat.
Das ganze war nen Teil eines Entwicklerrechners oder Steuerrechners
von CEKO, dem Telefonabhörsystem der DDR.
Damit wurden die Leitungen nach dem Westen überwacht und abgehört.
Mit hunderten ferngesteuerter Tonbandgeräte! ;-O
Außerdem haben sich die "Kundschafter" gegenseitig belauert,
über nen "Harmoniumadapter", der im Telefon eingebaut war und
mittels ZF übertragen hat und der  Gegenstelle zur Auswertung.
(zur Loyalitätsüberprüfung der IM)

mfg

von Nikolaus S. (Firma: Golden Delicious Computers) (hns)


Lesenswert?

Ich habe mal einen Floppy-Controller-Adapter für 5"1/4 an einen 
PocketBeagle gebaut. Erwarteter Vorteil von diesem Ansatz: man schreibt 
nur einen Floppy-Low-Level-Treiber (Spur suchen und Sektor(en) 
lesen/schreiben) und um den Rest (Dateisystem) kümmert sich das Linux. 
Wenn man will kann die Floppy dann als USB-Memory präsentiert werden.
Ich hatte dann nur das Problem dass mein letztes noch vorhandenes 
5"1/4-Laufwerk nicht mehr funktioniert hat. Ich konnte zwar die Spuren 
auswählen, aber keine Daten sehen. Und so blieb das Projekt (wollte kein 
"neues altes" Laufwerk kaufen und auch mangels Priorität) bisher 
unvollendet.
Warum nicht ein externe 3,5-Zoll-Laufwerk mit USB-Anschluss zerlegen und 
dort das 5"1/4-Laufwerk anflanschen? Nach meinen Erkenntnisse sind weder 
Stecker noch Signale noch Software kompatibel.

von Peter G. (Gast)


Lesenswert?

Nikolaus S. schrieb:
> Warum nicht ein externe 3,5-Zoll-Laufwerk mit USB-Anschluss zerlegen und
> dort das 5"1/4-Laufwerk anflanschen?

Geht nicht. 5.25"-Laufwerke mit "HD" nutzen eine andere Drehzahl als 
3.5"-Laufwerke mit HD (und haben deswegen eine geringere Kapazität). 
3.5"-Laufwerke drehen mit 300 min-1, 5.25"-HD-Laufwerke drehen mit 360 
min-1.

Ein "richtiger" FDC wie der WD3765 kann damit umgehen, aber die Dinger 
in den USB-Diskettenlaufwerken können das nicht, die können noch nicht 
mal DD-Disketten ("720k") lesen.

> Nach meinen Erkenntnisse sind weder
> Stecker noch Signale noch Software kompatibel.

Stecker und Signale sind adaptierbar, die Software hingegen --s.o.-- 
nicht, es sei denn, es gelänge, die Firmware des USB-FDC zu verändern.

Henrik Haftmann hat sich mit dem Thema eingehender auseinandergesetzt:
https://www-user.tu-chemnitz.de/~heha/basteln/PC/usbfloppy/ -- aber 
irgendwann zwischendrin aufgehört.

von Stefan F. (Gast)


Lesenswert?

Ich hatte mal ein Floppy Laufwerk mittels WS37C65 an einen Parallel-Port 
des PC angeschlossen. Der Chip war gut dokumentiert und daher relativ 
einfach zu verwenden. Das geht sicher auch an einem Mikrocontroller.

http://bitsavers.informatik.uni-stuttgart.de/components/westernDigital/_dataBooks/1991_SystemLogic_Imaging_Storage/31_WD37C65C.pdf

Allerdings sind heute eher Mikro-SD Karten angesagt.

von Disque Bleu (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Ich hatte mal ein Floppy Laufwerk mittels WS37C65 an einen Parallel-Port
> des PC angeschlossen. Der Chip war gut dokumentiert und daher relativ
> einfach zu verwenden.

Angeschlossen schon, aber ich wette dass du über den Parallelport
keinen einzigen Sektor erfolgreich gelesen oder geschrieben hast.

von Stefan F. (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Floppy Laufwerk mittels WS37C65 ... angeschlossen

Sorry, der Chip heisst WD37C65

von Stefan F. (Gast)


Lesenswert?

Disque Bleu schrieb:
> aber ich wette dass du über den Parallelport
> keinen einzigen Sektor erfolgreich gelesen oder geschrieben hast.

Doch das ging. Allerdings war das Timing problematisch, hatte mich 
deswegen auf 720MB Disketten beschränkt.

von c-hater (Gast)


Lesenswert?

MaWin schrieb:

> Welchen, den 100 MHz Typen ? Muss man wohl noch ewig drauf warten.
> 16msps schafft kein 20 MHz Controller. Selbst wenn man per 10 MHz SPI
> einliest und die Bytes durch tabellengesteuerte state machines jagt,
> reicht es nicht.

Entweder hast du meinen Hinweis auf CCL überlesen oder du weisst nicht 
einmal, was das ist, weil deine AVR8-Kompetenz auf dem Stand von vor 
5..10 Jahren eingefroren ist.

Und was den Takt betrifft: ganz offiziell können die AVR8 heutzutage 
24MHz, inoffiziell sogar 32MHz.

Verstehst du jetzt das mögliche Grundkonzept?

Um das klarzustellen: Ich habe es nicht umgesetzt, weil Disketten für 
mich seit vielen Jahren (eigentlich sogar Jahrzehnten) ziemlich bis 
vollkommen irrelevant sind. Ich besitze inzwischen weder Disketten noch 
Laufwerke dafür mehr.

Ich halte es aber für durchaus möglich, mit den Features der neueren 
AVR8 einen HD-fähigen Floppycontroller umzusetzen. Konkret mit einem 
AVR128D(x)48 oder-64. Ich sehe eben bloß keinen Sinn darin, das tun zu 
wollen.

von Dirk S. (dirkst)


Lesenswert?

KB ( mit Gruss Stefan )

 wenn Du noch korrigieren kannst
 ..

Dirk

von Stefan F. (Gast)


Lesenswert?

Dirk S. schrieb:
> KB ( mit Gruss Stefan )
> wenn Du noch korrigieren kannst

Leider zu spät.

von Georg (Gast)


Lesenswert?

MaWin schrieb:
> Hier machen Viele den Eindruck, seit 1989 nichts mehr hinzugelernt zu
> haben.

Was Floppies betrifft gab es ja seitdem auch nichts mehr dazuzulernen. 
Halt wieder das übliche sinnfreie und unqualifizierte MaWin-Geschwafel.

Ich habe eine grössere Stückzahl Messmaschinen auf Z80-Basis mit 
Floppy-Interface mit dem Controller SAB2797 ausgeliefert. Dazugelernt 
habe ich seitdem zu Floppies tatsächlich nichts mehr, die funktionieren 
auch heute noch einwandfrei.

Vorher, in der Steinzeit, habe ich auch noch Floppy-Controller für 8 
Zoll gebaut mit Datenseparator aus Standard-TTL, weil der bei BASF nicht 
im Laufwerk enthalten war. Die Steuerung mit 2 x 8-Zoll-Floppy konnte 
man nicht alleine an der Maschine montieren, die wog wohl mehr als 20 kg 
und war nicht besonders handlich.

Georg

von (prx) A. K. (prx)


Lesenswert?

Georg schrieb:
> mit Datenseparator aus Standard-TTL, weil der bei BASF nicht
> im Laufwerk enthalten war

Der war meines Wissens noch nie im Laufwerk enthalten, so man das 
übliche Interface nutzte. Auch bei den Floppy-Controller ICs wie dem 
erwähnten µPD765 war der nicht drin. Controller mit integriertem 
Datenseparator kamen erst deutlich später.

Für FM reichte ein Monoflop. BTDT, Controller-Karte für 1 MHz 6502 
gebaut, für Laufwerk von BASF. Für MFM war der Prozessor sowieso zu 
langsam. Bei MFM war es komplizierter weshalb die Karte beim 68000 ein 
entsprechendes IC bekam.

: Bearbeitet durch User
von PittyJ (Gast)


Lesenswert?

Der TE hat sich nie wieder gemeldet.
Der verarscht uns doch.
Einfach ein paar Bröckchen hinwerfen, und hier wird diskutiert für 
nichts und wieder nichts.

von c-hater (Gast)


Lesenswert?

PittyJ schrieb:
> Der TE hat sich nie wieder gemeldet.
> Der verarscht uns doch.
> Einfach ein paar Bröckchen hinwerfen, und hier wird diskutiert für
> nichts und wieder nichts.

Naja, das typische Traffic-Troll-Konzept halt, sehr leicht erkennbar.

Ist aber nicht unbedingt immer vollkommen kontraproduktiv. Manchmal 
tauchen im Verlauf der Threads auch durchaus nützliche Informationen 
auf.

Aber klar: in der weit überwiegenden Mehrzahl sind diese Threads 
vollkommen nutzlose Gülle. Ich habe keine Ahnung, was die Trolle 
antreibt, sowas immer wieder anzukurbeln. Vermutlich einfach nur, weil 
es geht.

Die sollen sich einfach eine Freundin suchen und die "gewogen" halten. 
Dann sind sie sinnvoller beschäftigt. Ooops, ich habe das Risiko 
übersehen, dass sie sich dann vermehren könnten. "Begabung" verrerbt 
sich ja mit einer gewissen statistischen Signifikanz.

Diese Aussicht wäre natürlich auch wieder nicht so schön...

von (prx) A. K. (prx)


Lesenswert?

c-hater schrieb:
> Die sollen sich einfach eine Freundin suchen

Das haben sie wahrscheinlich schon ausprobiert. Und sind daraufhin auf 
ein einfacheres Publikum für ihre Scherze ausgewichen.

von MaWin (Gast)


Lesenswert?

Georg schrieb:
> Was Floppies betrifft gab es ja seitdem auch nichts mehr dazuzulernen.

Offenkundig doch, modernere bequemere Chips die du nie kennengelernt 
hast wegen Lernblockade.

von c-hater (Gast)


Lesenswert?

MaWin schrieb:

> Offenkundig doch, modernere bequemere Chips die du nie kennengelernt
> hast wegen Lernblockade.

Also ungefähr so, wie du neuere AVR8 und deren neue Fähigkeiten 
konsequent ignorierst? Auch Lernblockade?

von MaWin (Gast)


Lesenswert?

c-hater schrieb:
> Also ungefähr so, wie du neuere AVR8 und deren neue Fähigkeiten
> konsequent ignorierst? Auch Lernblockade?

Ich warte auf deinen Diskettenlaufwerksansteuercode, darf auch gern 
Assembler sein und blocking.

von c-hater (Gast)


Lesenswert?

MaWin schrieb:
> c-hater schrieb:
>> Also ungefähr so, wie du neuere AVR8 und deren neue Fähigkeiten
>> konsequent ignorierst? Auch Lernblockade?
>
> Ich warte auf deinen Diskettenlaufwerksansteuercode, darf auch gern
> Assembler sein und blocking.

Wie ich bereits ausgeführt habe, sehe ich keinerlei Nutzen darin, sowas 
heute noch umzusetzen. Wenn du einen Nutzen darin siehst, bin ich gern 
bereit, diese Entwicklung als Auftragsarbeit zu liefern. Die Frage wäre 
also nur noch: was drückst du dafür ab?

Ach so: für deine Bereitschaft, bei Lieferung öffentlich zu erklären, 
dass es 1. geht und du 2. selber unfähig warst, es umzusetzen, würde ich 
dir 1/3 der Vertragssumme erlassen. Das wäre mir der Spaß wert. Ich bin 
alt genug, die wahren Genüsse des Lebens schätzen zu lernen ;o)

von kannmannichvielzusagen (Gast)


Lesenswert?

Beitrag "Floppy FDD Diskette an AVR Mikrocontroller ATmega Beispiele Assembler"

(link in haftmann-material gefunden, link auf haftmann-material is hier 
irgendwo weiter oben im thread)

von Gerald K. (geku)


Lesenswert?

Stefan ⛄ F. schrieb:
> 720MB Disketten

MB oder kB ?

von S. R. (svenska)


Lesenswert?

An sich ist es sowieso egal. Wer heutzutage sowas für Retro entwickeln 
möchte, nimmt einen der üblichen Controllerbausteine. Natürlich keine 
SuperIO-Bausteine, sondern das in DIP und verfügbare Material.

Alle anderen nehmen direkt eine SD-Karte oder - ganz aktuell - einen 
CH375 für USB-Zugriff. Wenn man ein Floppy-Interface hat, dann lautet 
das Zauberwort "Gotek". Da steckt meist ein STM32 (oder Klon) drin und 
das ist auch ungefähr die Leistungsklasse, in der man die gesamte 
Diskettenwelt mit Software und in Echtzeit erschlagen kann.

Mit einem AVR und ohne zusätzliche Hardware macht das keinen Spaß. Ich 
gebe aber unserem Hassprediger recht, dass es vermutlich geht.

von Michael D. (nospam2000)


Lesenswert?

Josef P. schrieb:
> Ich habe schon einige Internetseiten angesehen, aber keinen Code
> gefunden.

Der Grund warum du keinen Code findest ist, dass es besser geeignete 
MCUs dafür gibt.

schau mal hier: https://github.com/keirf/Greaseweazle

  Michael

von c-hater (Gast)


Lesenswert?

S. R. schrieb:

> Mit einem AVR und ohne zusätzliche Hardware macht das keinen Spaß.

Der Spaß ist doch nicht, EINFACHE Sachen umzusetzen. Das kann doch 
jeder, wo soll da der Spaß herkommen? Ich hab' was geschafft, was jeder 
andere auch schaffen könnte?

Nö, der Spaß ist, Sachen an der Grenze des jeweils Machbaren umzusetzen. 
Was natürlich vor allem damit anfängt, erstmal zu erkennen, was (und wie 
genau es) machbar ist. Das ist eigentlich die Phase, wo es wirklich noch 
reiner Spaß ist.

Die Umsetzung ist dann natürlich auch schon wieder was hart an der 
Grenze zu Arbeit. Man muß wirklich gerne programmieren, um das dann 
durchzuziehen. Oder sich halt dafür bezahlen lassen, wenn irgendwie 
möglich. Daher wohl der Begriff "Schmerzensgeld" ;o

von Peter S. (cbscpe)


Lesenswert?

Floppies, auch 3 1/2 HD, lesen und schreiben geht mit einem AVR 
Prozessor ohne grösseren Handstand. Ich hatte damals einen Atmega1284P 
genommen, weil der hat genug RAM und läuft auch mit 20MHz. Später fand 
ich dann heraus 16MHz reichen völlig und man könnte es sicher auch mit 
weniger RAM machen (habe ich dann nicht mehr ausprobiert). Zuerst mal 
Sektoren lesen

https://www.5volts.ch/posts/mfmreader/

Dann Sektoren schreiben mit abgezählten Zyklen (sehr hässlich)

https://www.5volts.ch/posts/mfmwriter/

Und dann noch Sektoren schreiben mit Hilfe eines Timers (viel 
übersichtlicher)

https://www.5volts.ch/posts/mfmwriter2/

Das einzige Manko, es ist in Assembler.

Eigentlich sollte das die Grundlage für einen Floppy Controller Nachbau 
eines PDP-11 geben aber ich habe leider kein erschwingliches 8" Laufwerk 
mehr gefunden um das Projekt weiter zu führen.

von c-hater (Gast)


Lesenswert?

Peter S. schrieb:

> Das einzige Manko, es ist in Assembler.

Nein, das ist kein Manko.

Ein echtes Manko ist, wenn ein Assemblerprogrammierer nicht die 
tatsächlichen Mankos seiner Lösung zu erkennen vermag...

1. Du brauchst ein zusätzliches CPLD zum Lesen.

2. Das  Schreiben ist nahezu "blocking". Sprich: Solange dein 
Floppy-Code läuft, ist (fast) nix anderes möglich.

Und genau diese beiden Mankos könnte man halt mit den neuen Features 
z.B. eines AVR128DB48 beheben. "CPLD" hat der nämlich in Form der CCL 
bereits eingebaut und außerdem gute (De)Serializer, die sich wiederum 
sehr gut mit dem CCL verheiraten lassen.

Das zusammen führt dazu, dass z.B. eine echte "Fullspeed"-Bridge möglich 
wird, d.h.: bidirektionaler Datentransfer mit der vollen möglichen 
Geschwindigkeit des Laufwerks, z.B. von/zu einem SPI- oder 
UART-Interface.

Beitrag #7147332 wurde vom Autor gelöscht.
von Peter S. (cbscpe)


Lesenswert?

c-hater schrieb:
> Peter S. schrieb:
>
>> Das einzige Manko, es ist in Assembler.
>
> Nein, das ist kein Manko.
>
> Ein echtes Manko ist, wenn ein Assemblerprogrammierer nicht die
> tatsächlichen Mankos seiner Lösung zu erkennen vermag...
>
> 1. Du brauchst ein zusätzliches CPLD zum Lesen.
>
> 2. Das  Schreiben ist nahezu "blocking". Sprich: Solange dein
> Floppy-Code läuft, ist (fast) nix anderes möglich.
>
> Und genau diese beiden Mankos könnte man halt mit den neuen Features
> z.B. eines AVR128DB48 beheben. "CPLD" hat der nämlich in Form der CCL
> bereits eingebaut und außerdem gute (De)Serializer, die sich wiederum
> sehr gut mit dem CCL verheiraten lassen.
>
> Das zusammen führt dazu, dass z.B. eine echte "Fullspeed"-Bridge möglich
> wird, d.h.: bidirektionaler Datentransfer mit der vollen möglichen
> Geschwindigkeit des Laufwerks, z.B. von/zu einem SPI- oder
> UART-Interface.

1. Das vorgestellte Projekt ist das erste Projekt ohne CPLD. Das Projekt 
mit CPLD ist (noch) nicht veröffentlicht

2. Das Schreiben ist nicht nur nahezu sondern wirklich blocking, das 
Lesen übrigens auch

3. Du hast dich mit den CCL auseinandergesetzt? Ich glaube kaum, denn 
sonst wüsstest du, dass diese bei einer MFM dekodierung kaum 
gewinnbringend eingesetzt werden können, der Code bleibt blocking, habe 
es selbst ausprobiert

4. Was wirklich nötig wäre um so eine Aufgabe non-blocking zu machen 
wäre DMA, das haben die AVR128Dx leider nicht

Also zuerst lesen und dann meckern. Und zeig doch einfach mal wie du das 
gemacht hast

Peter

von Peter S. (cbscpe)


Lesenswert?

c-hater schrieb:
> Nein, das ist kein Manko.

Das war natürlich Ironie und gerade von dir hätte ich erwartet dass du 
sie erkennt.

von S. R. (svenska)


Lesenswert?

c-hater schrieb:
> Nö, der Spaß ist, Sachen an der Grenze des jeweils Machbaren umzusetzen.
> Was natürlich vor allem damit anfängt, erstmal zu erkennen, was (und wie
> genau es) machbar ist. Das ist eigentlich die Phase, wo es wirklich noch
> reiner Spaß ist.

Ja. Aber man macht so ein Projekt ja nicht, um so ein Projekt zu machen. 
In der Regel will man damit auch etwas bezwecken. Sei es, um seine PDP-8 
(oder deren Emulation) aufzuhübschen, oder die alten Disketten 
auszulesen oder irgendwas in der Art.

Da hilft einem ein Controller, der exakt auf Kante genäht und zu 98% mit 
der Auslastung des Algorithmus beschäftigt ist, nicht mehr weiter. 
Bringt ja auch nichts, wenn der zwar die Diskette lesen und schreiben 
kann, dann aber ewig mit der Datenübertragung zu PDP oder Z80 
beschäftigt ist.

Peter S. schrieb:
> Und zeig doch einfach mal wie du das gemacht hast

Kanner nich.
Oder vielleicht kanners doch, aber tuts nicht.
Vom Ergebnis her ist das identisch.

von c-hater (Gast)


Lesenswert?

Peter S. schrieb:

> 3. Du hast dich mit den CCL auseinandergesetzt?

Ja, sehr intensiv, wenn auch nicht unter dem Aspekt, ein 
Floppy-Interface damit bauen zu wollen. Die Erkenntnis, dass auch das 
damit möglich wäre, ist nur ein (für mich völlig nutzloses) 
Abfallprodukt.

> Ich glaube kaum, denn
> sonst wüsstest du, dass diese bei einer MFM dekodierung kaum
> gewinnbringend eingesetzt werden können

Das sehe ich definitiv völlig anders. Und wenn DU dich tatsächlich 
damit auseinandergesetzt hättest, würdest auch du das anders sehen...

> der Code bleibt blocking

Ähem nein.

> 4. Was wirklich nötig wäre um so eine Aufgabe non-blocking zu machen
> wäre DMA, das haben die AVR128Dx leider nicht

Das stimmt, DMA hat er nicht. Ist hier aber auch garnicht nötig. Um 
BYTES mit der nötigen Rate zu schaufeln, reicht es völlig. Mit den 
BITS muss er sich dank CCL+SPI ja nicht mehr beschäftigen.

> Also zuerst lesen und dann meckern. Und zeig doch einfach mal wie du das
> gemacht hast

Ich habe ausdrücklich gesagt, das ich es eben nicht gemacht habe. Ich 
könnte es aber jederzeit tun. Es muss mich bloß jemand dafür bezahlen, 
weil ich es weder für mich selber noch im Geschäft brauche. Wenn es also 
irgendwer braucht, steht es ihm frei, die Lösung bei mir zu kaufen. Dann 
kann er sie meinetwegen auch veröffentlichen. Solange der Urheber 
genannt und die eigene Unfähigkeit öffentlich dargelegt wird. 
Diesbezüglich biete ich dir dieselben Konditionen, wie ich sie MaWin 
angeboten habe.

Der scheint allerdings auf Floppy auch nicht so wirklich scharf zu sein. 
Was ich allerdings durchaus verstehen kann, ich selber bin es ja auch 
nicht. Aber für Geld...

von Lotta  . (mercedes)


Lesenswert?

Geiles Thema!

Wenn der TO jetzt ne alte Floppykarte mit ISA-Bus
nehmen würde, veieinfacht sich die Sache dann?
Die haben ja auch DMA gebraucht, oder irre ich mich da?

mfg

von foobar (Gast)


Lesenswert?

> Wenn der TO jetzt ne alte Floppykarte mit ISA-Bus
> nehmen würde, veieinfacht sich die Sache dann?

Hehe - so war die erste Generation von Festplattencontrollern für den 
Amiga aufgebaut: eine ISA-Karte mit OMTI-5520-Controller (MFM, später 
5527 für RLL) und ein einfacher Adapter für ISA- nach Zorro-Bus.  Der 
Grund für die ISA-Karten war aber nur, dass die, im Gegensatz zu den 
einzelnen Chips, spottbillig und überall verfügbar waren.  Könnte 
heutzutage bei den Floppycontrollern ähnlich sein ;-)

von MaWin (Gast)


Lesenswert?

Lotta  . schrieb:
> Geiles Thema!

Und, hast du irgendeinen Beitrag gelesen und dir irgendein Bild 
angesehen oder Link gefolgt ?

von Stefan F. (Gast)


Lesenswert?

Lotta  . schrieb:
> Wenn der TO jetzt ne alte Floppykarte mit ISA-Bus
> nehmen würde, veieinfacht sich die Sache dann?

Das ist ja das, was man mit dem WD37C65 (und ähnlichen) bekommt. Ein 
direktes paralleles µC Interface wie am ISA Bus. Den zweiten Chip dieser 
Karten (Adress Decoder) brauchen wir am Mikrocontroller nicht.

Seine Kern-Funktion war, beim den gewünschten Sektor zu finden und 
dessen Bits in Bytes umzuwandeln (bzw. anders herum beim Schreiben). 
Also primär ein Schieberegister mit der dazu nötigen Takt- und 
Zeitsteuerung. Das Einzige was ich an diesem Chip vermisse ist ein 
Pufferspeicher. Wenn er den Sektor gefunden hat, löst er einen Interrupt 
oder DMA aus und dann muss der Mikrocontroller die Daten so schnell 
übertragen, wie sich durch die Rotation der Disk ergibt.

> Die haben ja auch DMA gebraucht, oder irre ich mich da?

Nicht zwingend, geht auch ohne. Aber dann ist das Timing anspuchsvoll.

Nochmal der Link zum Datenblatt: 
http://bitsavers.informatik.uni-stuttgart.de/components/westernDigital/_dataBooks/1991_SystemLogic_Imaging_Storage/31_WD37C65C.pdf

von DerEgon (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Nicht zwingend, geht auch ohne. Aber dann ist das Timing anspuchsvoll.

Mit DD-Disketten (250 kBit/sec) haben das so langsame Geräte wie z.B. 
der Atari ST (mit 8 MHz getakteter 68k) oder auch noch langsamere 
8-Bit-Systeme hinbekommen.
Und wenn pro Byte ein Interrupt ausgelöst wird, sollte das auch bei HD 
(500 kBit/sec) ein typischer µC der Jetztzeit hinbekommen, den 
abzuarbeiten.

Die Interruptrate liegt bei 62.5 kHz. Das schafft ein AVR, der kann mit 
der Rate einen Sektorpuffer beschreiben bzw. auslesen.

von Georg (Gast)


Lesenswert?

Lotta  . schrieb:
> Die haben ja auch DMA gebraucht, oder irre ich mich da?

Gebraucht nicht unbedingt, aber auf dem ISA-Bus war DMA ja ohne Problem 
verfügbar. Das ist bei einfachen Controllern nicht so.

Georg

von 888 (Gast)


Lesenswert?

Georg schrieb:
> Lotta  . schrieb:
>> Die haben ja auch DMA gebraucht, oder irre ich mich da?
>
> Gebraucht nicht unbedingt, aber auf dem ISA-Bus war DMA ja ohne Problem
> verfügbar. Das ist bei einfachen Controllern nicht so.

Der IBM PC/XT war zu langsam, um die Daten zu Fuß über den ISA-Bus 
abzuholen. So ein Floppycontroller hat keinen Puffer, da muss man mehr 
oder weniger in Echtzeit abholen.

Schon beim IBM/AT mit 6 bzw 8 MHz war DMA nicht mehr nötig, da wäre es 
auch mit PIO gegangen. Aus Kompatibilitätsgründen hat man es aber 
beibehalten. Die meisten Festplattencontroller liefen aber mit PIO, und 
so kam es zu der absurden Situation, dass die "langsame" Floppy 
schneller angebunden war als die Winchesterlaufwerke.

DMA kam dann zu Pentium II-Zeiten wieder in Mode, mit den 
ATA-Laufwerken.

von MaWin (Gast)


Lesenswert?

DerEgon schrieb:
> Mit DD-Disketten (250 kBit/sec) haben das so langsame Geräte wie z.B.
> der Atari ST (mit 8 MHz getakteter 68k) oder auch noch langsamere
> 8-Bit-Systeme hinbekommen.
> Und wenn pro Byte ein Interrupt ausgelöst wird, sollte das auch bei HD
> (500 kBit/sec) ein typischer µC der Jetztzeit hinbekommen, den
> abzuarbeiten.
> Die Interruptrate liegt bei 62.5 kHz. Das schafft ein AVR, der kann mit
> der Rate einen Sektorpuffer beschreiben bzw. auslesen.

Du hast nicht verstanden, dass ein uC, wenn er ohne externen 
Datenseparator und ohne externe PLL auskommen soll, eine PLL in Software 
machen muss um den Drehzahlschwankungen folgen zu können  und man dafür 
eine 16 mal so hohe Samplerate des Datenstroms als notwendig für 
ausreichend zuverlässige Lesefähigkeiten erachtet. 8-fach mag auch noch 
irgendwie gehen mit Abstrichen an Zuverlässigkeit, aber 4-fach reicht 
sicher nicht.

Ebenso ist dir offenbar unklar, dass beim Schreiben nicht einfach ein 
Datenstrom mit z.B. 500kbps geschrieben wird, sondern die Flankenwechsel 
als PreShift um +/-125/250ns verschoben werden müssen, was auch 8MHz 
entspricht.

Anders gesagt: du hast keine Ahnung von Floppy-Technik und solltest 
lieber Schweigen als Unsinn vom Stapel zu lassen.

Alte Floppy-Controller ohne Spezial IC machten das mit einem Haufen an 
Zusatz-Schaltkreisen.

von DerEgon (Gast)


Lesenswert?

Soul E. schrieb:
> Der IBM PC/XT war zu langsam, um die Daten zu Fuß über den ISA-Bus
> abzuholen.

32 kHz Interruptrate mit einem 4.77-MHz-Prozessor bedienen, der pro 
Speicherzugriff vier Taktzyklen braucht (und hatte der nicht sogar noch 
Waitstates bei I/O-Zugriffen?) ... das ist halt deutlich langsamer als 
ein mit auch nur 1 MHz getakteter AVR. Allein das Auslösen eines 
Interrupts über den Interruptcontroller dürfte bei der 
PC-Hardwarearchitektur eine deutliche Latenz mit sich gebracht haben.

Tatsächlich wurde auf dem PC/XT sogar so verhältnismäßig langsames wie 
die UART aus Angst nicht im Interrupt betrieben, jedenfalls nicht von 
den dafür zuständigen Routinen im BIOS.

von (prx) A. K. (prx)


Lesenswert?

Soul E. schrieb:
> Die meisten Festplattencontroller liefen aber mit PIO, und
> so kam es zu der absurden Situation, dass die "langsame" Floppy
> schneller angebunden war als die Winchesterlaufwerke.

Der HDD Controller des PC/XT verwendete DMA. Allerdings lief das genau 
wie bei der Floppy über den langsamen DMA Controller, nicht über Bus 
Master DMA wie beim Adaptec AHA1542 SCSI Adapter.

: Bearbeitet durch User
von Lotta  . (mercedes)


Lesenswert?

MaWin schrieb:
> Lotta  . schrieb:
>> Geiles Thema!
>
> Und, hast du irgendeinen Beitrag gelesen und dir irgendein Bild
> angesehen oder Link gefolgt ?

Ja!
Ob ich ihn total verstanden hab, weiß ich aber nicht.
Die Beiträge im Forum lese ich aber normalerweise 3 mal:

mit positiver Einstellung
mit negativer Einstellung
zwischen den Zeilen.

Denn ich hab gelernt, das unter mancher knarzig-teerigen
Federung der OM's hier ne dicke Goldschicht zu finden ist,
wenn frau den Teer erstmal durchstoßen hat. ;-))

mfg

von DerEgon (Gast)


Lesenswert?

(prx) A. K. schrieb:
> nicht über Bus
> Master DMA wie beim Adaptec AHA1542 SCSI Adapter.

Den hätte man im PC oder XT nicht betreiben können.

Ich bin mir auch nicht sicher, ob das Hardwaredesign des PC bzw. XT 
überhaupt so etwas wie Busmaster-DMA zugelassen hätte; an Karten, die so 
etwas nutzten, könnte ich mich erinnern. Da der Festplattencontroller 
beim XT nichts standardisiertes war, sondern jeder Controller sein 
eigenes Süppchen gekocht hat (anders als beim AT mit dem WD1003, der in 
irgendeiner Form auch in heutigen SATA-Controllern drinsteckt), gab es 
natürlich etliche Möglichkeiten. Einig waren sie sich aber alle in 
einem: Sie waren langsam.
Die hypothetisch möglichen 500 kByte/sec Übertragungsrate erreichten 
MFM-Platten nur mit späteteren Controllern wie dem WD1006 (der ein RAM 
als Puffer für mehrere aufeinanderfolgende Sektoren verwendete und 
deswegen den "Interleave"-Betrieb unnötig machte).

von 888 (Gast)


Lesenswert?

Zu XT-Zeiten war 1:7 oder 1:11 Interleaving nicht ungewöhnlich. Da kommt 
dann mit jeder Umdrehung der Magnetscheibe ein Sektor. Und der wurde im 
Controller zwischengespeichert und konnte in Ruhe abgeholt werden.

von DerEgon (Gast)


Lesenswert?

Soul E. schrieb:
> Zu XT-Zeiten war 1:7 oder 1:11 Interleaving nicht ungewöhnlich.

Und damit werden aus den 500 kByte/sec Datenrate, die die Festplatte an 
den Controller liefert, mal eben knapp 72 kByte/sec oder sogar nur 45 
kByte/sec.

Heute bezeichnen wir Internetzugänge, die 500 kByte/sec liefern, als 
"Holzklasse".

von c-hater (Gast)


Lesenswert?

MaWin schrieb:

> Du hast nicht verstanden, dass ein uC, wenn er ohne externen
> Datenseparator und ohne externe PLL auskommen soll, eine PLL in Software
> machen muss um den Drehzahlschwankungen folgen zu können

Nein, das muss er eben nicht. Man kann eine PLL mit den Möglichkeiten 
der CCL der neuen AVRs rein in "Hardware" umsetzen. Der MCU-Core hat 
damit nur zu einem Zeitpunkt was zu schaffen, nämlich bei der 
Konfiguration der CCL. Das ist, was du scheinbar nicht zu begreifen 
vermagst.

CCL ist de facto ein sehr primitiver FPGA. Aber eben nicht zu primitiv 
für den konkreten Zweck, aus dem Lesesignal eines Floppylaufwerks einen 
sauberen decodierten Bitstream und den dazu passenden Takt zu erzeugen 
und das an eine der SPI-Einheiten eines AVR128Dx zu verfüttern.

Erst dann kommt die MCU in's Spiel, die die fertigen Bytes von der 
SPI-Einheit abholen und weiter leiten muss.

Dein reines C-Gefrickele hat dir scheinbar jede ernsthafte Kompetenz 
geraubt.

Witzig ist dabei: Diese Sache wäre sogar in C problemlos umsetzbar, da 
die SPI-ISR selbst in dem gräßlich ineffizientem C implementiert locker 
schnell genug für die anfallende Datenrate wäre...

von Bernd X. (Gast)


Lesenswert?

MaWin schrieb:
> Du hast nicht verstanden, dass ein uC, wenn er ohne externen
> Datenseparator und ohne externe PLL auskommen soll, eine PLL in Software
> machen muss um den Drehzahlschwankungen folgen zu können  und man dafür
> eine 16 mal so hohe Samplerate des Datenstroms als notwendig für
> ausreichend zuverlässige Lesefähigkeiten erachtet. 8-fach mag auch noch
> irgendwie gehen mit Abstrichen an Zuverlässigkeit, aber 4-fach reicht
> sicher nicht.

Und Du hast nicht verstanden, daß "DerEgon" sich auf die Nutzung eines 
FDC und den da rausfallenden Datenstrom bezieht.

von Stefan F. (Gast)


Lesenswert?

c-hater schrieb:
> Dein reines C-Gefrickele hat dir scheinbar jede ernsthafte Kompetenz
> geraubt.

Pädagogisch bist du ein trauriger Blindgänger.

Wenn du jemand persönlich beleidigst, verschließt er sich vor dir. Das 
ist ganz normales menschliches Verhalten. Darum sind deine ganzen 
Ratschläge in diesem Forum vollkommen sinnlos. Das Einzige, was wirksam 
bleibt, ist schlechte Stimmung.

von MaWin (Gast)


Lesenswert?

c-hater schrieb:
> Nein, das muss er eben nicht. Man kann eine PLL mit den Möglichkeiten
> der CCL der neuen AVRs rein in "Hardware" umsetzen

Nur zu.

Bei maximal 9 Gattern die auch noch dieselben Inputs sharen.

Übrigens unterlag DerEgon der irrigen Annahme, bloss weil ein alter 8 
bit uC auch irgendwie Floppies lesen konnte, müsste das ein AVR auch 
schaffen, und hat übersehen, dass der AVR das aber ohne Zusatzhardware 
(ausser Treibern) hinkriegen soll.

Ein WD37C65 oder GM82C765 ist jedoch eindeutig die bessere Losung - der 
enthält die Treiber schon.

von c-hater (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:

> Wenn du jemand persönlich beleidigst, verschließt er sich vor dir.

Du hast das immer noch nicht begriffen: Ein Nennung offensichtlicher 
Tatsachen ist keine Beleidigung.

Allenfalls kann sie als Beleidigung empfunden werden. Wenn man aber 
nichts mehr schreiben darf, was irgendeine Mimose möglicherweise als 
Beleidigung empfindet, ist das Internet de facto tot...

von DerEgon (Gast)


Lesenswert?

Nee, Du. Zwischendrin ging es darum, daß der olle PC für die Ansteuerung 
seines FDC ausgerechnet DMA brauchte, und daß ohne DMA das Timing 
besonders  kritisch wäre.

Und ich bezog mich explizit darauf, daß ein popliger AVR bei der 
Interruptbehandlung Kreise um den ollen PC rennt und die Interrupts 
eines FDCs bedienen kann.

Aus der Fragestellung des Threadstarters abzuleiten, daß unbedingt auf 
einen FDC verzichtet werden muss, ist allerdings auch nur einiger Leute 
Interpretation.

Beitrag #7150879 wurde von einem Moderator gelöscht.
von foobar (Gast)


Lesenswert?

... und irgendwann kommt raus, dass der TO eigentlich nur den Kopfmotor 
rattern lassen wollte ;-)

Beitrag #7150917 wurde von einem Moderator gelöscht.
Beitrag #7150949 wurde von einem Moderator gelöscht.
Beitrag #7150964 wurde von einem Moderator gelöscht.
Beitrag #7150971 wurde von einem Moderator gelöscht.
Beitrag #7150974 wurde von einem Moderator gelöscht.
Beitrag #7150980 wurde von einem Moderator gelöscht.
Beitrag #7150984 wurde von einem Moderator gelöscht.
von c-hater (Gast)


Lesenswert?

Stefan ⛄ F. schrieb im Beitrag #7150984:

> Gerne.

Na toll. Und was genau ist jetzt dein Beitrag? Rein technisch?

Geht's mit einem AVR128Dx? Ja oder nein, was sagst du? Wenn ja: warum? 
Wenn nein, warum nicht?

Das ist, was man Fakten nennt und worüber zu diskutieren wirklich 
lohnt. Alles andere ist sinnleerer Bullshit, vollkommen huppse...

von Stefan F. (Gast)


Lesenswert?

c-hater schrieb:
> was genau ist jetzt dein Beitrag? Rein technisch?

Das findest du selbst heraus indem du dir einfach mal meine Beiträge zum 
Thema anschaust.

von Peter S. (cbscpe)


Lesenswert?

Mich würde eigentlich doch noch interessieren ob es noch andere 
geschafft haben ohne CPLD und ohne FDC HD-Disketten zu lesen und zu 
schreiben.

Die CCL des AVR128Dx könnte man evtl. beim Schreiben eines Sektors 
verwenden um die NOR Logik nachzubilden um aus den Rohdaten einen MFM 
Datenstrom zu generieren. Aber leider scheitert die Idee mit dem SPI auf 
dem AVR128Dx daran, dass das SPI die Bytes nicht nahtlos schreibt. D.h. 
zwischen zwei Bytes, auch im buffered Mode, macht der AVR128Dx eine 
Pause von einem Bit, das ist natürlich ärgerlich und verhindert mit SPI 
und CCL einen MFM Datenstrom zu erzeugen. Man könnte das SPI 
Datenregister natürlich auch bitsynchron schreiben, aber dann wird das 
mit dem blockfreien schreiben nichts und man gewinnt also genau nichts.

Lesen ist eine ganz andere Liga, ist übrigens wesentlich komplizierter 
als Schreiben eines Sektors, hier muss man sich mit dem MFM Datenstrom 
synchronisieren damit man die Clock und Daten bits auseinanderhalten 
kann. Dazu muss man die SYNC bytes erkennen und sich darauf 
synchronisieren. Da reichen die CCLs definitiv nicht aus, denn ein CCL 
ist nur in etwa das gleiche wie 2 LUT eines FPGA, da kann man keine 
Statemachine bauen die ein 8-bit SYNC Byte erkennt, dazu braucht man 
mindestens 16 LUT. Das SPI ist hier auch nicht hilfreich, weil man 
müsste einen Clock für das SPI generieren, der mit der evtl. 
schwankenden Datenrate synchronisiert ist. Da reichen die 3 CCL auch 
wieder nicht. Im CPLD habe ich dazu eine Statemachine mit 4 Flip-Flops, 
und das nur weil ich statt 16-fach nur 8-fach oversample (es hat sich 
gezeigt, das Floppies meist genügend stabil laufen, so dass 16-fach 
oversampling nicht nötig ist wie das in den meisten FDCs mit digitalem 
Dataseparator gemacht wurde). Sonst würde es 5 Flip-Flps brauchen. Die 
CCLS des AVR128Dx stellen aber nur total 3 zur Verfügung.

Leider hat sich der OP nicht mehr gemeldet und so wissen wir bis heute 
nicht ob er nur die Floppies ansteuern will um den Kopf zu bewegen und 
den Motor anzusteuern oder ob er wirklich die Daten lesen und schreiben 
will. Ich nehme aber an das Zweite ist der Fall, denn für das erste gibt 
es jede Menge Beispiele im Internet.

Vielleicht werde ich mir mal die Zeit nehmen und das Projekt mit dem 
CPLD ins Netz stellen. Hier sieht das Ganze natürlich wesentlich 
entspannter aus. Eigentlich bildet das CPLD einfach nur den Datenpfad 
eines FDC ab, d.h. er ist in der Lage aus Bytes einen MFM Datenstrom zu 
erzeugen und aus einem MFM Datenstrom das SYNC Byte zu erkennen und wenn 
er synchronisiert ist den MFM Datenstrom in Bytes umzuwandeln. Hier muss 
der AVR natürlich nur alle 16usec (bei 3 1/2 HD Floppies) ein Byte 
liefern oder abholen, das geht natürlich auch in einer Interruptroutine. 
Wobei der AVR dann trotzdem ziemlich ausgelastet ist und man natürlich 
nicht allzu lange Zeit nach dem Interrupt hat das nächste Byte zu 
liefern. Das CPLD ist in Leserichtung nur einmal gepuffert und in 
Schreibrichtung gar nicht, d.h. hier dient das 8-bit Interface als 
Puffer. Hier würde sich natürlich der Level1 Interrupt des AVR128Dx 
anbieten damit man die Reaktionszeit garantieren kann. Meine CPLD Lösung 
braucht 143 LUTs und 53 Flip-Flops. Spezialisten bringen das sicher auf 
etwas weniger, aber wir sind weit entfernt von den 6 LUT und 3 
Flip-Flops im AVR128Dx.

Die Signale DIR, STEP, HS, DSx, MOTON, TRACK0, WG etc. werden aber 
weiterhin rein in der AVR Firmware bedient. Auch ein Format eines Track 
muss man zu Fuss machen.

Hier auch noch etwas Zusatzinformation zum Ursprünglich geplanten 
Projekt, einem Floppy Disk Controller für einen PDP-11. Hier ist es 
eigentlich absolut unwichtig ob der AVR die Floppies Blocking oder 
Nonblocking lesen oder schreiben kann. Im Fall eines PDP-11 schreibt das 
Betriebssystem nur die Information über den gewünschten Sektor in die 
Controller Register und auch eine DMA Adresse. Anschliessend setzt der 
PDP-11 das GO bit im Controller und ab dann ist das BUSY bit im 
Controller gesetzt und regiert nicht mehr auf PDP-11 Zugriffe. D.h. der 
AVR hat mehr oder weniger alle Zeit der Welt sich nur mit dem Floppy 
abzugeben, den Sektor zu lesen oder schreiben, und danach oder davor die 
Daten via DMA in den PDP-11 Speicher zu schreiben/lesen. Anschliessend 
aktiviert er wieder das Controller Interface, d.h. löscht das BUSY bit, 
für die PDP-11 ist das dann die Information ob die Controller Register 
einen Status zeigen und dass er wieder einen neuen Befehl schreiben 
kann. Der AVR kann das alles sequentiell machen, da braucht es kein 
non-blocking Floppy Interface. Ähnlich ist das auch auf meinem RLV12 
Emulator umgesetzt. Die bekannten Betriebssystem auf der PDP-11 
funktionieren damit ohne Probleme.

von Jedzia D. (Firma: Rast und Ruh) (jedzia)


Lesenswert?

S. R. schrieb:
> ... ist auch ungefähr die Leistungsklasse ...

Ich frag mich sowieso wieso niemand bisher "Use the right tool for the 
job" geflucht hat? (Na ja, eigentlich dreht sich ja der ganze Thread um 
das Thema, mehr oder weniger).

Was will jetzt Josef noch mal genau, ich bin durcheinander? **g**

: Bearbeitet durch User
von S. R. (svenska)


Lesenswert?

Lotta  . schrieb:
> Die haben ja auch DMA gebraucht, oder irre ich mich da?

Ja und nein. Weder der PCjr noch frühe Tandy-Systeme hatten einen 
DMA-Controller, also war er für DD-Formate nie zwingend nötig. 
HD-Formate können diese Systeme nicht verarbeiten.

Andererseits war DMA auf dem ursprünglichen PC/XT schneller als die CPU 
und für den Speicherrefresh ohnehin vorhanden, also hat IBM ihn auch für 
Disketten und Festplatten benutzt. Aus Kompatiblitätsgründen wurde das 
dann beibehalten, solange PCs mit Floppy-Controllern existierten.

DerEgon schrieb:
> Mit DD-Disketten (250 kBit/sec) haben das so langsame Geräte wie z.B.
> der Atari ST (mit 8 MHz getakteter 68k) oder auch noch langsamere
> 8-Bit-Systeme hinbekommen.

Ein ZETA V2 (kein DMA) schafft mit seinem Z80 bei 8 MHz auch 
HD-Disketten, aber nicht bei 4 MHz.

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.