"Minidisk" Philips X1250

  • Hier mal wieder ein Update zu meinen Forschungsarbeiten an der Platte.


    Mittlerweile kann ich große Bereiche der Platte lesen. Dabei muss ich aber gelegentlich meine Parameter anpassen, um fehlerfreie Ergebnisse zu erzielen. Manchmal klappt das garnicht, und es bleibt bei CRC-Fehlern im Datenbereich des Sektors.

    Dazu kommt der Eindruck, dass verschiedene Teile der Platte unterschiedlich formatiert sind. Insgesamt sehr seltsam.


    Mittlerweile habe ich auch versucht, die Platte zu beschreiben. Leider habe ich da wenig Erfolg - auf der Platte landet nie genau das, was ich schreibe.


    Ich habe das dann systematisch mit wechselndem Timing und Pulsbreiten durchgetestet und dabei festgestellt, dass im Schnitt alle 120-150 Fluxwechsel einer oder mehrere davon verloren gehen. Das passiert ziemlich sicher beim Schreiben, denn mit dem Oszilloskop kann ich diese Fehler bei wiederholten Lesen jedesmal wiederfinden. Gelegentlich wird an dieser Stelle aber auch eine Folge zu schneller Fluxwechsel gelesen.


    Es wird also irgendetwas geschrieben, das beim Lesen mal mehrere schnelle Fluxwechsel und mal gar keinen Wechsel liefert.


    Trotz aller Bemühungen konnten diese Fehler nicht reduziert werden, weshalb ich jetzt nicht mehr richtig weiter weiß...


    Ein sinnvolles beschreiben der Platte ist jedenfalls aktuell nicht möglich!

  • Mal ein paar blöde Ideen:

    Ist die Datenmenge/Drehzahl von der Spur abhängig?

    Gibt es vielleicht Zwischenspuren, die für Positionsdaten und nicht für Daten sind?

    Schreibst du vielleicht in den Nicht-Benutzerbereich?

    Da war doch was mit einem Pre-Comp beim Schreiben?

    Hatten manche Datenträger nicht eine abweichende SChreib-/Leseposition (irgendwie in die Richtung es wird XXxs vorher geschrieben.

    ::solder::Ich "darf" beruflich basteln...

  • Mal ein paar blöde Ideen:

    Ist die Datenmenge/Drehzahl von der Spur abhängig?

    Drehzahl auf keinen Fall, die ist konstant.

    Datenmenge/Datenrate grundsätzlich auch nicht - es sind immer 60 Sektoren, aber tatsächlich hatte ich auf der innersten Spur eine etwas andere Formatierung mit minimalen Änderungen im Verhältnis Nutzdaten zu Synchronisationsdaten.

    Aber das ist quasi eine Schicht höher - meine Fehler liegen in ausbleibenden / überflüssigen Fluxwechseln.


    Gibt es vielleicht Zwischenspuren, die für Positionsdaten und nicht für Daten sind?

    Schreibst du vielleicht in den Nicht-Benutzerbereich?

    So etwas kennt diese Platte nicht. Jedenfalls waren die beiden Spuren, die ich bisher zum Testen genommen habe, vorher normal formatiert und enthielten z. T. auch normale Daten/Programmcode.

    Da war doch was mit einem Pre-Comp beim Schreiben?

    Hatten manche Datenträger nicht eine abweichende SChreib-/Leseposition (irgendwie in die Richtung es wird XXxs vorher geschrieben.

    Ja, da habe ich mir auch Gedanken drüber gemacht. Aber erstens spielt das in der Regel nur bei den inneren Spuren eine Rolle - außen sollte das kein Thema sein. Und ich teste absichtlich auf einer Spur ganz außen und einer ganz innen. Das Problem tritt in beiden Fällen auf.


    Außerdem wird die write precompensation nach meinem Verständnis nur bei speziellen Bitkombinationen benötigt, um zwei dicht aufeinander folgende Fluxwechsel zu entzerren - mal wird dazu etwas früher geschrieben, mal etwas später.


    Bei meinen Versuchen habe ich aber einfach nur in festem Abstand Fluxwechsel geschrieben. Dabei gingen hin und wieder einfach Fluxwechsel verloren - egal ob ich die im Abstand von 500ns oder 1000ns geschrieben habe.


    Ich habe den Verdacht, dass die Schreibverstärker nicht ausreichend starke Signale erzeugen und das entstandene schwache Signal beim Lesen nicht reicht, um bei der folgenden Digitalisierung wieder ein Ausgangssignal zu liefern.


    Georg

  • Ich habe das dann systematisch mit wechselndem Timing und Pulsbreiten durchgetestet und dabei festgestellt, dass im Schnitt alle 120-150 Fluxwechsel einer oder mehrere davon verloren gehen. Das passiert ziemlich sicher beim Schreiben, denn mit dem Oszilloskop kann ich diese Fehler bei wiederholten Lesen jedesmal wiederfinden. Gelegentlich wird an dieser Stelle aber auch eine Folge zu schneller Fluxwechsel gelesen.


    Es wird also irgendetwas geschrieben, das beim Lesen mal mehrere schnelle Fluxwechsel und mal gar keinen Wechsel liefert.


    Trotz aller Bemühungen konnten diese Fehler nicht reduziert werden, weshalb ich jetzt nicht mehr richtig weiter weiß...


    Hallo Georg


    Hast Du auch mit dem Scope die Schreibdaten angesehen, ob tatsächlich alle gewünschten Fluxwechsel geschrieben werden? Dies, um auszuschließen, dass der TEENSY beim Schreiben etwas anders macht, als vorgesehen. Sind auch die elektrischen Pegel auf den Schreibleitungen OK?


    Welche Impulsdauer verwendest Du beim Schreiben? Also nicht die 500-750-1000nsec, sondern wie lange ist der "Low"-Impuls bei jedem Fluxwechsel. Der sollte ja jedes mal gleich lang sein, egal ob 500-750-1000nsec geschrieben werden.


    Grüße, PAW

  • Hi PAW,


    Ja, die Schreibdaten habe ich mir auch angesehen, die waren OK. Also im Sinne der Vollständigkeit.

    Die Pegel waren etwas schwach (3,xxV) und die Flanken nicht die Schönsten, aber meineserachtens in Ordnung.

    Ich hatte auch schon den Verdacht, dass die Pullups in der Platte etwas zu "rustikal" für die Treiber des FLUXCOPY sein könnten, aber dann müsste das genau auf der Grenze des korrekten liegen, weil ja 99% der Pulse richtig geschrieben werden.


    Mit den Pulsdauern habe ich einiges ausprobiert. Ich habe mit den 200ns angefangen, die ich auch beim Lesen erhalte. Dann habe ich es auch mal mit 50% probiert, und die dritte Variante war 250ns, weil das besser in das Zeitraster passt.

    Ich habe auch mit größeren Abständen experimentiert, also 1250 oder 1500ns. Dabei waren die "Verluste" aber noch viel höher. Die Impulslängen scheinen also in der Plattenelektronik eingebaut zu sein. Genau wie die 200ns - die liefert die Platte immer, egal wie ich geschrieben habe.


    Die besten Ergebnisse habe ich tatsächlich mit den Kombinationen 200ns/300ns, 200ns/550ns und 200ns/800ns.

  • Ich hatte auch schon den Verdacht, dass die Pullups in der Platte etwas zu "rustikal" für die Treiber des FLUXCOPY sein könnten, aber dann müsste das genau auf der Grenze des korrekten liegen, weil ja 99% der Pulse richtig geschrieben werden.


    Der ULN2003A auf FLUXTEEN kann bis zu 500mA pro O.C.-Pin ziehen. Das ist weit mehr als übliche Schnittstellentreiber liefern. Sollte also stark genug sein.

  • Ok, da braucht man sich um die Treiber keine Sorgen zu machen. Trotzdem sehen die Schreibsignale etwas grenzwertig aus.


    Hier die Oszillogramme von den Schreib- und Lesesignalen:



    Beim Schreiben habe ich einen Hub von nur 2,7V, vor allem aber einen Low-Pegel von 400mv - das ist schon arg eng, oder?


    Zum Vergleich die korrespondierenden Signale an der Leseleitung:



    Wie man auch sieht, habe ich die 1000ns mit meinem Timing fast genau getroffen; hier sind es 1020ns. An anderer Stelle können es auch mal ein paar Nanosekunden mehr oder weniger sein. Auch beim Lesen haben wir eine Abweichung, die aber ebenfalls leicht variiert.


    Ich hatte tatsächlich auch schon den Verdacht gehabt, dass ich z.B. Pulse mit 1020ns und die Platte in einem festen Raster von z.B. 1040ns schreibt. Dann hätten wir tatsächlich nach einiger Zeit einen so großen Versatz, dass ein Puls verloren geht - u.U. auch mit einer entstehenden Lücke.

    Um das auszuschließen habe ich dann mal bewusst längere Pulse (1050 oder 1100 Nanosekunden) geschrieben - und die Aufzeichnungen auf der Platte wurden dann entsprechend länger. Die oben gezeigten Unterschiede entstehen also eher durch Messungenauigkeiten oder Gleichlaufschwankungen.


    Auf den Verdacht bin ich übrigens gekommen, weil die Platte grundsätzlich - d.h. völlig unabhängig von der Länge des negativen Impulses beim Schreiben - den negativen Impuls immer mit einer Länge von genau 200ns liefert. Da dachte ich, dass vielleicht auch die positiven Impulse über entsprechende Zeitglieder produziert werden. Das ist aber wohl nicht der Fall.

  • Beim Schreiben habe ich einen Hub von nur 2,7V, vor allem aber einen Low-Pegel von 400mv - das ist schon arg eng, oder?


    Zum Vergleich die korrespondierenden Signale an der Leseleitung:

    Für mich sehen die Pegel überhaupt unerwartet aus.


    FLUXTEEN hat an den Eingängen jeweils einen Pullup von 150 Ohm auf +3,3 Volt. Deshalb würde ich bei den Eingängen eine maximale Spannung von 3,3 Volt erwarten. Wie sehen die Spannungen ohne FLUXTEEN aus? Sollten eigentlich auf ca. 0 Volt sein, Sollte dort wider Erwarten +5Volt anstehen, dann solltest Du beim FLUXTEEN (wenn wieder angeschlossen) die +3,3Volt Versorgung (wo die Pullups dranhängen) überprüfen, dass nicht die +5Volt durchschlagen. Sonst könnte der TEENSY leiden.


    Bei den Ausgängen hätte ich ca. +5 Volt Maximum erwartet, da ja die Platte Pullups auf +5 Volt haben sollte.


    Bei den Oszi-Grafiken sieht das genau verkehrt rum aus.


    Hast Du schon mal die Inputs der Platte gemessen, wenn sie nicht angschlossen sind. Die sollten eigentlich auf ca. +5 Volt liegen (Pullups auf Seite der Platte)..

  • Es gibt Neuigkeiten...

    Zum einen ein YT-Video zu der Platte von mikemcbike. Allerdings hat er bisher nur den Spindelmotor in Betrieb genommen und nicht den Kopfmotor (die beiden dafür nötigen Pins /DIR und /STEP wurden ja oben bereits genannt).

    Davon abgesehen ist es eine schöne Präsentation der Platte - vorausgesetzt, man steht auf den Humor der zwei Macher :).


    Und dann bin ich mal PAW s Hinweise zu den Signalen gefolgt, und natürlich war da noch ein Klops in meiner Adaption der Platte: von meinen ersten Versuchen mit dem Oszilloskop waren noch die Pullup - Widerstände an den Ausgängen vorhanden, die gegen 5V geschaltet sind.

    Inzwischen habe ich das alles entfernt und die Signale neu vermessen. Hier die Schreibsignale:


    Interessanterweise ist das Maximum immer noch im Bereich von 3,2V statt 5V. Aber beim Lesen sieht es jetzt anders aus:


    Hier bewegen wir uns jetzt im Pegelbereich des 3.3V-Systems um den Teensy. Die negativen Überschwinger sind hoffentlich nur Messfehler (schlechte Masseverbindung?).


    Das Interessante: Seit der Modifikation sind die Schreibaussetzer weg! Ich habe jetzt bei meinen Tests pro Spur nur noch ein oder zwei Fehler, die auch noch reproduzierbar sind. Da scheint die Platte tatsächlich echte Fehler zu haben - aber zum Glück recht selten.

    Damit konnte ich nun eine Spur formatieren und bis auf einen alle Sektoren wieder lesen. Allerdings musste ich mein Timing noch etwas korrigieren und die Pulse um ein paar Prozent kürzer machen, weil ich sonst mehr als eine Umdrehung brauchte und mit dem letzten Sektor den Anfang des ersten überschrieben habe.


    Nächste Aufgabe: Schreiben einzelner Sektoren - dort muss ich genau den vorbereiteten Bereich treffen und die Daten so schreiben, dass davor und dahinter nichts zerstört wird.