FLUXCOPY: Projekt zum fluxbasierten Kopieren von hard- und softsektorierten Disketten via USB

  • FLUXCOPY: Projekt für Hard- und Software zum Kopieren von hard-sektorierten Disketten


    Hallo,


    Im Zuge meiner Arbeiten für die Konvertierung von CP/M und UCSD Disketten-Images habe ich eine Menge Know How gesammelt (siehe SAMCONV.xls). Für das Erstellen und Zurückschreiben der Images wird dabei SAMdisk (Tool von Simon Owen) am PC verwendet. Das hat jedoch seine Grenzen. Am PC können nur Disketten gelesen oder geschrieben werden, für die der Diskettencontroller ausgelegt ist. Das ist meist ein µPD765 oder ein ähnliches Produkt. Damit lassen sich jedenfalls nur soft-sektorierte Disketten im FM- oder MFM-Format bearbeiten. Andere Formate sind nicht erfassbar, da der Controller dies ablehnt.


    Natürlich gibt es diverse Tools, wie z.B. Kryoflux und Co, mit denen auch andere Formate gelesen und geschrieben werden können. Voriges Jahr klagte mir Günther ( gpospi) sein Leid, dass er für seine AES-Lanier Textverarbeitungsmaschine keine neuen Disketten erstellen kann, da es kein Kopier-/Formatierungsprogramm dafür gibt. Es handelt sich dabei um 5.25“ hard-sektorierte Disketten mit 16 FM-formatierten Sektoren,  d.h. es gibt 17 Indexlöcher in der Diskette. Bei einem Versuch in meinem PC wurde die Diskette nicht einmal erkannt. Liegt am Laufwerk, das mit so kurzen Intervallen beim Index nichts anfangen kann und glaubt es sei gar keine Diskette im Laufwerk.


    Günther konnte mit Kryoflux wohl Images aufzeichnen, aber beim Rückschreiben auf Diskette gab es Probleme. Laut Kryoflux Doku ist nur das Lesen möglich, nicht aber das Schreiben. Günther konnte Kryoflux mit einem Trick überlisten, indem er 16 Indexlöcher abdeckte und damit eine Softsektor-Disk vortäuschte. Allerdings gab es dann beim Einlesen auf dem Originalsystem (nachdem wieder alle Löcher freigemacht wurden) jede Menge Lesefehler, die vermutlich auf die Drehzahlschwankungen der Laufwerke zurückzuführen sind. Vermutlich verwendet dieses System keine PLL (phased locked loop) um die Schwankungen auszugleichen, sondern liest mit fixem Timing die Daten ein. Damit ist dieser Weg eher unbrauchbar.


    Dieses Problem wurde schon in einem anderen Thread ausführlicher diskutiert. Es gibt dort auch ein Bild vom AES-System:


    Bild von AES


    mein heutiger Eintrag zu FLUXCOPY



    Damit war der Start eines neuen Projektes geboten! Gemeinsam mit Günther möchte ich ein Kopiersystem für die AES-hardsektor-Disketten (16 Sektor FM) bauen.



    Das Projekt „FLUXCOPY“

    Das System sollte aus unserer Sicht folgendes können:


    Einlesen via USB-Schnittstelle von hard-sektorierten Disketten am Windows-PC mit einem noch zu entwickelden Programm „FLUXCOPY“ und einer ebenfalls neu zu entwickelden Zusatzhardware „FLUXTEEN“. Die Images der einzelnen Tracks werden als .FLX-Dateien (eigenes Format für FLUXCOPY) am PC gespeichert. Die so gespeicherten Images sollen später auf andere, unformatierte Disketten gleichen Formats (gleiche Anzahl Sektoren) trackweise zurück geschrieben werden können. Das Ziellaufwerk kann, muss aber nicht dasselbe wie beim Einlesen sein. D.h. Unterschiede bei den Drehzahlen sollen berücksichtigt werden. Die Diskettenlaufwerke sind nicht Teil des Projektes.



    Anmerkung: Ich habe vor die externen Laufwerke meiner Philips P2500 dafür verwenden. Die 96tpi DD Laufwerke sind in einem eigenen Kabinett (inkl. Netzteil) verbaut und werden über ein 34-poliges Flachkabel am FLUXTEEN angeschlossen. Da der Anschluss weitgehend standardisiert ist, sollte ein Anschluss von ähnlichen Laufwerken ebenfalls möglich sein.



    Nächstes Mal werde ich die Überlegungen zu FLUXTEEN (Hardware) präsentieren.


    Grüße


    PAW

  • An dem Problem haben sich wohl viele schon die Zähne ausgebissen.


    Es scheitert wohl daran, dass man keine Laufwerke hat, die "gut genug" funktionieren.


    Eine perfekte Kopie könnte man aber auch Recht einfach herstellen.

    Zwei Laufwerke gleicher Bauart.

    EINE Achse die beide Disketten antreibt.


    Der Rest ist wohl nur eine Frage von analog Technik.

  • ine perfekte Kopie könnte man aber auch Recht einfach herstellen.

    Zwei Laufwerke gleicher Bauart.

    EINE Achse die beide Disketten antreibt.

    Sowas gibt es fertig zu kaufen : das DEC RX50 Laufwerk. Ist allerdings single sided, da musste man die 2 Seiten in einzelne Arbeitsschritte verteilen.


    Und arbeitet bitte mit aehnliche Projeckte in USA mit...

  • Und so sieht ein RX50 aus, wenn man es gerade zerlegt hat. Der Motor vorne (weiß) treibt über einen Riemen beide Diskettenpulleys an. Die Disketten werden entsprechend gegeneinander verdreht eingelegt. Das kann schon mal verwirren...



    Suche Teile und Geräte für DEC PDP8 Systeme, DEC PDP 11/40 (Unibus) und Teletype ASR-33+ ASR-35. Sowie Zubehör, Doku usw. aus dem Umfeld.

  • Zitat von gnupublic

    Und so sieht ein RX50 aus, wenn man es gerade zerlegt hat. Der Motor vorne (weiß) treibt über einen Riemen beide Diskettenpulleys an. Die Disketten werden entsprechend gegeneinander verdreht eingelegt. Das kann schon mal verwirren...

    Sieht interessant aus!


    Aber wie funktioniert das, wenn die zweite Disk in die verkehrte Richtung dreht?


    Zitat von Diddl

    An dem Problem haben sich wohl viele schon die Zähne ausgebissen.


    Es scheitert wohl daran, dass man keine Laufwerke hat, die "gut genug" funktionieren.


    Ich gehe mal davon aus, dass es nicht scheitern wird.


    Man braucht dazu kein perfektes Laufwerk! Im AES ist ja auch kein perfektes Laufwerk verbaut und es läuft trotzdem und das funktioniert vermutlich so ...


    Bei den Soft-Sektor Disks werden Gleichlaufschwankungen durch die PLL im Kontroller (z.B. µPD765) ausgeglichen.


    Bei den Hardsektorierten ist die Sache anders. Hier gehe ich davon aus, das eine relativ simple Decoderlogik dahinter steckt, welche auf fixen Timings für die Datenzellen beruht. Dafür werden aber nur kurze Datensequenzen geschrieben/gelesen, nämlich maximal ein Hardsektor. Damit wirken sich Drehzahlschwankungen bei der AES-Diskette nur zu einem Bruchteil (1/16) aus.


    Daher ist es unumgänglich, die Sektor-Löcher beim Lesen und Schreiben zu berücksichtigen, und das haben wir vor!


    Grüße


    PAW

  • Der Riemen treibt beide Pulleys an. Die sind einzeln aufgehängt. Daher ist die Drehrichtung entgegengesetzt.

    Suche Teile und Geräte für DEC PDP8 Systeme, DEC PDP 11/40 (Unibus) und Teletype ASR-33+ ASR-35. Sowie Zubehör, Doku usw. aus dem Umfeld.

  • ...und da die Sektorlocher bei den beidern Floppies (links/rechts) unterschiedlich positioniert sind, musste man den Sektor trotzdem bufferen. Womit die RX50 idee eigentlich schon wieder obsolete ist. Sollte so fruh am Morgen nich versuchen nachzudenken....

  • Bei den Soft-Sektor Disks werden Gleichlaufschwankungen durch die PLL im Kontroller (z.B. µPD765) ausgeglichen.


    Bei den Hardsektorierten ist die Sache anders. Hier gehe ich davon aus, das eine relativ simple Decoderlogik dahinter steckt, welche auf fixen Timings für die Datenzellen beruht. Dafür werden aber nur kurze Datensequenzen geschrieben/gelesen, nämlich maximal ein Hardsektor. Damit wirken sich Drehzahlschwankungen bei der AES-Diskette nur zu einem Bruchteil (1/16) aus.


    ich dachte immer, dass der einzige Unterschied darin liegt, wie der Controller einen Spur und Sektoranfang erkennt.


    Natürlich wird die ganze Sache komplexer, wenn man versucht eine ganze Spur am Stück zu lesen oder zu schreiben. Da muss man beim Schreiben Rücksicht drauf nehmen natürlich, und für jeden Sektor erneut das Indexloch abwarten.


    Bei "modernen" Laufwerken kommt noch dazu, dass das Indexsignal oft noch intern verwendet wird, um ein "READY" für die Elektronik zu erzeugen. Das kann man ganz einfach beheben, indem man das interne Signal durch Magnet und Hallsensor erzeugt, so wie es auch alle 3,5" Floppies machen. Umbauanleitungen gibt es im Zusammenhang mit Flip-Disk Umbauten für Kryoflux z.B.


    An der Drehzahlregelung selbst kann das keinen Unterschied machen: die geschieht eh über mehrere Hallsensoren im Direktantriebsmotor, oder aber bei Riemenantrieb über Tachospule im Motor.


    Das Signal der Lichtschranke muss man eben um die interne Elektronik herum zum Shugart Anschluss führen.


    Das ganze Problem sehe ich nur in Software für Kryoflux, Greaseweasel oder wie auch immer. nochmal eine neue Hardware wird da doch nicht notwendig sein.

    Zuletzt repariert:

    10.11. defektes µT RAM im Apple //e ersetzt

    10.11. defektes µT RAM im Atari 130XE ersetzt

    12.11. VC20 mit black screen: defekter Videotransistor ersetzt

  • FLUXTEEN: Hardware zum Ansteuern von bis zu vier Floppy Laufwerken via USB


    Überlegungen zu FLUXTEEN


    Um einen Floppy Drive via USB steuern zu können, benötigt man einen Prozessor. Die reinen Steuersignale, wie Motor On, Step Impulse, Read Only, etc., sowie der Anschluss mit USB ließen sich ohne weiteres mit einem Arduino UNO bewerkstelligen. Anders sieht es mit den Schreib- und Lesedaten aus. Die Fluxwechsel benötigen eine wesentlich höhere Datenrate als mit einem UNO (16MHz) zu erreichen wäre. Kryoflux arbeitet z.B. mit einer Samplingrate von rund 24MHz, andere Systeme z.B. mit 16MHz. Aus diesem und anderen Gründen habe ich mich für einen TEENSY 4.1 entschieden, der mit einer CPU-Speed von 600MHz arbeitet und auch über ein superschnelles 512KB-RAM verfügt. Die Samplingrate wird voraussichtlich 25MHz betragen. Preislich ist auch nicht viel Unterschied. Ein TEENSY 4.1 kostet rund 30,- Euro. Einen Nachteil gibt es allerdings: der TEENSY 4.1 verträgt nur I/O-Spannungen bis max. 3.3 Volt. Das heißt es müssen Levelshifter davor und danach geschaltet werden, was aber auch kein Problem darstellt.

    Da der TEENSY 4.1 jede Menge an Timern, Countern, etc. enthält sind außer den bereits erwähnten Levelshiftern, keine ICs nötig. Lediglich einige Widerstände, Leuchtdioden, ein paar Kondensatoren, sowie der 34-polige Anschlussstecker für das Flachkabel zum Floppylaufwerk sind noch erforderlich. Die Stromversorgung von FLUXTEEN erfolgt ausschließlich über den Micro-USB Anschluss (5Volt/max. 500mA).


    Programmieren lässt sich der TEENSY mittels C++ und der Teensyduino IDE. Diese ist gratis im Netz verfügbar und ist auch relativ einfach zu bedienen. Läuft bei mir sowohl unter WIN XP als auch WIN 10.



    Hier eine „Hand-Skizze“ (mit Word gezeichnet) für die Schaltung des FLUXTEEN




    Grüße


    PAW

  • Hier ein erster Testaufbau zu FLUXTEEN:



    Um auch den kleinen SMD-Chip (74VHC14) am Breadboard montieren zu können, benötigt man einen Adapter. Ich habe folgenden gefunden:




    Auf einer Platine sind 3 Adapter. Man bricht jeweils einen ab und lötet dann den Bauteil drauf. Die Adapter bieten auf der Rückseite auch Pads für die wesentlich kleineren TSSOP-16 Bauteile. Leider gibt es nur Adapter für 16-polige Chips, ist aber auch kein Problem. Bei den 14-poligen Chips bleiben halt 2 Pins frei. Lediglich die Beschriftung der Pins stimmt dann nicht überein.


    Hier ein Muster mit einem 74HC4049 (war mein erster Lötversuch):



    Um mit dem Board experimentieren zu können, benötigt man noch entsprechende Software-Tools. Ich benutze dafür, die schon länger von mir verwendete, ARDUINO IDE, welche gratis im Netz verfügbar ist.


    Auf Windows XP kann die Version 1.8.5 installiert werden (letzte Version für XP). Auf Windows 10 können auch neuere Versionen verwendet werden. Ich arbeite derzeit mit Vers. 1.8.13. Abgesehen von kleinen Unterschieden im Handling können beide Versionen benutzt werden.


    Nähere Erläuterungen zu Arduino und Arduino IDE möchte ich mir sparen, zumal dazu im Netz unzählige Artikel zu finden sind.


    Wie schon der Name sagt, sind mit diesem Entwicklungssystem die diversen ARDUINO-Modelle & Kompatible (z.B. Iduino) programmierbar.


    Um auch TEENSY-Modelle programmieren zu können bedarf es noch einer Zusatzsoftware (ebenfalls gratis im Netz): Teensyduinoinstall.exe. Diese wird auf die Arduino-IDE aufgespielt. Ab diesem Zeitpunkt sind auch sämtliche TEENSY-Modelle in der IDE verfügbar, inklusive diverser Beispielprogramme.



    Damit lässt sich ein erster Funktionstest des TEENSY 4.1 ausführen.


    Als nächstes möchte ich einen Sketch (so werden die Programme für Arduino, Teensy und Co. genannt) erstellen, mit dem man ein Diskettenlaufwerk ansteuern kann, d.h. Drive selektieren, Motor starten und Index Impulse auslesen. In der Folge sollten dann auch das Track0 Signal erfasst und einzelne Spuren (Tracks) angesteuert werden.


    Grüße


    PAW

  • Leider ist die Kryoflux Software nicht Open Source. Das Stream Protocol ist wohl dokumentiert, aber eigene Schreibroutinen in Kryoflux einzubauen (für Hard Sectored Disks) dürfte nicht so einfach sein. Außerdem ist die CPU auf Kryoflux wohl relativ langsam, das begrenzt natürlich das mögliche "Oversampling" bzw. die Genauigkeit. SuperCard Pro wäre hier vielleicht eine interessante Alternative, leider habe ich damit aber selbst keine konkreten Erfahrungen.

  • ERSTER SKETCH für FLUXTEEN



    So sehen die Laufeigenschaften meines P2500 Floppy Drives Nr.1 aus.


    Mit dem Testaufbau konnte ich bereits die P2500-Diskettenlaufwerke ansteuern, d.h. Drive selektieren, Motor starten und Index Impulse auslesen. Damit lässt sich z.B. die Umdrehungsgeschwindigkeit genau messen. Meine drei Philips Laufwerke weichen etwas vom Standard von 300RPM ab. Die Werte liegen etwas höher, bis zu ca. 305RPM und schwanken auch von Umdrehung zu Umdrehung. Details siehe im EXCEL-Sheet.


    P2500 Intervals.zip


    Daraus ist ersichtlich, dass das Laufwerk 3 die schlechtesten Gleichlaufeigenschaften aufweist. Die RPM-Differenz bezieht sich immer auf den vorangegangenen Durchlauf. Das ist in Zukunft beim Schreiben wichtig, da die Daten an die zu erwartende Geschwindigkeit angepasst werden müssen. Weicht die tatsächliche Geschwindigkeit von der vorhergesagten stark ab, dann könnte das Probleme verursachen, speziell bei Formaten die keine PLL verwenden. Ich habe alle drei Laufwerke jeweils mit einer Softsektor- und anschließend mit einer Hardsektordiskette getestet.


    Die Kommunikation zwischen PC und FLUXTEEN erfolgt zur Zeit mittels des Serial Window der Teensyduino IDE. Ich habe Befehle im FLUXTEEN implementiert, mit denen ich die Funktionen aufrufen und die Ergebnisse ansehen kann.


    Nach dem Start meldet sich FLUXTEEN mit folgender Meldung:



    Durch Senden der Befehlsfolge: @1?x3s

    werden das Laufwerk 1 gestartet und die Indeximpulse 3 Sekunden lang ausgelesen.



    Die Wete habe ich dann in die Zwischenablage kopiert und ins EXCEL übertragen.


    Für den Fall dass jemand die Schaltung schon nachbauen möchte, stelle ich hier den Hexfile für den FLUXTEEN rein:


    FLUXCOPY_MINI010_Forum.ino.zip


    Um diesen zu Laden muss das Teensy Ladeprogramm gestartet werden. Dieses findet man (wenn Teensyduino IDE installiert ist) üblicherweise unter …\hardware\tools\teensy.exe



    Im Menü „File“ gibt es den Punkt „Open HEX File“. Hier kann man das HEX-File auswählen und öffnen. Zu dem Zeitpunkt muss dann der TEENSY angeschlossen sein.



    Durch Drücken des „Öffnen“-Buttons wird das File in den TEENSY geladen (geht in Sekundenschnelle).


    Danach blinkt die LED am TEENSY relativ rasch. Sobald der Serial Monitor aktiviert ist, kommt die Startmeldung und die LED blinkt nur ganz schwach.


    Nun kann der Test beginnen. Diskettenlaufwerk anschließen, Diskette einlegen und los geht’s!


    Viel Spass!


    PAW


    P.S.: Als nächstes möchten wir die Schaltung mittels KiCad umsetzen.

    Einmal editiert, zuletzt von PAW () aus folgendem Grund: P.S. hinzugefügt

  • Neues Tool:

    USB-SERIAL MONITOR


    Ich habe im Zuge des Projektes ein kleines Windows Tool, ähnlich dem Serial Window von Arduino IDE, entwickelt und möchte es hier zur Verfügung stellen. Es bietet die Möglichkeit der Kommunikation via serielle Schnittstellen unter Windows (Win XP aufwärts). Es ist keine Terminal-Emulation! Es werden keine Steuerzeichen (abgesehen von CR LF) interpretiert!


    Im ZIP-File sind auch zwei Beispiele für Verknüpfungen.


    USB-Serial-Monitor.zip


    Die Verwendung ist wie immer auf eigenes Risiko. Der Verkauf ist verboten.


    Es bietet ein paar zusätzliche Features gegenüber dem Serial Window (z.B. 2 Speichertasten STO1/RCL1 und STO2/RCL2, zum Zwischenspeichern von Sendetexten). Es braucht allerdings RICHTX32.OCX (im Netz frei verfügbar) und läuft sowohl unter WinXP (nicht auf früheren Windows Versionen), als auch unter Win 10 (64-Bit), vermutlich auch auf anderen Versionen, habe ich aber nicht getestet. Eine kleine Hilfe ist im Programm eingebaut.

    Das Programm lässt sich ja nicht nur für Arduinos verwenden, sondern überall, wo serielle V24-Geräte (COM1 - COM255) angesteuert werden sollen. Optimiert und getestet habe ich das Programm allerdings für die Verwendung mit dem TEENSY 4.1. Der ist höllisch schnell und überträgt mit etlichen Megabits pro Sekunde über die USB-Schnittstelle. (ca. 500Kilobyte in rund einer Sekunde, geschätzt).


    Nach dem Start wird folgendes Formular angezeigt:



    COM2 ist standardmäßig eingestellt, ebenso 9600 Baud, 8 Datenbits, kein Parity, 1 Stopbit, ohne Handshake


    Die COM-Schnittstelle kann direkt im Formular geändert werden, so lange nicht gestartet wurde. Die seriellen Parameter lassen sich nur beim Aufruf mittels Commandline Parameter ändern. Bei Kommunikation mit TEENSY via USB-Serial braucht nur die COM-Nummer eingestellt werden. Die Baudrate, etc. wird ignoriert!


    Hinweis: Über die Commandline Parameter lassen sich auch andere Voreinstellungen handhaben (z.B.: Texte auf den STO-Buttons, etc.)


    Die Commandline Parameter lassen sich ganz einfach in einer Verknüpfung eintragen. Das heißt, man legt eine Verknüpfung an, geht auf Eigenschaften und hängt bei Zielparameter die Commandline Parameter an.



    Im Beispiel /M="baud=115200 parity=N data=8 stop=1" /C="19"

    wird auf 115 Kilobaud gestellt, sowie COM19 ausgewählt.


    Näheres zu den Parametern findet man in der eingebauten Help.


    Das Programm arbeitet mit den WIN API Funktionen, die möglicherweise auch ein Handshake ermöglichen. Dieses Feature habe ich aber nicht getestet.



    Damit lassen sich leicht mehrere Instanzen mit verschiedenen COM-Nummern und Baudraten anlegen.


    Nun kann die Kommunikation gestartet werden (START)



    Nun erscheinen weiter Bedienungselemente.

    (Im Bild oben war eine Arduino UNO angeschlossen, der sich bei Start meldete. Siehe großes Empfangsfeld.)


    In dem einzeiligen Eingabefeld können Zeichen zu Senden eingetragen werden. Durch Drücken der Entertaste oder betätigen des SEND-Buttons werden die Daten abgeschickt.



    Ob and den Text noch ein CR oder LF angehängt werden soll, lässt sich mit der Option „Send after Text“ einstellen.


    Sollen die eingegebenen Zeichen sofort (ohne Sendbutton) gesendet werden, kann „prompt sending“ angehakt werden.


    Ist „clear after sending“ aktiviert, werden die gesendeten Zeichen sofort wieder gelöscht.

    Undruckbare Zeichen können mittels „spezial char #nnn“ eingegeben werden. Diese werden aber nur interpretiert, wenn die Option angehakt ist.


    Zum Zwischenspeichern von max. 2 Textfolgen gibt es die Tasten STO1 und STO2. Mit RCL1 und RCL2 können diese abgerufen werden. (Wie bei einem Taschenrechner.)


    CLRi löscht das Eingabefeld


    LASTi holt die zuletzt gesendete Zeichenfolge wieder in das Eingabefeld zurück


    Ist die Kommunikation gestartet, dann läuft die „Uhr“. Diese wird bei jedem Senden auf Null zurückgesetzt. Solange die Uhr läuft, können Daten empfangen werden. Ist „Auto Scrol“ aktiv, werden sie auch gleich im Empfangsfeld angezeigt.


    Mit STOP kann die Kommunikation beendet werden. Damit wird auch die COM-Schnittstelle freigegeben und andere Programme können darauf zugreifen. In diesem Zustand kann auch die COM-Nummer, falls gewünscht, geändert werden.


    Mit START wird die Kommunikation wieder gestartet.


    EXIT schließt die Kommunikation und beendet das Programm


    DEL-Button löscht den kompletten Empfangsbereich


    Das Empfangsfeld kann während des Empfangs ca. 1 MB beinhalten. (Wenn zu groß, würde er Zeichen beim Empfang verlieren!). Weitere Daten werden angehängt, aber der Anfang des Feldes wird entsprechend gekürzt. Damit man auch längere Datentransfers betrachten kann, gibt es zusätzliche Buffer, die etwa 10MB zwischenspeichern können. Dies wird auch in den beiden Feldern „Displayed Bytes“ und Buffered Bytes“ angezeigt. Wird die Buffer-Kapazität überschritten werden Teile des Buffers gelöscht. Der „Display Buffer“-Buttom zeigt den kompletten Buffer im Empfangsfeld an, solange keine neuen Daten empfangen werden.


    Hier wurden ca. 1,6 Mio. Zeichen empfangen und ca, 1MB wird im Empfangsfeld angezeigt.



    Ich hoffe, dass das Tool für den Einen oder Anderen von Nutzen ist.


    Grüße


    PAW

  • FLUXTEEN - Schaltplan


    Ich habe mich in der Zwischenzeit mit KiCad befasst. Ich finde, es ist ein gutes Tool, mit dem man in relativ kurzer Zeit Schaltpläne und in der Folge auch Platinen-Layouts erstellen kann. Ist jedenfalls kein Vergleich mit den Tools, die ich vor über 30 Jahren verwendet habe.


    FLUXTEEN-100.pdf


    Die Schaltung hat sich gegenüber dem ursprünglichen Entwurf nur minimal geändert. Ich habe sie im Wesentlichen um zwei LEDs ergänzt, sowie um eine Alternative zum SMD-Chip 74VHC14. Als Alternative für den invertierenden Schmitt-Trigger ist ein nicht invertierender Levelshifter 74HC4050 im DIP16-Gehäuse vorgesehen. Dies bietet den Vorteil, dass man keine SMD-Bauteile verlöten muss. Es darf aber nur einer der beiden Bauteile verbaut werden! Im Prinzip könnte auch ein invertierender Levelshifter 74HC4049 eingebaut werden. Diese Konstellation habe ich aber nicht getestet.


    Außerdem sind Lötjumper zu allen Floppy-Anschlüssen vorgesehen, falls irgendwelche Leitungen aufgetrennt oder anders verschaltet werden sollen. Die Batteriehalterung (für die im TEENSY eingebaute RTC) wird für die geplanten Funktionen nicht benötigt, da die Uhrzeit sowieso vom PC kommt.


    Anmerkung zum 74VHC14: Dieser Chip verträgt Eingangsspannungen bis zu 5.5Volt, auch wenn die Versorgungsspannung Vcc kleiner ist (3,3Volt von TEENSY)! Bei anderen Typen wie 74HC14 ist dies nicht der Fall. Diese vertragen nur Vcc + 0,3Volt am Eingang!


    Die zukünftige Software wird selbst erkennen können, ob die Eingänge invertiert oder nicht invertiert sind.


    Grüße


    PAW

  • FLUXTEEN - Printplattendesign


    Hier ist das Platinen Layout für FLUXTEEN.



    Die Abmessungen sind:            125mm / 61mm. (Änderungen vorbehalten)


    Zusätzlich zu dem im Schaltplan eingezeichneten 34 poligen Flachkabelanschluss habe ich noch einen 34 poligen Edge-Connector vorgesehen, wie er auch an meiner Philips P2500 (externe Laufwerke) vorgesehen ist. Die Anschlüsse sind wahlweise zu verwenden.


    Wie schon erwähnt, wird der Batterieanschluss und der Micro-SD-Einschub derzeit nicht verwendet.


    Grüße


    PAW

  • Sieht gut aus. :)


    Dies Mikro USB Anschlüsse sind halt meist so filigran und reißen sehr leicht aus.

    Warum nimmt man nicht die große Variante die am Arduino Uno drauf ist?



    Was ist eigentlich der Unterschied zu meiner SuperCard pro?

    CBMSTUFF.COM

  • Zitat von Diddl

    Dies Mikro USB Anschlüsse sind halt meist so filigran und reißen sehr leicht aus.

    Warum nimmt man nicht die große Variante die am Arduino Uno drauf ist?

    Da must Du den TEENSY-Hersteller fragen. Vermutlich ist Aufgrund der minimalen Größe des TEENSY 4.1 kein Platz vorhanden. Der Anschluss befindet sich nicht direkt auf dem FLUXTEEN-Board sondern auf dem aufgesteckten TEENSY 4.1. Sollte er mal kaputt gehen, liese er sich leicht tauschen.


    Zitat von Diddl

    Was ist eigentlich der Unterschied zu meiner SuperCard pro?

    Ich kenne die Supercard nur aus Deinem Link.


    Hier sehe ich einige Unterschiede:


    1.) Bei SCP gibt es keinen Hinweis auf hard sektorierte Disketten. Kann es diese überhaupt lesen? Kryoflux kann zumindest lesen. Ziel von FLUXCOPY/FLUXTEEN ist es (vorerst) Hard-Sektor-Disketten von AES-Lanier lesen und schreiben zu können. In weitere Folge könnten auch andere Formate folgen. Die Software ist aber erst in Entwicklung und wird noch eine Weile dauern. Wie ja bekannt ist, bietet kein anderer Hersteller das Schreiben für hard sektorierte Disketten an.


    2.) FLUXTEEN verwendet nur "Standardbausteine", welche selbst zusammengebaut werden können (müssen), da es keine Fertigung dafür gibt. Die Kosten werden vermutlich auch unter denen von SCP liegen, zumal der Hauptanteil beim TEENSY 4.1 mit ca. 30 Euro zu Buche schlägt. Der Rest ist eher "Kleinkram".


    3.) FLUXTEEN verwendet die wesentlich neuere und leistungsfähigere Hardware!

    - - - SCP verwendet CPU PIC24HJ256GP210A @160MHz (40 MIPs)

    +++ FLUXTEEN verwendet TEENSY 4.1 mit 600MHz


    === RAM: 512K bei beiden vorhanden


    === Storage: micro-SD card slot bei beiden vorhanden (wird aber bei FLUXCOPY nicht verwendet)


    - - - SCP hat nur einen bi-directionalen 34 Pin Floppy Drive Anschluss

    +++ FLUXTEEN hat wahlweise einen 34 Pin Stecker, als auch einen 34 Pin Edge-Connector


    Aufgrund der wesentlich schnelleren CPU mit 600MHz (entspricht ca. 600 bis 1000MIPs, weil ein bis zwei Befehle pro Takt ausgeführt werden können!!!) kann die Programmierung praktisch ohne zu Hilfenahme eines Assemblers vollständig in C++ durchgeführt werden.


    Grüße


    PAW

  • Ein paar Platinen hätte ich für Euch zur Verfügung, den Teensy habe ich im Eckstein-Shop bestellt. Dort bekommt man ihn nämlich schon mit Pins und erspart sich das Löten. Siehe https://eckstein-shop.de/PJRC-…bit-ARM-600-MHz-Cortex-M7.

    Cool, ich nehme gerne eine Platine, und falls du Teile übrig hast, auch gerne diese dazu.


    Was braucht man für ein Floppy Laufwerk?

    Welche können denn Hard Sector Disketten verarbeiten?

  • Ein paar Platinen hätte ich für Euch zur Verfügung, den Teensy habe ich im Eckstein-Shop bestellt. Dort bekommt man ihn nämlich schon mit Pins und erspart sich das Löten. Siehe https://eckstein-shop.de/PJRC-…bit-ARM-600-MHz-Cortex-M7.

    Cool, ich nehme gerne eine Platine, und falls du Teile übrig hast, auch gerne diese dazu.


    Was braucht man für ein Floppy Laufwerk?

    Welche können denn Hard Sector Disketten verarbeiten?

    Hinsichtlich Laufwerk: Ich habe am Kryoflux mit einem Panasonic JU-475 erfolgreich Hardsector Disks eingelesen. Viele andere Laufwerke erkennen Hardsector Disks nicht (die schnelle Abfolge der Index-Pulse wird als "no Disk" interpretiert). Für Softsector Disks kannst Du im Prinzip ein beliebiges Laufwerk verwenden.

  • Zitat von Diddl

    Was braucht man denn um den Controller des Teensy zu flashen?
    Einen STM32 Programmer oder sowas?

    Hallo Diddl,


    zum Flashen brauchst Du keinen eigenen Programmer. Es genügt das Ladeprogramm wie es weiter oben beschrieben ist: Thread #13 zeigt wie man HEX-File lädt


    Falls Du aber auch gerne experimentieren möchtest, empfehle ich die komplette Arduino IDE und Teensyduino (enthält auch das Ladeprogramm) gratis runter zu laden. Dann kannst Du auch eigene Skatches damit erstellen und in den TEENSY (oder auch ARDUINO) laden. Der TEENSY 4.1 ist ja sehr vielseitig verwendbar, auch wenn die FLUXTEEN-Platine speziell auf Floppyansteuerung ausgelegt ist.


    Derzeit experimentiere ich mit meinen 640KB Philipslaufwerken (96tpi, double side, DD). Das ist die Geometrie, die für AES-Disketten nötig ist (wobei allerdings single side reichen würde). Andere Laufwerke (wie HD, etc.) werde ich mir erst ansehen, wenn meine Konstellation läuft.


    Die FLUXCOPY/FLUXTEEN Software ist noch in Arbeit und wird noch längere Zeit dauern. Ist eine Menge Arbeit!!!


    +++ Ausloten der Möglichkeiten von TEENSY 4.1 (gelöst)


    +++ Recherchen betreffend genaue Funktionsweise der Disketten wie Fluxwechsel, Modulation, Timing, Write Precompensation, Laufwerkseigenschaften, Gleichlauf, Sektorlöcher, etc. (in Arbeit)


    +++ Konzept wie die Daten gelesen/geschrieben werden sollen (während der Datenübertragung von/zu PC oder unabhängig trackweise lesen/schreiben und danach/davor Daten übertragen). Habe mich für letzteres entschieden. (gelöst)


    +++ Auswahl des unterstützten PC-Betriebssystems: Windos XP und Windows 10 und VB6 Compiler (fertig)


    +++ Kommunikation zwischen FLUXTEEEN und FLUXCOPY via USB-Serial Schnittstelle (gelöst)


    +++ Ansteuerung des Diskettenlaufwerkes wie Selektieren, Steppen, Indexerkennung, etc. (in Arbeit)


    +++ Lesen der Fluxwechsel einer Diskette (in Arbeit)


    +++ Konzept zur Speicherung der Fluxdaten auf dem PC (weitgehend fertig)


    +++ Schreiben einer AES-Hard-Sektor-Diskette (offen)


    +++ Test der Ergebnisse


    +++ Überarbeiten der Software vor Veröffentlichung der HEX und EXE Files


    +++ Dokumentation



    Sobald ich etwas Funktionierendes habe, werde ich ein HEX-File hochladen (ähnlich wie im Thread #13). Achtung! Das Hexfile in #13 ist nur für die invertierende Version (Bestückung mit 74VHC14, eventuell auch 74HC4049) geeignet. Neuere Versionen werden beide Varianten können.


    Was die Ausführung des TEENSY 4.1 betrifft, mit oder ohne Stiftleisten, ist im Prinzip egal. Habe beides probiert. Ist in einem Fall halt mehr Arbeit, funktioniert aber genau so gut.


    Grüße


    PAW

  • FLUXTEEN - Platinen


    Variante 1 mit DIP16 bestückt und TEENSY 4.1



    Nachdem ich von Günther vor ein paar Tagen die Printplatten bekam, habe ich zwei Varianten bestückt. Variante 1 ist mit einem 74HC4050 (nicht invertierend) bestückt, Variante 2 mit dem SMD-Bauteil 74VHC14 (invertierend). Letzterer war für mich wesentlich schwieriger zu Löten. Ob die Verwendung von 74HC4050 Nachteile bringt muss ich noch näher mit dem Scope überprüfen (Signalverzögerung von Eingang zu Ausgang, etc.). Bei ersten Tests verhielten sich die Varianten gleichwertig.


    Variante 2 mit SMD-Chip (noch ohne TEENSY)



    Keinesfalls dürfen beide Chips (U1 und U5) bestückt werden!


    Grüße


    PAW

  • Ich habe jetzt die beiden FLUXTEEN Varianten am Scope verglichen.


    Variante 1 hat eine minimal größere Verzögerung des Signals (ca. um 10nsec mehr als Variante 2), was aber bei den zu verarbeitenden Signalen nicht relevant ist. (Raster für Fluxwechsel ist 40nsec).


    Variante 1 mit 74HC4050 (nicht invertierend):

    Signal 2 (unteres) ist der Input




    Variante 2 mit 74VHC14 (invertierend):

    Signal 2 (unteres) ist der Input



    Grüße


    PAW

  • Guter Tip, hab mir mal 2 solche Teensy 4.1 bestellt.

    Die Teensy sind jetzt angekommen :)

    Super. Möchtest Du nun eine oder zwei FluxTeen Platinen? Ich kann am Wochenende dann auch sehen, welche Bauteile ich für Dich zur Verfügung hätte. Im Grunde sind sie aber alle leicht bei Reichelt & Co erhältlich.