Hallo Besucher, der Thread wurde 112k mal aufgerufen und enthält 274 Antworten

letzter Beitrag von r.cade am

arm2iec [Neue Hardware]


  • putty geht auch - passenden seriellen Port einstellen, Baudrate auf 115200. Die kryptischen Statusausgaben werden ständig rausgepustet, explizites Abrufen ist nicht notwendig. Für dein Problem wäre ein Log vom Einschalten an bis zum Hängen beim Ladeversuch (der natürlich möglichst nicht viele Stunden später erfolgen sollte) interessant.


    Mit Putty lief es ohne Probleme.


    Logfile wenn ich DD2 und das Parallelkabel verwende. Wie geschrieben hängt sowohl das Arm2IEC als auch der C64.

    Code
    1. DS3231 not found
    2. LPC RTC invalid (signature)
    3. sd2iec 1.0.0ALPHA0-38-GA90AEFE #08
    4. CA28
    5. Af0
    6. LEA3f
    7. 0000| 24 |$


    So sieht es mit einem anderen Kernel aus.
    Zuerst habe ich ein Verzeichnis geladen und dann ein Programm

  • Logfile wenn ich DD2 und das Parallelkabel verwende. Wie geschrieben hängt sowohl das Arm2IEC als auch der C64.


    Ist das LOAD"$" oder F7?


    Zitat

    So sieht es mit einem anderen Kernel aus.


    Unwichtig

  • Wenn ich das Parallelkabel weglasse aber den DD Kernel nutze, dann wird sowohl das Inhaltsverzeichnis als auch ein Programm ohne Probleme geladen. ?(


    Hier sind die Log Files:




  • Ich vermute, dass das Handshaking in der Richtung arm2iec->C64 nicht richtig funktioniert (das wäre Pin 2 des Anschlusses) und der C64 daher auf ein Signal auf dem seriellen Bus wartet was nicht kommt, bin mir aber nicht sicher weil ich noch nicht die Zeit hatte den Code nochmal genauer anzuschauen und mir zu überlegen ob diese Vermutung zum Verhalten passt. Da die Parallel-"Anforderung" vom C64 aus angestossen wird scheint mir das aber im Augenblick die sinnvollste Theorie zu sein - das Laufwerk erkennt dann, dass es Parallel senden soll, der C64 aber nicht dass das Laufwerk das mitbekommen hat.

  • Unseen
    Leider nimmst du keine PN an?


    Da ich als Elektronik DAU nicht in der Lage bin es selbst zu machen, würde ich gerne das Hardwaredesign des ARM2IEC zu großen Teilen übernehmen für das 1541-Emul. Ich möchte Dich um die Erlaubnis dazu bitten.



    Ich habe Fragen zu "Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Germany License":


    Namensnennung: klar, gerne nenne ich Deinen Namen und das ARM2IEC


    Keine kommerzielle Nutzung: wenn es zb. Donald in seinem Vertrieb aufnehmen würde, wäre das ein klarer Verstoß?


    Weitergabe unter gleichen Bedingungen: hab ich kein Problem damit.

  • Leider nimmst du keine PN an?


    Hä? Das Postfach ist nicht voll und laut Einstellungen sollte mir jeder PNs schicken können.


    Zitat

    Da ich als Elektronik DAU nicht in der Lage bin es selbst zu machen, würde ich gerne das Hardwaredesign des ARM2IEC zu großen Teilen übernehmen für das 1541-Emul. Ich möchte Dich um die Erlaubnis dazu bitten.


    Ok...


    Zitat

    Ich habe Fragen zu "Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Germany License":


    Du hast die Dateien für Version 1.0 erwischt.

  • Ich vermute, dass das Handshaking in der Richtung arm2iec->C64 nicht richtig funktioniert (das wäre Pin 2 des Anschlusses) und der C64 daher auf ein Signal auf dem seriellen Bus wartet was nicht kommt, bin mir aber nicht sicher weil ich noch nicht die Zeit hatte den Code nochmal genauer anzuschauen und mir zu überlegen ob diese Vermutung zum Verhalten passt. Da die Parallel-"Anforderung" vom C64 aus angestossen wird scheint mir das aber im Augenblick die sinnvollste Theorie zu sein - das Laufwerk erkennt dann, dass es Parallel senden soll, der C64 aber nicht dass das Laufwerk das mitbekommen hat.


    Hattest du schon Zeit gefunden, in den Code zu schauen?
    Deine Erklärung hört sich sehr plausibel an. Kann ich das ohne große Laborausrüstung nachprüfen?

  • Hattest du schon Zeit gefunden, in den Code zu schauen?


    Oh mift, das hatte ich komplett...


    Äh, da es ein deutlich komplizierteres Problem ist als ursprünglich angenommen hat es leider deutlich länger gedauert als geplant. ;)


    Zitat

    Deine Erklärung hört sich sehr plausibel an. Kann ich das ohne große Laborausrüstung nachprüfen?


    Tja, plausibel anhören reicht leider nicht. Vermutlich funktioniert das Parallelkabel bei dir einwandfrei, allerdings kann ich es mit den vorhandenen seriellen Ausgaben nicht mit Sicherheit sagen. Normalerweise funktioniert das ganze bei Dolphin so, dass der C64 einige Parallel-Bytes ans Laufwerk schickt und dieses den Empfang quittiert, damit sich beide Seiten auf eine Parallelübertragung einigen. Wenn ich die Rückmeldung vom Laufwerk zum C64 auskommentiere, so dass der C64 nicht weiss dass die andere Seite parallel spricht, aber das Laufwerk parallel erwartet dann gibts bei LOAD"$",8 nur ein "FILE NOT FOUND" am C64 - den von dir beschriebenen Hänger kann ich auf so einfache Art nicht provozieren.


    Ich habe mal ein paar zusätzliche Statuszeichen in der Ausgabe ergänzt und ein Source+Binary-Archiv unter http://www.sd2iec.de/testfiles/sd2iec-dolphintest.zip abgelegt. Könntest du das mal flashen und die Statusmeldungen eines LOAD"$",8 mit Dolphin-Kernal und angeschlossenem Parallelkabel mitschneiden?


  • Tja, plausibel anhören reicht leider nicht. Vermutlich funktioniert das Parallelkabel bei dir einwandfrei, allerdings kann ich es mit den vorhandenen seriellen Ausgaben nicht mit Sicherheit sagen. Normalerweise funktioniert das ganze bei Dolphin so, dass der C64 einige Parallel-Bytes ans Laufwerk schickt und dieses den Empfang quittiert, damit sich beide Seiten auf eine Parallelübertragung einigen. Wenn ich die Rückmeldung vom Laufwerk zum C64 auskommentiere, so dass der C64 nicht weiss dass die andere Seite parallel spricht, aber das Laufwerk parallel erwartet dann gibts bei LOAD"$",8 nur ein "FILE NOT FOUND" am C64 - den von dir beschriebenen Hänger kann ich auf so einfache Art nicht provozieren.


    Danke für die Erklärung. Kann ich dir das ARM2IRC und das Parallelkabel einfach mal zu schicken und du schaust es dir mal an?


    Ich habe mal ein paar zusätzliche Statuszeichen in der Ausgabe ergänzt und ein Source+Binary-Archiv unter http://www.sd2iec.de/testfiles/sd2iec-dolphintest.zip abgelegt. Könntest du das mal flashen und die Statusmeldungen eines LOAD"$",8 mit Dolphin-Kernal und angeschlossenem Parallelkabel mitschneiden?


    Vielen Dank für deine Bemühungen!
    So, Hex Datei geflashed und die Bin Datei auf die Karte kopiert. Hier ist die Ausgabe von Load"$",8:


  • Danke für die Erklärung. Kann ich dir das ARM2IRC und das Parallelkabel einfach mal zu schicken und du schaust es dir mal an?


    Ich vermute im Augenblick, dass das nichts bringen würde. Dein Parallelkabel scheint übrigens fehlerfrei zu sein.


    Zitat

    So, Hex Datei geflashed und die Bin Datei auf die Karte kopiert. Hier ist die Ausgabe von Load"$",8:


    Ok, das war unerwartet - und ist evtl. ein Indiz dafür, dass die Eingänge des arm2iec auch am seriellen Bus etwas zu empfindlich gegenüber Störungen sind.


    Zitat

    !!LdEP24dA3f


    Parallel-Erkennung von Dolphin erfolgreich (!!), Datenempfang (L), Byteempfang via Dolphin-Routine (d), letztes Byte empfangen (E), 0x24 via Parallel empfangen (P24), nochmal Byteempfang via Dolphin-Routine (d), ATN-Kommandobyte empfangen (A3f)


    Damit das ganze so passieren kann müssen beide Handshake-Leitungen des Parallelports funktionieren (sieht man u.a. am !!) und da das Dollarzeichen (0x24) auch korrekt via Parallel empfangen wurde sind die Datenleitungen wohl auch ok.


    Zitat

    !!TV


    Parallel-Erkennung von Dolphin erfolgreich (!! - das wird für jeden Datentransfer neu ausgehandelt), Datenversand (T), Abbruch wegen erkanntem ATN-Wechsel (V). Letzteres sollte an dieser Stelle nicht auftauchen - auf diesem Weg wird normalerweise abgebrochen, wenn der C64 die Übertragung unterbrechen möchte, z.B. weil der Benutzer die Stop-Taste gedrückt hat.


    Ich habe schon eine Befürchtung Vermutung was an der Stelle passiert - könntest du mal http://www.sd2iec.de/testfiles/sd2iec-dolphintest2.zip aufspielen und den Test wiederholen?


  • Dein Parallelkabel scheint übrigens fehlerfrei zu sein.


    Puh, gut zu hören...


    Zitat

    Ok, das war unerwartet - und ist evtl. ein Indiz dafür, dass die Eingänge des arm2iec auch am seriellen Bus etwas zu empfindlich gegenüber Störungen sind.


    Welche Störungen meinst du den?



    Klasse, was man da rauslesen kann, wenn man nur die Bedeutung kennt. Vielen Dank für deine ausführlichen Antworten.
    So, neue Version aufgespielt. Das ist das Ergebnis von Load"$",8:

  • Welche Störungen meinst du den?


    Meine Vermutung waren kurze Impulse auf den Leitungen durch Übersprechen wenn ein anderes Signal den Pegel wechselt, aber inzwischen bin ich mir auch da unsicher.


    Zitat

    !!TaV


    Unschön - das ist ungefähr die letzte Stelle, an der ich das Problem vermutet hätte. Du hast nicht zufälligerweise einen Logicanalyzer oder ein Speicheroszilloskop? ;)


    Runde 3: http://www.sd2iec.de/testfiles/sd2iec-dolphintest3.zip - wenn das funktioniert werden die Änderungen lästig, wenn es nicht funktioniert gehen mir evtl. die Ideen aus.


  • Meine Vermutung waren kurze Impulse auf den Leitungen durch Übersprechen wenn ein anderes Signal den Pegel wechselt, aber inzwischen bin ich mir auch da unsicher.


    Ok, also etwas, wogegen ich nichts machen könnte :(


    Unschön - das ist ungefähr die letzte Stelle, an der ich das Problem vermutet hätte. Du hast nicht zufälligerweise einen Logicanalyzer oder ein Speicheroszilloskop? ;)


    Nein, leider nicht. Daher war auch meine Frage, ob ich dir nicht einfach alles mal schicken sollte??



    Runde 3: http://www.sd2iec.de/testfiles/sd2iec-dolphintest3.zip - wenn das funktioniert werden die Änderungen lästig, wenn es nicht funktioniert gehen mir evtl. die Ideen aus.


    Auf zur Runde 3 :)
    boxing_rink_round_3_49223812.69211447.jpg



    Aufgefallen war mir, daß jetzt noch die beiden folgenden Zeichen nach einen Reset des C64 in der selben Zeile wie "!!T" ausgegeben wurden:

    Code
    1. aV
  • Nein, leider nicht. Daher war auch meine Frage, ob ich dir nicht einfach alles mal schicken sollte??


    Das Problem dabei ist, dass ich bisher nicht wirklich eingrenzen kann wo der Fehler auftritt - evtl. würde deine Platine mit deinen Kabeln hier problemlos funktionieren.


    Zitat

    !!T


    Aufgefallen war mir, daß jetzt noch die beiden folgenden Zeichen nach einen Reset des C64 in der selben Zeile wie "!!T" ausgegeben wurden:

    Code
    1. aV


    Öh, waren deine Mitschnitte der Stand bei einem Hängen oder nach einem Reset nach einem C64-Hängen? Das ist schon ein ziemlich wichtiger Unterschied.


  • Das Problem dabei ist, dass ich bisher nicht wirklich eingrenzen kann wo der Fehler auftritt - evtl. würde deine Platine mit deinen Kabeln hier problemlos funktionieren.


    Das wäre aber ein Weg zu prüfen, ob mein Arm2IEC so funktioniert, wie es soll.




    Öh, waren deine Mitschnitte der Stand bei einem Hängen oder nach einem Reset nach einem C64-Hängen? Das ist schon ein ziemlich wichtiger Unterschied.


    Es waren die Mitschnitte von
    1. Einschalten C64
    2. Reset am Arm2IEC gedrückt (Ausgabe der ersten 3 Status Zeilen in Putty)
    3. load"$",8 ausgeführt (Ausgabe der restlichen Status Zeilen in Putty)


    Dann habe ich den ganzen Text im Putty Fenster markiert, kopiert und hier eingefügt.


    Den C64 habe ich dann resetet. Dabei wurde dann normalerweise nicht mehr Text im Putty Fenster angezeigt. Bis halt auf das letzte mal. Da sind dann noch die beiden Zeichen gekommen.


    Ich habe auch mal Schnitt 2 weggelassen. Die Ausgabe ist bis auf die ersten 3 Zeilen die selbe.

  • Das wäre aber ein Weg zu prüfen, ob mein Arm2IEC so funktioniert, wie es soll.


    Wenn du unbedingt willst können wir das natürlich versuchen...


    Zitat

    Dann habe ich den ganzen Text im Putty Fenster markiert, kopiert und hier eingefügt.


    Den C64 habe ich dann resetet. Dabei wurde dann normalerweise nicht mehr Text im Putty Fenster angezeigt. Bis halt auf das letzte mal. Da sind dann noch die beiden Zeichen gekommen.


    Ok, dann ist das tatsächlich ein wichtiger Unterschied.


    Zitat

    Ich habe auch mal Schnitt 2 weggelassen. Die Ausgabe ist bis auf die ersten 3 Zeilen die selbe


    Der Reset ist auf jeden Fall eine gute Idee um die Versionsnummer ins Log zu bekommen.


    Runde 4... Der verwendete Ansatz ist extrem unschön und macht evtl. mit einigen Software-Fastloadern Probleme, aber für Dolphin-Testzwecke sollte es reichen: http://www.sd2iec.de/testfiles/sd2iec-dolphintest4.zip


    (jetzt werden sämtliche Lesezugriffe auf den seriellen Leitungen wiederholt bis 5 mal der gleiche Wert gelesen wurde, das braucht ca. 0,6 Mikrosekunden)