Re: 3.5" Diskettenlaufwerk an 8051?

Vorsicht. Der Floppycontroller ist das letzte Gerät im PC, das den alten ISA-DMA-Controller braucht. In Deiner Schaltung wird DMA wohl einen deutlich erhöhten Aufwand bedeuten.

Idee: Sofern es nur um Einzelstückzahlen geht, nimm ein LS-120 Laufwerk. Das hat IDE. Den Rest kannst Du Dir von Projekten holen, die CF-Karten lesen und schreiben, denn CF wird meist auch als IDE-Gerät benutzt, und FAT ist es auch (wenn auch FAT32 bei den großen Karten und nicht FAT12 wie bei Disketten).

Mit freundlichen Grüßen

Dipl.-Ing. Frank-Christian Krügel

Reply to
Frank-Christian Kruegel
Loading thread data ...

Na dann viel Glueck. :-]

Ich glaub nicht. Die werden sich alle die Kugel gegeben haben.

Auch noch das Filesystem. Das wird ja immer besser.

Es gab in der C't mal einen Artikel wie man an einem Apple][+ ein

8Zoll Laufwerk anschliesst. Und das bereits mit einem sehr modernen (damals) Controller (IMHO WD297???) 8Zoll und 5 1/4/3.5 ist ziemlich aehnlich. Solltest du also mal lesen.

Die CPU ist da BESTENS beschaeftigt. Du musst diesen Controllern naemlich nicht einen Datenblock liefern und den Rest machen die dann schon (vgl: CF,MMC,SM) sondern die Bytes wirklich einzeln und schnell genug ranschaffen.

DAnn willst du noch ein Dateisystem nutzen. Du brauchst dafuer, selbst fuer das schreiben einzelner Blocks, mehr Ram als ein MCS51 hat. Dann sind defekte Sektoren auf eine Diskette keine Seltenheit. Du musst dich also wirklich auch darum kuemmern!

Sowas wuerde ich mir freiwillig nicht antun. Benutze lieber eine aktuelle Speicherkarte.

Olaf

--
D.i.e.s.S. (K.)
Reply to
Olaf Kaluza

In article , Michael Koch writes: |> Aber wie kommt man an den Source-Code? Hat das schon mal |> jemand auf 8051 programmiert?

es Dir um FAT12 ("DOS-Format") geht, gibt es dazu zumindest zig

Den Low-Level-Kram, d.h. das Ansprechen des auf der "billigen PC-Karte"

da ist das 82077-Datenblatt von Intel eine gute Hilfe.

Rainer

Reply to
Rainer Buchty

Rainer Buchty schrieb:

möglicherweise gabs da auch mal was im Elektor, näheres leider vergessen bertram

--
Bertram Geiger 
HTL-Bulme Graz, Austria
Reply to
Bertram Geiger

Michael Koch schrieb im Beitrag ...

Siehe de.sci.electronics FAQ:

formatting link
F.7.6. Massenspeicher an Mikrocontrollern Ein FDC-Controller (hast du offenbar schon), Code steht im BIOS deines Rechners (hast du also auch) DOS ist zwar nicht schwierig (es gibt reihenweise DOSse umsonst, z.B. C-DOS) aber gross. Die einfachere Variante (festes Format schreiben) wird daher in der FAQ vorgeschlagen, bist du offenbar selbst drauf gekommen.

--
Manfred Winterhoff, reply-to invalid, use mawin at gmx.net
homepage: http://www.geocities.com/mwinterhoff/
 Click to see the full signature
Reply to
MaWin

Naja, unbedingt brauchen wuerde ein moderne PC den DMA dafuer wohl nicht. Das ist wohl eher eine Frage der kompatibilitaet.

Aber man darf natuerlich fragen wieso das beim PC mit 4.77Mhz so gemacht wurde. Und die Antwort ist wohl das er sonst nicht schnell genug war. Von daher wuerde ich den Source der das nur mit einem MCS51 macht gerne mal sehen.

Olaf

--
D.i.e.s.S. (K.)
Reply to
Olaf Kaluza

Es gibt (gab?) eine Application-Note von SIEMENS um den 765er an einem

8051 zu betreiben. Ohne DMA. Ob eine 'alte' ISA-Karte geht, ist eher zweifelhaft. Jedenfalls nicht mit dem o.a. Sourcen (ID-Pin's und 'Dreh' im Datenkabel :-)

Ich glaube aber nicht, dass ich die vielen (40? :-) Seiten noch auf- treiben kann. Wenn ich mich nicht zu sehr irre, war der Code in PL/M :-)

Gruss, Holger

Reply to
Holger Petersen

Olaf Kaluza schrieb:

Der hätte das schon mit Polling machen können, war ja nur alle 32us ein Byte abzuholen.

Gruß Dieter

Reply to
Dieter Wiedmann

