Hallo Besucher, der Thread wurde 2,9k mal aufgerufen und enthält 15 Antworten

letzter Beitrag von Ingo am

Probleme mit sd2iec

  • Hallo,
    erst mal die Fakten:


    1. Welche Hardware? LarsP
    2. Welche Hardwareversion? Peter Sieg
    3. Welche Firmware? Unseen
    4. Welche Firmwareversion? sd2iec 0.10.2
    5. Stromanschluß extern oder vom C64? Extern über Schaltnetzteil
    6. ATMega32 oder ATMega644? ATMega 1284P
    7. Bootloader ja/nein? Ja
    8. Verhalten der LEDs beim Einschalten (bitte genau beschreiben)?
    11. Welcher Kernal wird im C64 verwendet (Original, Jiffy, etc)? Jiffy, aber auch im original Kernal
    12. Wird ein Expansionsportmodul verwendet (z.B. FCIII)? Nein
    13. Ist ein Multimeter/Durchgangsprüfer vorhanden? Ja
    14. Externer Quartz installiert oder nicht? Ja
    16. auf welche ID ist das gerät eingestellt (8/9/10 etc) 8


    So und nun das Verhalten:
    Ich habe mir ein Gehäuse gebaut, in dem sich ein Schaltnetzteil für die 5V, ein Trafo für die
    9V, das sd2iec und ein Umschalter befindet.
    (siehe Bild)


    Die Stromversorgung des sd2iec kommt von dem Schaltnetzteil.
    Oben links sieht man den IEC-Eingang, welcher vom C64 kommt.
    Rechts daneben der Ausgang, da hängt das Wiesemann-Interface dran.
    Mit dem Umschalter kann ich nun zwischen sd2iec und Wiesemann hin- und herschalten.
    Im ersten Fall hängt nun das sd2iec direkt am C64, im zweiten, das Wiesemann.
    Geschaltet werden die Leitungen Data, ATN und Clock, diese habe ich am sd2iec über 4,7kOhm-
    Widerstände an 5V liegen.
    Nun zum Verhalten:
    Beim Einschalten der Spannung geht die grüne LED für ca. 1,5s an und dann aus.
    Danach schalte ich den C64 an und dasselbe passiert nochmal.
    Manchmal funktioniert alles dann so, wie's soll, aber manchmal eben auch nicht.
    Wenn ich dann das directory laden will, steht dann: "searching for $" und es tut sich nix mehr.
    LEDs gehen auch nicht an, sd2iec lässt sich auch nich in den Sleep-Modus versetzen.
    Zuerst dachte ich mir, da fehlen die Pullup-Widerstände(hatte ich zuerst bicht dran).
    Das war's aber nicht. Als ich dann mal das sd2iec resettet habe ging's dann wieder.


    So, ich hoffe, ich hab's mal genau genug beschrieben, so dass ihr was damit anfangen könnt...

  • Ich werde aus dem Foto nicht so recht schlau. Hast Du die SD2IEC-Platine neben dem Trafo verbaut ?- Liegen die IEC-Buchsen neben dem Schaltnetzteil ? - Das streut dann sicher alles wie die Hölle.

  • cbmhardware

    Zitat

    Das streut dann sicher alles wie die Hölle.

    Diese Bedenken hab ich auch gehabt.
    Allerdings funktioniert's ja soweit perfekt. Das Problem ist eben nur manchmal beim Einschalten.


    AntaBaka
    In Schalterstellung 1 ist das sd2iec mit dem C64 verbunden.
    In Schalterstellung 2 ist das Wiesemann/Floppy mit dem C64 verbunden und
    die Leitungen Dat, Clk und Atn des sd2iec hängen in der "Luft".


    Im ersten Fall hängen die Leitungen auch erst mal in der Luft, weil der C64
    noch nicht angeschaltet ist.
    Deswegen hab ich die Pullup-Widerstände reingelötet.

  • Im ersten Fall hängen die Leitungen auch erst mal in der Luft, weil der C64
    noch nicht angeschaltet ist.
    Deswegen hab ich die Pullup-Widerstände reingelötet.


    Wenn der C64 aus ist helfen die wahrscheinlich nicht viel weil der dann als recht starker Pulldown wirkt (würde den nicht funktionierenden Sleepmodus erklären) - aber ich wüsste gerade nicht wieso sich das nach dem Einschalten noch auswirken sollte.

  • Gestern hatte ich den Fehlerfall wieder,
    jetzt hab ich das ganze mal genauer beobachtet:
    Beim Einschalten des Netzteils leuchtet ja die grüne LED für ca. 1,5s.
    Wenn ich den Rechner anmache, passiert das gleiche nochmal.
    Im Fehlerfall allerdings nicht. Wenn ich da den Rechner einschalte, geht die
    grüne LED NICHT! an. sd2iec ist dann tot, Sleep-Modus geht auch nicht.
    Erst wenn ich den AVR resette oder den C64 aus- und wieder anschalte funktioniert alles bestens.
    Was passiert da eigentlich, wenn der Rechner eingeschaltet wird? Bekommt da das sd2iec
    auch einen Resetimpuls?

  • Beim Einschalten des Netzteils leuchtet ja die grüne LED für ca. 1,5s.


    Kann es sein, dass du die beiden LEDs vertauscht hast?


    Zitat

    Wenn ich den Rechner anmache, passiert das gleiche nochmal.
    Im Fehlerfall allerdings nicht. Wenn ich da den Rechner einschalte, geht die
    grüne LED NICHT! an. sd2iec ist dann tot, Sleep-Modus geht auch nicht.


    Beim Einschalten sollte die LED eigentlich auch nicht nochmal angehen. Wie sind die Fuses deines AVRs eingestellt?


    Zitat

    Was passiert da eigentlich, wenn der Rechner eingeschaltet wird? Bekommt da das sd2iec
    auch einen Resetimpuls?


    Nur wenn du die Reset-Leitung des seriellen Bus mit dem Reset-Pin des AVR verbunden hast.

  • Zitat

    Kann es sein, dass du die beiden LEDs vertauscht hast?

    Müsste ich heut Abend mal nachschauen. Aber im Sleep-Mode geht die rote LED an, also müsste die Beschaltung doch stimmen!?


    Zitat

    Beim Einschalten sollte die LED eigentlich auch nicht nochmal angehen. Wie sind die Fuses deines AVRs eingestellt?

    Ich habe mir den von jemand programmieren lassen.
    Reicht dir diese Angabe: Extended: 0xFD, High: 0xD2, Low: 0xEF


    Zitat

    Nur wenn du die Reset-Leitung des seriellen Bus mit dem Reset-Pin des AVR verbunden hast.

    Nee, hab ich nicht. Ich hab nur die Leitungen DAT, ATN und CLK über Pullups mit dem IEC verbunden.

  • Müsste ich heut Abend mal nachschauen. Aber im Sleep-Mode geht die rote LED an, also müsste die Beschaltung doch stimmen!?


    Ja... Dann ist das beobachtete Verhalten der grünen LED wohl doch die sd2iec-Initialisierung und nicht der Bootloader - komisch, denn normalerweise sollte die LED zu dem Zeitpunkt nur kurz aufblitzen (sofern man nicht die Kartenerkennung überbrückt hat und keine Karte eingelegt ist).


    Zitat

    Ich habe mir den von jemand programmieren lassen.
    Reicht dir diese Angabe: Extended: 0xFD, High: 0xD2, Low: 0xEF


    Reicht - Extended auf 0xFC wäre evtl. etwas besser, aber mir ging es vor allem darum ob die Brownout-Erkennung überhaupt an ist. Deiner Beschreibung nach resettet sich der AVR wohl beim Einschalten des C64 aus irgendeinem Grund (was er eigentlich nicht sollte), aber manchmal scheint sich die CPU einfach nur aufzuhängen. Ohne Brownout-Erkennung wäre das evtl. durch eine einbrechende Spannung erklärbar, aber da die an ist und der Chip oberhalb von 2,7V eigentlich korrekt funktionieren sollte ist es wohl irgendein anderes (Hardware-)Problem was die CPU resettet oder crasht.

  • Echt seltsam - das ganze...


    Mir ist noch was eingefallen:
    Den AVR hab ich vorher auf meinem Lochrasteraufbau-sd2iec
    stecken gehabt, was direkt vom Kassettenport seine 5V bekam.
    Der IEC-Anschluss war auch direkt am C64, also sonst nix dran.
    Beim Einschalten des Rechners verhielt sich die grüne LED genauso wie jetzt,
    mit dem Unterschied, dass das sd2iec nicht abstürzte.

  • Ich würde zwischen Trafo und Platine mal ein Blech platzieren. Und das dann auch gut erden. Sobald Du den C64 einschaltest, fließt natürlich auf der Sekundär-Seite Strom und auf der primären Seite erhöht sich in diesem Augenblick ebenfalls die Stromaufnahme kurzfristig. Das genaue Verhalten wird wohl etwas vom Trafo-Typ abhängen. Jedenfalls erhöht sich das Magnetfeld um den Trafo in diesem Augenblick.


    Ich würde das testen wollen. ;)

  • Beim Einschalten des 64ers hast du im Nezteile Spitzen, die das ganze Zeug über Streuungen wahrscheinlich stärker beeinflussen werden als wenn es mal im Betrieb ist. Daher ist das eher der kritische Punkt, und würde erklären warum es ansonst keinerlei Probleme damit gibt sobald es mal läuft.