Hallo Besucher, der Thread wurde 198k mal aufgerufen und enthält 1577 Antworten

letzter Beitrag von fook42 am

Laufwerk der 1541 emulieren

  • Hallo !


    Leider hat man viel zu wenig Zeit neben der Arbeit. Familie hat man ja auch, und das Emu64 Projekt war für mich in letzter Zeit wichtiger, um da mal weiter voran zu kommen. ^^ Ich hatte meine Ergebnisse extra auf GitHub für alle Öffentlich gemacht, damit eventuell sich andere mit einklinken. Das es geht (zumindest erst mal nur lesen) habe ich ja praktisch mit meinem Aufbau bewiesen. Mein nächster Schritt wird sein den Testaufbau mal auf Platine zu bringen (diese Antennenverdrahtung birgt Fehler in sich) und dann weiter an der Firmware arbeiten. Mal schauen wann ich dazu komme, versprechen kann ich jedenfalls nichts. Aber ich mache da immer mal pö a pö weiter.


    Hier der Link zu dem Artikel mit den Links zu GitHub und dem Video
    Klick mich ...


    MfG Thorsten

  • Super :thumbsup:


    ... bitte meinen Post nicht als gemecker verstehen, da ich nicht in der lage bin so etwas selbst zu entwickeln bin ich euch echt dankbar wenn ihr eure Zeit dafür opfert.


    Wie vorher schonmal gesagt ich stelle mich gerne dafür bereit mit einer entsprechenden anleitung irgendwas nachzubasteln und zu testen.
    Natürlich hab auch ich mittlerweile Familie und auch noch andere Hobbys, aber wenn ich einen bescheidenen beitrag dazu leisten kann werde ich was tuen.


    @ Thorsten: Der Ansatz von DIDL und dir ist der gleiche? oder geht ihr da verschiedene wege?


    Gruß

  • Ich bin da auch noch dran, zur Zeit zwar mehr zu Forschungszwecke, aber es wird letztendlich auch Projekte für die Community geben.


    Es ist nur so, dass ich zur Zeit einen radikalen Umstieg von C auf C++ vornehme.
    Das kostet mir viel Zeit meine ganze Umgebung anzupassen.
    Die Zeit ist reif für C++, zumindest ein eingeschränktes Subset von C++.
    Denn meine Tests haben klar ergeben, dass, wenn man es richtig macht, NUR Vorteile sind zu C.



    Demnächst wird es ein kleines Projekt geben basierend auf dieses da:


    1541-Sniffer


    Man kann damit die Atmel Hardware aufbauen und testen ohne dass man gross in die Hardware der 1541 eingreift.
    Der 1541-Sniffer wird einfach parallel an die Floppy drauf gehängt.
    Man zapft einfach das VIA-2 an und beobachtet passiv was die Floppy tut.


    Der 1541-Sniffer liest einfach passiv die Trackdaten mit.
    Am Display sieht man welcher Track gerade gelesen oder geschrieben wird.
    Und man sieht ob irgendetwas ungwewöhnliches an dem Track ist (Kopierschutz/Fehler/etc.).


    Über USB/RS232 kann man die Trackdaten genauer analysieren und auch abziehen bei Bedarf.


    Die Trackdaten werden auf die SD Karte gespiegelt.
    Man muss allerdings die Floppy veranlassen, alle Spuren durch zu steppen.
    Dazu reicht ein Mini BASIC Programm.

  • Praktisch könnte es knifflig werden, weil manche PC-Laufwerke das Signal 'verbessern' wollen, und das geht mitunter bei den GCR-Daten etrwas schief.

    Da es hier ja darum geht, daß Laufwerk zu emulieren, war meine Idee in erster Linie, einen Floppy-Emulator wie das HxC per Shugart-Kabel anzuschließen. Das Gerät sollte doch mit GCR klar kommen. Es ist ja prinzipiell mit allem kompatibel, was man per Shugart- oder PC-Floppy-Kabel anschließen kann.

  • einen Floppy-Emulator wie das HxC per Shugart-Kabel anzuschließen. Das Gerät sollte doch mit GCR klar kommen.

    Sollte es? Die 1541 kennt vier verschiedene Bitraten, von HxC und so würde ich erwarten, dass die nur die zwei Bitraten kennen/erwarten/unterstützen, die "Standard"-Laufwerke nehmen.

  • nur als frage ... würde da auch das Gotek mit HxC Firmeware funktionieren oder muss es das HxC sein.

    Die Frage ist natürlich auch, ob die konvertierten D64-Dateien Bug-frei sind. Ich gehe mal davon aus, daß dies mangels Anschlußmöglichkeit noch eine komplett ungetestete Sache ist. Es ist keineswegs sicher, daß es so ohne Weiteres läuft, wenn man jetzt so einen Adapter bauen würde.

  • So, ich melde mich mal wieder zu Wort.
    Ich habe es endlich mal geschafft meinen aktuellen Schaltplan auf Lochraster aufzubauen. Bis jetzt läuft alles wunderbar. Hab ihr fricklige Demos die ich mal darauf testen soll, die wirklich alles ausreizen was so lade technisch möglich ist?
    Wenn ja her damit, damit ich das testen kann. Das ganze ist und bleibt vorerst read only (Also kein Schreiben auf dem Image möglich).
    Nun habe ich aber Gewissheit das der Schaltplan soweit korrekt ist und keine gravierenden Fehler enthält. Nun kann ich endlich mit dem erstellen des PCB anfangen. Ein kleinen Bug habe ich in der Firmware auch noch gefixt.
    Der nächste Schritt danach wäre dann eine oder zwei Testplatinen herstellen zu lassen. Hier noch ein paar Fotos von dem Prototypen auf Lochraster. Die Lötstellen sehen naja wie soll ich sagen, nicht mal bescheiden aus :D
    Aber es funktioniert ! Ich werde morgen noch ein Video dazu machen, also wenn ihr noch Sachen zum Testen habt bitte her damit. Dann sag ich mal Gute Nacht und bis morgen ^^



    MfG Thorsten

  • @Thorsten Kattanek


    Ich verfolge dein Projekt mit großem Interesse.


    Die Schaltbilder im GitHub kann ich nicht anzeigen, weil ich kein KiCAD habe.
    Könntest du die auch als GIF uploaden?



    Das Lesen geht bei dir ja schon.
    Das Schreiben noch nicht.




    Das Schreiben habe ich teilweise implementiert, mein Arduino liest sauber die Daten am VIA Port und interpretiert die GCR Daten korrekt.




    ===========


    Ich frag mich nur, wie du schnell genug zwischen lesen und schreiben umschaltest??


    Ein Interrupt am AVR dauert 2,3µs bis eigener Code ausgeführt wird, - im günstigen Fall.
    Wenn aber noch Timer Interrupts laufen oder anderes Zeugs (I2C, UART ...) verschlimmert sich das noch deutlich.



    Wenn die Floppy sich entscheidet, Daten schreiben zu wollen, - dann muss man blitzschnell die Datenrichtung umdrehen!




    Die Daten kommen sehr schnell daher, so alle 24 - 30µs, allerdings ist bei den alten 1541 das Zeitfemster zum lesen nur 3µs breit!!
    Ich habe das nur durch polling in den Griff kriegen können.
    Interrupts waren zu langsam für die alte 1541, bei der 1541-II reicht es allerdings gut.



    Auf jeden Fall wäre ich stark interessiert an einer Platine, wenn du welche fertigen lässt.

  • Wobei ich gerade sehe, die Daten vom VIA zu lesen ist viel weniger problematisch als direkt von der Schreibelektronik.
    Denn die stehen immer relativ lange an.



    Also mal Entwarnung ...



    Zum anderen kontrolliert ja der AVR das Byte Ready!
    Dadurch sind wir mal schon aus dem Schneider, es muss gar nicht allzu pünktlich laufen!



    Allerdings bleibt das Problem mit dem Umschalten der Richtung (DDR).
    Sonst arbeitet das VIA gegen das AVR Port.


    Wie lange hält das VIA das aus?
    Wie schnell muss der AVR reagieren?


    Oder hast du eíne Hardware (BusTreiber) der das ganze entkoppelt?

  • Erstmal: Ich lese mit großen Interesse diesen Thread seit Jahren mit - wäre super, wenn das irgendwann gelingen würde ...

    Wie lange hält das VIA das aus?

    Ohne dass ich Spezialist dafür wäre: Die VIAs haben ja an den Portbits einen aktiven Pullup in Form eines strombegrenzten FETs, der nach Vcc treibt, und einen FET, der nach GND schaltet. Was den VIAs also nichts ausmacht ist, wenn man sie extern nach GND treibt. Hingegen mögen sie es nicht, wenn man sie von außen aktiv nach Vcc treibt, während sie als Ausgang geschaltet sind und auf GND (LO) liegen. Das macht der Ausgang je nach Stärke der Quelle, die nach Vcc treibt nicht sehr lange mit.


    Es gibt nun kreative Ansätze der Form, dass man dieses Verhalten nachbildet, in dem man am AVR für "HI" die Portbits auf Eingang schaltet und die internen Pull-Ups auf ein, dann hat man das gleiche Verhalten. Für "LO" schaltet man dann den AVR-Port wieder auf Ausgang um und das Portbit auf "LO". Allerdings braucht das natürlich mehr Zyklen als ein einfachen Wechseln von "LO" nach "HI".


    Ich habe das übrigens selbst nicht ausprobiert, sondern diese kreativen Ansatz nur irgendwo gelesen.


    [EDIT: Typos]

    "Wenn du überredet, ermahnt, unter Druck gesetzt, belogen, durch Anreize gelockt, gezwungen, gemobbt, bloßgestellt, beschuldigt, bedroht, bestraft und kriminalisiert werden musst. Wenn all dies als notwendig erachtet wird, um deine Zustimmung zu erlangen, dann kannst du absolut sicher sein, dass das, was angepriesen wird, nicht zu deinem Besten ist." - Quelle unbekannt.


    "Steve Jobs hat User hervorgebracht, Jack Tramiel Experten." - Quelle unbekannt.

    "Mein Herr, ich teile Ihre Meinung nicht, aber ich würde mein Leben dafür einsetzen, dass Sie sie äußern dürfen." - Voltaire.

    "Diskutiere nie mit einem Idioten - er zieht dich auf sein Niveau hinunter und schlägt dich dort mit seiner Erfahrung!" - Volksweisheit.


  • Hi Diddl !


    Ich habe neben den KiCad Dateien auch eine PDF mit ins doc Verzeichnis getan. --> https://github.com/ThKattanek/…41-rebuild-schaltplan.pdf
    Wegen den von dir aufgezählten Problemen habe ich erst mal nur das "lesen" im Focus. Später werde ich noch versuchen auch das schreiben hinzubekommen (Das wird dann Version 2 oder so) Jetzt werde ich erst mal die Platine erstellen und fertigen lassen und schauen ob das gut läuft. Wenn ich Platinen für den Prototypen mache fällt bestimmt eine für dich mit ab. In den nächsten Tagen werde ich auch die Dokumentation überarbeiten und an den aktuellen Stand anpassen. Und dann ist ja noch die Firmware, da muss ich auch noch ran ... da muss ein vernünftiges Menü her usw ...


    Hast du noch D64 Images die ich testen kann ob die mit dem aktuellen Stand laufen? Werde heute Nachmittag noch ein kleines Video dazu machen.


    Das "schreiben" interessiert mich auch auf jeden Fall und es kribbelt in den Fingern das anzugehen, aber ich möchte erst mal das hier soweit gerade ziehen und dann kann ich weiter darauf aufbauen.