Ja, man braucht fuer die Ansteuerung keinen DMA-Controller. Vor langer Zeit gab es mal die 1581, eine 3.5"-Floppy fuer den C64/C128. Als Controller wurde dort ein WD1772 benutzt, als CPU ein 6502A. DMA-controller gab es keinen. Die CPU durfte es selbst erledigen und hat das auch hinbekommen.

Man wird feste pollen duerfen und besser nebenher die IRQs sperren damit wirklich nichts schiefgehen kann.

Aber ein 6502A (2 MHz) ist schnell genug? Interessant...

Gerrit

Reply to
Gerrit Heitsch

Da gibt es noch unzählige andere Dinge im PC-Design, bei denen man sich fragt, was die Designer damals wohl für ein Kraut geraucht haben...

Nö. Apple und Commodore haben schon Jahre vorher mit 65xx-CPUs (ca.

1MHz Takt) Floppy-Interfaces fast rein softwaremäßig realisiert, nur mit ein wenig Analogkram und TTL-Logik als Hardwareunterstützung. Mit der schnelleren CPU und dem Hardware-Controllerchip war die Aufgabe für IBM seinerzeit fast schon trivial.

Ist mit Sicherheit machbar. Die MCS51 können ja immerhin je 64k RAM und ROM adressieren, was ungefährt der Grundausstattung des Ur-IBM-PC entspricht. Vielleicht findet sich irgendwo im Netz noch alter Code...

Sowas heute neu zu entwickeln, wäre aber schon ziemlich krank. Flash-Karten sind billiger, schneller, und leichter anzusteuern als ein Floppylaufwerk.

Hergen

Reply to
Hergen Lehmann

In article , Gerrit Heitsch writes: |> Olaf Kaluza wrote: |> Ja, man braucht fuer die Ansteuerung keinen DMA-Controller. |> Vor langer Zeit gab es mal die 1581, eine 3.5"-Floppy fuer den |> C64/C128. Als Controller wurde dort ein WD1772 benutzt, als |> CPU ein 6502A. DMA-controller gab es keinen. Die CPU durfte |> es selbst erledigen und hat das auch hinbekommen.

Dito in diversen 198x Synthesizern als Kombination 6809/WD1772.

Bei der 1581 war das tatsächlich reines Polling, IRQ mußte aber dennoch "auf" sein wegen der seriellen Kommunikation, d.h. der 8520 hustete ab und zu dazwischen.

Im Falle besagter Synthesizer (konkret Ensoniq SQ80 -- Georg, hör auf mit den Augen zu rollen :), hing DRQ (1772) über einen Inverter an IRQ# (6809) und IRQ (1772) ebenfalls invertiert an NMI# (6809).

Effektiv war der 6809 auch nur mit 2MHz unterwegs.

|> Man wird feste pollen duerfen und besser nebenher die |> IRQs sperren damit wirklich nichts schiefgehen kann.

s.o.

|> > Aber man darf natuerlich fragen wieso das beim PC mit 4.77Mhz so |> > gemacht wurde. Und die Antwort ist wohl das er sonst nicht schnell |> > genug war. |> |> Aber ein 6502A (2 MHz) ist schnell genug? Interessant...

Jup, das kann schon sein. Beim 8086/88 war bereits ein Buszyklus satte 4 Taktzyklen und ein gesamter Befehl (wenn wir mal MUL/DIV außer acht lassen) bis zu ~25 Zyklen.

Beim 6502 hingegen war ein Befehl zwischen 2 und 5 Zyklen abgehakt.

Als weitere Beispiele aus der Historie:

In der 1541 (5.25", DD) macht ein 1MHz-6502 *alles*, d.h. sogar die Rohdatendekodierung. Bei der SFD1001 (5.25", QD) teilen sich zwei 6502 den Bus (geht bei dem Prozessor ja wunderbar einfach), der eine spielt Datensammler, der andere (De)koder.

Rainer

Reply to
Rainer Buchty

Aber keine HD-Floppy mit 1.44MB und nicht ohne Grund mit einem sehr abstrusen inkompatiblen Datenformat. Auf einen Ehring Controller war deutlich mehr drauf!

Olaf

--
D.i.e.s.S. (K.)
Reply to
Olaf Kaluza

Ich weiss nicht was du willst, aber PL/M scheint mir der Sache angemessen zu sein. :-]

Olaf

--
D.i.e.s.S. (K.)
Reply to
Olaf Kaluza

ACK - trotzdem war ich anfangs dieses Jahres so krank und habe genau das mit einem SMSC FDC37C78 an einem Rabbit 8-Bitter gemacht. War etwas aufwendiger als zuerst gedacht, hat aber alles in allem Spass gemacht.

Markus

Reply to
Markus Zingg

