Angepinnt mmc2iec simpel LarsP Eagle Dateien

  • RE: RE: RE: mmc2iec simpel LarsP Eagle Dateien

    Was hindert dich daran den AVR zu programmieren wenn die SD-Karte am normalen SPI-Port hängt? Wenn ich an sd2iec entwickle steckt ständig mindestens eine SD-Karte in der Platine und der Programmer ist permanent mit dem ISP-Anschluss verbunden - ohne Probleme.

    Die wird spätestens bei der Nutzung eines Fastloaders Ticks verlieren und ein dedizierter RTC-Chip bei dem man statt den voluminösen Mignonzellen einfach eine Knopfzelle oder für kürzere Pufferzeiten (IIRC Wochen) einen Goldcap verwenden kann kostet auch nicht die Welt (1.50EUR bei Reichelt).

    Ich habe keinen Programmer. Als ich damals mit IEC2IEEE anfing, habe ich mir eine AT90S8515 (mit Quarz) gekauft, sonst nichts. Von Anfang an habe ich dann Schritt für Schritt zuerst ein C64-Flashprogramm geschrieben, zuerst in Basic, dann mit Assembler-Teilen...
    Wenn man halt nur die Platinen verschicken würde und die User würden die Chips selbst kaufen, dann wäre es halt kein Problem, wenn kein Bootloader im AVR ist.
    Ich würde nur einen IRQ pro Sekunde machen (nicht 10 oder 50). Normalerweise sind alle Routinen zeitunkritisch. Ausnahmen sind IEC-IN, IEC-OUT (und evtl.LOAD). Hier könnte man die Sache mit Hauptprogramm und IRQ-Programm umdrehen. Die IEC-Routine würde den PC-INT-Pin der seriellen Leitung, die der C64 als Startflag zur Übertragung eines Bytes benutzt, so setzen, dass dieses Flag einen IRQ auslöst. Dann würde die IEC-Routine den Echtzeituhr-IRQ deaktivieren und im Hauptprogramm lediglich abfragen, ob der Timer abgelaufen ist. Die serielle Übertragung würde dann im IRQ erfolgen, solbald der C64 das Flag sendet. Das ergäbe sogar ein exakteres Timig als das Pollen des Ports. Auch die Reset- oder Atn-Leitung muss nicht abgefragt werden, die sind so geschaltet, dass sie ein Level-IRQ auslösen könnten.
  • RE: RE: RE: RE: mmc2iec simpel LarsP Eagle Dateien

    NLQ schrieb:

    Ich habe keinen Programmer. Als ich damals mit IEC2IEEE anfing, habe ich mir eine AT90S8515 (mit Quarz) gekauft, sonst nichts. Von Anfang an habe ich dann Schritt für Schritt zuerst ein C64-Flashprogramm geschrieben, zuerst in Basic, dann mit Assembler-Teilen...

    Tip: Wir haben 2009. Nur weil du dich früher mal nicht dazu entschliessen konntest geeignete Entwicklungshardware anzuschaffen müssen nicht gleich alle User an den Folgen leiden.

    Was die vorgeschlagenen Änderungen angeht: Schick einen Patch. Einschliesslich eines formalen Beweises, dass in keinem Codepfad (also auch allen bisher implementierten Fastloadern) kein Tick verloren gehen kann.

    Quellcode

    1. 10 x=rnd(-1963):fori=1to81:y=rnd(1):next
    2. 20 forj=1to5:printchr$(rnd(1)*16+70);:next
    3. 30 printint(rnd(1)*328)-217

    sd2iec Homepage
  • PeterSieg schrieb:

    Na x1541, wie siehts jetzt aus ;)


    Schon besser. Was der Autorouter da verbrochen hat gefällt mir aber immer noch nicht. Ich hab mal den DRC und ERC laufen lassen, da werden mal auch keine Kurzschlüsse gemeldet. Etliche andere Sachen, aber das ist normal ;) Kannst Dir das ja selbst mal ansehen und abarbeiten, wenn Du Lust hast.

    Dann mal was anderes: Kann es sein, dass Du die WP und CD Kontakte am Sockel nicht angeschlossen hast? Warum? Das ist doch eine deutliche Einschränkung.
    Zuletzt repariert:
    21.2. Logitech M570 Microschalter ausgetauscht - geplante Obsoleszenz durch Billigtaster?
    19.11. Toshiba 3,5" Floppy defekter Elko durch Kerko getauscht auf Motorplatine
    27.11. 1541B Dauerlauf, Elko im Resetschaltkreis defekt, nicht der 7406 wie zuerst verdächtigt!
  • Dann mal was anderes: Kann es sein, dass Du die WP und CD Kontakte am Sockel nicht angeschlossen hast? Warum? Das ist doch eine deutliche Einschränkung.


    So ist es.. habe ich bisher NIE als Einschränkung wahrgenommen! Wenn ich damit arbeite, ist eine SD Karte drin, wenn ich den Cevi
    einschalte und gut ist.. Und Schreibschutz..? wer braucht denn sowas ;-)

    Aber das könnte man ja noch ändern..

    Ich werde diese Woche noch mal versuchen alle Verbindungen zu prüfen gegen den Schaltplan..

    Aber bisher ist das Interesse wohl noch nicht soo groß..??

    Peter
    AVR CP/M, C64, 1541, SwinSID, Apple-1 EMU, Jiffy-DOS, XM1541
  • PeterSieg schrieb:

    Evtl. kann ein Mod ja mal die alten ZIP Dateien hier entfernen..
    hmm, reicht als kompromiss im ersten Post das zip-file durch die letzte Version zu ersetzen..? sonst versteht ja keiner in paar Wochen mehr die anmerkungen über die layoutfehler und man könnte im prinzip auch gleich jedes zweite posting löschen, wovon ich nun nicht begeistert bin :nixwiss: ...

    sl FXXS
  • PeterSieg schrieb:

    So ist es.. habe ich bisher NIE als Einschränkung wahrgenommen! Wenn ich damit arbeite, ist eine SD Karte drin, wenn ich den Cevi
    einschalte und gut ist.. Und Schreibschutz..? wer braucht denn sowas ;)


    Der CD ist doch auch für den Bootloader wichtig, dachte ich.

    Und wo wir gerade dabei sind. Diskwechseltaster? :D
    Zuletzt repariert:
    21.2. Logitech M570 Microschalter ausgetauscht - geplante Obsoleszenz durch Billigtaster?
    19.11. Toshiba 3,5" Floppy defekter Elko durch Kerko getauscht auf Motorplatine
    27.11. 1541B Dauerlauf, Elko im Resetschaltkreis defekt, nicht der 7406 wie zuerst verdächtigt!
  • Der CD ist doch auch für den Bootloader wichtig, dachte ich.
    Und wo wir gerade dabei sind. Diskwechseltaster?


    Das kann schon sein.. da ich ja bisher NIE mit Bootloader gearbeitet habe.. In wie fern wird der vom Bootloader denn 'benötigt'?
    Diskwechseltaster.. muß mal sehen an welchen PIN der bei LarsP dran muß..

    Deswegen im Titel ja auch 'simpel'.. sonst wären wir ja bei 'standard-DIL' ;-)

    Nein mal ehrlich - just my 2 cents - CD+WP sind luxus ;-)
    Diskwechseltaster - ja - könnte noch rein.. als Jumperanschluß wie JP1+JP2.
    Selbst Quartz+2xC braucht man nur für die Fastloader..

    EDIT:
    - For the original MMC2IEC and the NKC MMC2IEC:
    Connect a button from PA4 to ground. PA4 is pin 36 on the DIL version
    ...
    Hier ist sie nun.. die nicht mehr 'simpel' Version ;-)
    Mit Anschluß für Diskwechseltaster an PA4/Pin 36
    Und mit angeschlossenen Write Protect und Card Detect.

    Peter
    Bilder
    • mmc2iec.png

      17,17 kB, 336×490, 75 mal angesehen
    Dateien
    • mmc2iec.zip

      (65,77 kB, 16 mal heruntergeladen, zuletzt: )
    AVR CP/M, C64, 1541, SwinSID, Apple-1 EMU, Jiffy-DOS, XM1541

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von PeterSieg ()

  • Dem Bootloader sind die Schalter völlig egal.
    Es wird nur von der Karte gelesen und die Karte muss beim Einschalten schon eingelegt sein.

    Der Erkennungs-Schalter ist ja im wesentlichen für den Fall wichtig, dass man die Karte im Betrieb tauscht.
    Zum Beispiel auch, wenn man die rausnimmt, am PC aktualisiert und wieder reinsteckt.

    Das dürfte in unserer Anwendung auch nicht wirklich kritisch sein.
    Wobei ich jetzt aber zu faul bin um im Source nachzusehen, wie weit die SD2IEC Firmware die Verzeichnisse puffert und wie weit der CD benutzt wird.
    Da der Speicher im Controller etwas sehr eingeschränkt ist, dürfte das aber auch nicht sooo tief gehen.
  • Shadowolf schrieb:

    Wobei ich jetzt aber zu faul bin um im Source nachzusehen, wie weit die SD2IEC Firmware die Verzeichnisse puffert und wie weit der CD benutzt wird.

    Es wird ein Sektor von der FAT-Library gepuffert und die Clusternummer des aktuellen Verzeichnisses gespeichert. Wenn man Glück hat und eine Karte verwendet die sich Spec-konform verhält dann verweigert sie direkt nach dem Einlegen alle Zugriffe bis sie initialisiert wurde. Wenn die Karte trotzdem Schreib-/Lesezugriffe zulässt können die Daten darauf auf interessante Art geschreddert werden.

    Wenn sd2iec auf einmal Lesefehler von der Karte zurückgemeldet bekommt wird sie automatisch neu initialisiert, allerdings wird dabei versucht das aktuelle Verzeichnis nicht zurückzusetzen. Auf auf diesem Weg kann man nach einem Kartenwechsel ohne Change-Signal fiese Probleme provozieren.

    Quellcode

    1. 10 x=rnd(-1963):fori=1to81:y=rnd(1):next
    2. 20 forj=1to5:printchr$(rnd(1)*16+70);:next
    3. 30 printint(rnd(1)*328)-217

    sd2iec Homepage
  • Und noch einmal.. ein paar Erc+Drc Meldungen weniger :-)

    Das sollte es jetzt gewesen sein..

    EDIT: falsches (altes) Bild.. jetzt das richtige.

    Peter
    Bilder
    • mmc2iec.png

      17,04 kB, 331×490, 70 mal angesehen
    Dateien
    • mmc2iec.zip

      (65,41 kB, 15 mal heruntergeladen, zuletzt: )
    AVR CP/M, C64, 1541, SwinSID, Apple-1 EMU, Jiffy-DOS, XM1541

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von PeterSieg ()

  • PeterSieg schrieb:

    Das sollte es jetzt gewesen sein..

    Öh, jetzt sind PD2 (Card-Detect) und PD6 (Schreibschutz) wieder fest an Masse?

    Ansonsten: Füg doch noch einen dritten Pin bei der Diskchange-Stiftleiste hinzu und verbinde den mit PA5 (Pin 35), dann kann man beide unterstützten Taster bequem anschliessen. Ein vierter Pin am IEC-Anschluss der auf Masse liegt macht sich beim späteren Anschluss auch gut wenn jemand die Platine getrennt vom C64 mit Strom versorgen will.

    Ach ja, die Clock-Leiterbahn berührt in der Grafik die Pads der Dioden. Auch wenn das möglicherweise auf der Platine selbst keine Verbindung ist würde ich dazu tendieren die Bögen in die andere Richtung zu legen weil das wohl der knappeste Leiterbahnabstand auf der ganzen Platine ist und das evtl. die Fertigungskosten hochtreibt.

    Quellcode

    1. 10 x=rnd(-1963):fori=1to81:y=rnd(1):next
    2. 20 forj=1to5:printchr$(rnd(1)*16+70);:next
    3. 30 printint(rnd(1)*328)-217

    sd2iec Homepage
  • So. Ich behaupte einfach mal, das eagle Layout wäre jetzt so brauchbar.. und es enthält wohl inzwischen alle Möglichkeiten:
    - mit oder ohne Quartz
    - 3V Regler oder simpel 2 SI-Dioden
    - SD Slot auf der Platine
    - Write Protect und Card Detect verbunden
    - Anschluß für Disk-ID
    - Anschluß für Diskwechseltaster

    Das bekundete Interesse bisher:

    2 erik1967
    1 c64-camper
    1 alienbreed
    2 Mad2


    Das ist natürlich für eine Auflage von 20Stück zu wenig.
    Ansonsten könnte ich das schon machen.. würde als Satz, bestehend aus Platine + SD Slot 10€ kosten. Versand 2€
    Es wäre allerdings schön wenn ich die AVR's NICHT mitliefern müßte!! Das gibt es viel zu viele Varianten:
    ATmega32 oder ATmega644? Mit Bootloader oder direkt Firmware? Fusebits für Quartz oder ohne?
    Außerdem haben die meisten doch Kontakt zur DoReCo oder sind auf der Classic Computing etc. wo man sicher auch jemanden
    findet, der einem einen ATmega bespielen kann..
    Nur im Notfall könnte ich einen ATmega32 mit sd2iec0.66 Firmware geflasht mitliefern (+3€).
    Meine ersten Versuche mit einem Bootloader will ich dann auch irgendwann einmal machen..

    Da pcbcart bis zum 24.01 im Urlaub ist.. kann ich sowieso nicht vorher bestellen..
    Ideal wäre auch wenn jemand weiß, wo man eine bezahlbare Prototypen Platine herbekommen könnte?

    Peter
    AVR CP/M, C64, 1541, SwinSID, Apple-1 EMU, Jiffy-DOS, XM1541
  • Hallo Peter,

    PeterSieg schrieb:

    So. Ich behaupte einfach mal, das eagle Layout wäre jetzt so brauchbar.. und es enthält wohl inzwischen alle Möglichkeiten:
    - mit oder ohne Quartz
    - 3V Regler oder simpel 2 SI-Dioden
    - SD Slot auf der Platine
    - Write Protect und Card Detect verbunden
    - Anschluß für Disk-ID
    - Anschluß für Diskwechseltaster

    Das bekundete Interesse bisher:

    2 erik1967
    1 c64-camper
    1 alienbreed
    2 Mad2


    Das ist natürlich für eine Auflage von 20Stück zu wenig.


    also ich würd das gleich alles mit dauf machen, also Quarz , 3V regler , SD Slot , Write Protect und Card Detect verbunden, Anschluß für Disk-ID, Anschluß für Diskwechseltaster .

    Ich nehm auch 3 oder 4 Stück, dann haben wir die 20 schneller voll :freude

    Gruß Martin
    SX-64 mit Speeddos etc., Dolphin Dos 2, SD2IEC, MMC2IEC, IECATA V2, XS-1541, XU-1541-SD, SwinSID X2, 1541U+ eth, Easyflash 1+3, DIAG-BLACK II, Chameleon 64 mit RR-Net :winke:
  • @Mad2: Ich nehme dich dann mal mit 3 Stück auf. Der Quartz wird nur für Turbodisk/FC3 etc. benötigt.
    Das kann ja dann jeder selber entscheiden.. deshalb sollte auch jeder selber sich um den AVR kümmern..
    da muß man in den Fusebits dann den Quartz aktivieren..

    Ich plane - wie gesagt - Platine+SD Slot - als Satz zu liefern.. 1 Satz = 10€ Die anderen Teile+AVR programmieren muß dann jeder selbst machen.. sind aber alles Standardteile die es überall gibt.. die anderen Teile sollten ca. bei max. 6-8€ liegen, wobei der ATmega32 mit alleine 3€ dabei ist..

    2 erik1967
    1 c64-camper
    1 alienbreed
    3 Mad2
    3 bencao74
    --
    10

    Teileliste (aus dem Kopf):
    Minimal:
    1 LED 3mm grün/blau (Ladeanzeige) - für Funktion nicht wichtig aber sehr hilfreich..
    1 560Ohm Widerstand für LED
    3 1,8kOhm Widerstand
    3 3,3kOhm Widerstand
    1 100nf Kondensator
    1 2,2uF Tantal/Elko (geht auch 3,3-4,7uf)
    1 3,3V Spannungsregler (für die Minimalisten, alternativ 2 Si-Dioden z.B 1N4001)
    1 40-pol IC Fassung
    1 ATmega32 - programmiert
    1 Anschluß für Tapeport für +5V u. GND Abnahme (oder andere Versorgung)
    1 IEC Anschluß (MAS60) mit mind. 3 Leitungen (Clock/Data/ATN)
    --- Verfeinerungen - sollte man aber einbauen ---
    1 LED 3mm rot (Error)
    1 560Ohm Widerstand für LED
    --- Für Turboload/FC3 ---
    1 Quartz 8MHz
    2 zum Quartz passende Kondensatoren (22-33pf; z.B 27pf)
    --- Größeren AVR ---
    1 ATmega644 programmiert anstatt ATmega32

    je nach Lust+Laune Stiftleisten/Taster etc. für Disk-ID/Wechseltaster

    Peter
    AVR CP/M, C64, 1541, SwinSID, Apple-1 EMU, Jiffy-DOS, XM1541