GCR ist nicht abstrus sondern deutlich besser als MFM. Auf eine DS/DD-Disk bekommt man mit GCR mehr als 1 MB Nutzdaten drauf. Bei MFM braucht man dafuer schon HD.

Abgesehen davon benutzen schon die Laufwerke von C= damals etwas was die PC-Welt erst spaet bei IDE-Platten zu sehen bekam, Zone-Bit-Recording. Je nach Position auf der Diskette wurden unterschiedliche Sektorenzahlen geschrieben was die Oberflaeche _deutlich_ besser ausnutzte.

Die C= 1581 hat zumindest DD mit einem 6502A und einem WD1772 ohne DMA-Controller hinbekommen. HD gabs beim PC erst ab dem AT, also ist DD durchaus vergleichbar.

Gerrit

Reply to
Gerrit Heitsch

Die hatte der IBM-PC mit seinen 4.77MHz auch nicht. Dessen Laufwerke brachten gerade mal 360kByte auf zweiseitigen 5.25"-Discs unter, kaum mehr als bei der Konkurrenz (AppleII: 140kb einseitig, Commodore1541:

170kb einseitig).

Als die 1.44MB-Floppies aufkamen, hatten wir schon 386er, die wiederum die Datenrate problemlos per Polling hätten abwickeln können. Tatsäch- lich wäre Polling auf diesen Maschinen wahrscheinlich sogar schon performanter gewesen, als die völlig veralteten DMA-Controller und der durch sie verursachte, recht erhebliche Software-Overhead.

Wie schon von Gerrit erwähnt, war das keineswegs abstrus. Jeder kochte damals sein eigenes Floppy-Formatsüppchen, und das IBM-MFM-Format war auch nicht mehr, als eben ein IBM-Format, und technisch eher sogar unterlegen.

Ja. Dieser Mehraufwand war AFAIR erforderlich, um für den CP/M-Emulator all die unzähligen inkompatiblen Formate lesen zu können.

Hergen

Reply to
Hergen Lehmann

In article , Olaf Kaluza writes: |> Aber keine HD-Floppy mit 1.44MB und nicht ohne Grund mit einem sehr |> abstrusen inkompatiblen Datenformat. Auf einen Ehring Controller war |> deutlich mehr drauf!

HD gab's damals noch nicht mal für 5.25" und das "abstruse, inkompatible" Datenformat heißt Group Code Recording (GCR), welches damals gar nicht so abstrus war, wie Du heute vielleicht annimmst, und auch heute noch abseits von Commodore und Apple im Einsatz ist (Stichwort: Tape Storage).

Vielleicht riecht es für Dich ja nicht mehr so altertümlich, wenn Du GCR einfach als RLL(0,2)-Code betrachtest.

Rainer

Reply to
Rainer Buchty

Wo wir gerade schon dabei sind.. gibt es irgendwo eine gute Beschreibung der verschiedenen Codes?! Bei den Suchbegriffen findet google fast ausschliesslich kurze Lexikoneinträge oder C64-Seiten, die aber auch nicht näher auf das genaue Verfahren eingehen.

--
thomas.kindler@gmx.de, www.kreapc.de
Reply to
Thomas Kindler

In article , Thomas Kindler writes: |> Wo wir gerade schon dabei sind.. gibt es irgendwo eine gute Beschreibung |> der verschiedenen Codes?! Bei den Suchbegriffen findet google fast |> ausschliesslich kurze Lexikoneinträge oder C64-Seiten, die aber auch |> nicht näher auf das genaue Verfahren eingehen.

eine gute MFM-Einführung:

formatting link

FM/MFM

formatting link

diverse Aufzeichnugsverfahren

formatting link

ähnlich, aber auf englisch
formatting link

und MFM "zu Fuß", d.h. mit minimaler Hardware und umso mehr Software: http://209.239.50.176/afr/

Sehr gute, umfassende Zusammenstellung, leider nur noch via web.archive.org:

formatting link

Rainer

Reply to
Rainer Buchty

Michael Koch wrote: : Hallo,

: ich möchte ein 3.5" Diskettenlaufwerk an einen 8051 (oder : schnelleren Kompatiblen) anschliessen. Die Hardware ist kein Ein AVR mit 12 MHz (ja, ist kein 8051!) sollte doch mit wenig externer Unterstützung in der Lage sein, eine Floppy anzusteuern. Das Hauptproblem dürfte der Datenseparator sein. Das Filesystem selbst ist unter der Voraussetzung einer konstanten Dateigröße eher trivial, da nur Start und Endsektor bekannt sein müssen. Das Filesystem kann ja am PC erstellt werden. Der große Vorteil ggü. einer Flashkarte ist die derzeit noch leichte Verfügbarkeit von Floppylaufwerken. Allerdings ist mittlerweile ein Universalleser für den USB auch kein großes Problem mehr.

Reply to
Peter Heitzer

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.