Hallo Besucher, der Thread wurde 192k mal aufgerufen und enthält 617 Antworten

letzter Beitrag von sebos am

Step-by-Step SD2IEC Lochraster Nachbau

  • Vorwort:
    ========
    Diese Nachbau Beschreibung ist auf Wunsch einiger Mitglieder dieses Forums entstanden.
    Durch lesen der Threads hier im Forum, etwas AVR Vorkenntnisse (und kombinieren Dr. Watson :) ) bin ich letztendlich zum Resultat gekommen. Da dies ein Hobby für mich ist und ich an den Anfang des Basiswissens von Elektronik, AVR und Programmierung stehe, könnte diese Beschreibung für den Profi zu umfangreich und simpel erscheinen. Für den Anfänger ist es jedoch wünschenswert alles auf einen Blick zu haben. Ziel dieser Beschreibung ist das dokumentieren vom Kauf der Komponente, löten des SD2IEC, programmieren des AVR’s ohne und mit Bootloader, vorbereiten der SD-Karte, Prüfen und Inbetriebnahme des SD2IEC’s.
    Dieser Nachbau ist bestimmt nicht der schönste, aber zweckmäßig, billig und funktionstüchtig. Ich hoffe diejenigen zu helfen die sich bisher ein solches Projekt nicht zugetraut haben. Mein Dank, das ich das SD2IEC nachbauen konnte, geht an AntaBaka, Unseen, LarsP, Shadowolf und alle anderen die an der Entwicklung des SD2IEC gearbeitet haben. Danke auch am Forum64 im Allgemein, es hat mein Interesse am C64 um ein vielfaches vergrößert.



    Viel Spaß beim basteln!



    Voraussetzung:
    ==============
    Etwas Erfahrung im löten auf 2,54 mm sollte man schon haben.
    Einen Schaltplan lesen um Pins mit einander zu verbinden müsste man können.



    Quellen:
    ========
    http://www.pitsch.de/stuff/mmc2iec/index.htm
    http://www.engbedded.com/fusecalc/
    http://sd2iec.de/
    http://www.myavr.de/
    http://www.atmel.com/
    http://www.c64-wiki.de/index.php/SD2IEC
    http://www.c64-wiki.com/index.php/sd2iec_(firmware)



    AVR Propaganda: :)
    ===============
    Diejenigen die nicht selber den AVR Programmieren wollen, würde ich raten trotzdem einen Programmer zu kaufen. Denn jemand anderen das AVR programmieren zu lassen kostet ja auch Versandkosten, dauert länger und man ist immer abhängig. Man kann den Programmer ja dann auch für andere Projekte brauchen.


    Ich habe mir vor ca. einem Jahr beim myAVR Shop den mySmartUSB MK2 €28,- gekauft, der kann sehr viele AVR Typen die man für unser Hobby so nötig hat in Windows, Linux oder Mac über USB programmieren. Es sind dann 6 Drähte die man über einen 10-Poligen Wannenstecker anschließen muss um den AVR zu Programmieren. Man braucht auch noch ein USB A -> B Kabel, dürfte aber wohl jedermann zuhause haben.


    Mein erster Kontakt mit AVR war mit den Produkten von myAVR (Heute bestellen, in 1 bis 2 Tage zuhause und nachher bezahlen). (Ich möchte keine Werbung machen, stehe auch in keinerlei Verbindung mit dieser Firma. Aber das Konzept finde ich für den Anfang und das Verständnis einfach genial.)


    Ich habe folgende Sachen eins nach dem anderen gekauft und durgearbeitet (für den Nachbau nicht nötig):
    myAVR Board MK1 LPT, Bausatz
    myAVR Board MK1 LPT PLUS, Bausatz
    myTinyProg (nicht gekauft nur Infos bezogen)
    myAVR Board MK1 LPT, Bausatz 2x
    myAVR Board MK2 USB, Bausatz (für den USB Programmer)
    Kleinkram: ATmega8A-PU, DIP 28; ATmega32A-PU; Wannenstecker 10polig, gerade


    Die Dokumentation der Produkte auf deren Einsteigerseite und den Download-Bereich ist so umfangreich das man sich in kurzer Zeit ein gründliches Basiswissen erlesen kann. Man kann mit den Bauteilen des myAVR Board MK1 LPT Bausatzes u.a. folgendes machen:
    • Einen LPT ISP Programmer basteln.
    • Einen Seriellen ISP Programmer machen. (Siehe myTinyProg)
    • Eine serielle Kommunikation zwischen den AVR und den PC (und auch zum C64 (5 Volt)) herstellen.
    • Mit dem ATmega8 experimentieren (Ein-, Ausgabe usw.).
    • Da das Experimentierboard so billig ist (€12,99) kann man die Bauteilen des myAVR Board MK1 LPT Bausatzes auch “missbrauchen“ eigene Schaltungen zu basteln. Damals kannte ich Reichelt und Konsorten noch nicht. :) Ich habe es z.B. für die serielle Schnittstelle vom PC zum C64C benutzt.


    myTinyProg habe ich nicht gekauft und ist jetzt auch nicht mehr erhältlich, aber in deren Download-Bereich gibt es die Know-how (alle Dokumentation, Schaltpläne und Firmware) einen Seriellen ISP Programmer zu machen. Und somit auch durch Verwendung eines USB – Seriell Adapters, einen USB Programmer. (nur zum Verständnis)


    Den myAVR Board MK2 USB Bausatz habe ich mir dann noch bezogen wegen dem USB Programmer mit 5 Volt Serieller Brücke, weil ich dann von jedem PC aus das AVR Programmieren kann.


    Es gibt jetzt auch die mySmartUSB light €14,95, die würde es auch tun, hat aber einen 6-Poligen Wannenstecker und ich habe ihm nicht in der Praxis getestet. Für die €13,- würde ich aber nicht verzichten auf die 5 Volt TTL Pegel Serielle USB Bridge Möglichkeiten des mySmartUSB MK2, ist aber nicht notwendig.



    Benötigt wird:
    ==============
    • Bestell Liste Reichelt: LINK Ohne Gewähr!



    Tipp: 10 Wiederstände sind billiger als 4 Wiederstände (ist ja Klar, oder?) :)


    • MicroSD Card (microSDHC) 2 oder 4 GB Kingston mit SD-Adapter
    • mySmartUSB MK2 Programmer von myAVR
    • Cassetten Stecker (beim nächsten wird eine Datasette spenden müssen :() Da die Stecker schwer zu kriegen sind kann man auch einen 1531 Adapter für den C64 (wenn man den hat) benutzen. Die miniDIN Stecker sind noch Standard.
    • Draht
    • Lötzinn
    • Lötkolben
    • Einfachen Multimeter
    • Dritte Hand :)



    Abbildungen:
    ============
    Abb01: Die Hardware
    01Hardware.jpg
    Abb02: Das Layout
    02SD2IEC_antabaka_larsP.gif
    Abb03: Pinout des ATmega’s und standard Atmel ISP Anschlüsse
    03Atmelkorr.jpg [neu]
    Abb04: Polung und Anschlüsse der Komponente
    04Komponente.jpg
    Abb05: Pinout Cassetten Port und Serieller Bus Stecker
    05CassetteSerial.jpg


    EDIT by FXXS: Neue Version von Autor.
    EDIT2 by FXXS: 1284P statt 644P...

  • Der Zusammenbau:
    ================
    • IC Sockel an Eckpunkten löten (Hellblau gibt die neuen Lötstellen an)
    • ISP Wannenstecker an Eckpunkten löten
    • Kristall an Pin 12 und 13 des AVR’s löten
    Tipp: abgeknipste Beinchen nicht wegwerfen, die können wir später gebrauchen!
    Abb-aAbb-a.jpg
    • C4 und C5 (2 x 33p) an Kristall löten
    • Spannungsregler festlöten (mittleres Beinchen auf der Masse Linie (k) AVR Pin 11)
    • C3 (2,2uF) festlöten (auf Polung achten Abb04)
    Abb-bAbb-b.jpg
    • C1 und C2 zwischen 5V und Masse des AVR’s und dem Spannungsregler löten
    Abb-cAbb-c.jpg
    • R1, R2 und R3 an Pin 5, 6 und 8 des AVR’s löten
    Abb-dAbb-d.jpg
    • R4, R5 und R6 zwischen Masse und R1, R2 und R3 löten
    Abb-eAbb-e.jpg

  • • R7, R8 und beide LED’s festlöten
    Abb-fAbb-f.jpg
    • 11 mit 31 verbinden
    • 10 mit 30 verbinden
    Abb-gAbb-g.jpg
    • Masse Leitung durch verbinden
    Abb-hAbb-h.jpg
    • 5V Leitung durch verbinden
    Abb-iAbb-i.jpg
    • Kathode vom grünen LED an Pin 40 (Abb04)
    • Kathode vom roten LED an Pin 39
    • Anode vom grünen LED an R7
    • Anode vom roten LED an R8
    • R7 und R8 beide an 5V
    Abb-jAbb-j.jpg

  • • Pin 3, 4, 6, 8 und 10 vom ISP durch verbinden
    • MOSI ISP Pin 1 an AVR Pin 6
    • MISO ISP Pin 9 an AVR Pin 7
    • SCK ISP Pin 7 an AVR Pin 8
    • RESET ISP Pin 5 an AVR Pin 9
    • Vcc ISP Pin 2 an 5V
    • Gnd ISP Pin 10 an Masse
    Abb-kAbb-k.jpg
    • 9 Beinchen nach außen führen
    Abb-lAbb-l.jpg
    • SD-Adapter anlöten
    Abb-mAbb-m.jpg
    • SD-Adapter Pin 3, 6, 8 und 9 an Masse
    Abb-nAbb-n.jpg
    • SD-Adapter Pin 1 zwischen R1 und R4
    • SD-Adapter Pin 2 zwischen R2 und R5
    • SD-Adapter Pin 4 an 3,3V
    • SD-Adapter Pin 5 zwischen R3 und R6
    • SD-Adapter Pin 7 an AVR Pin 7
    Abb-oAbb-o.jpg

  • • Cassetten Stecker Pin 1 an Masse
    • Cassetten Stecker Pin 2 an 5V
    • IEC ATN Pin 3 an AVR Pin 22
    • IEC DATA Pin 5 an AVR Pin 23
    • IEC CLK Pin 4 an AVR Pin 24
    Abb-pAbb-p.jpg
    • AVR Pin 20 an Masse für SD WRITE_PROTECT
    • AVR Pin 16 an Masse für SD CARD_DETECT
    • Schalter zwischen AVR Pin 38 und Masse
    Abb-qAbb-q.jpg



    Prüfen mit Multimeter:
    ======================
    • Alle Grün Markierte stellen müssen mit Cassetten Stecker Pin 1 (Masse) verbunden sein.
    • Alle Rot Markierte stellen müssen mit Cassetten Stecker Pin 2 (5V) verbunden sein.
    • Die zwei Magenta Markierte stellen sind 3,3V für die SD-Karte.
    • Selbstverständlich darf keiner der drei Farben untereinander verbunden sein.
    Abb-rAbb-r.jpg
    Abb-sAbb-s.jpg

  • !!! BEVOR DER PROGRAMMER AM PC ANGESCHLOSSEN WIRD, MUSS DER TREIBER UNBEDINGT INSTALLIERT WERDEN !!!
    !!! SD-KARTE UND ATMEGA NOCH NICHT EINSTECKEN !!!
    • Programmer am PC und am ISP Port des SD2IEC anschließen
    • 5V (AVR Pin 10) und 3,3V (SD-Karte Pin 4) prüfen
    Abb-tAbb-t.jpg
    Abb-uAbb-u.jpg



    ATmega brennen:
    ===============
    • Programmer vom SD2IEC trennen
    • ATmega einstecken (auf Pin 1 achten)
    • Programmer am SD2IEC anschließen
    • Mit dem Programm “myAVR_ProgTool.exe“ die Hardware prüfen.
    Prog1Prog1.jpg
    • Mit dem Programm “myAVR_ProgTool.exe“ die Datei BLINK644P.zip brennen
    Dies ist ein kleines Programm um zu schauen ob der AVR richtig programmiert werden kann. Die Grüne LED sollte kontinuierlich blinken (0,5 Sekunden an / 0,5 Sekunden aus). Wenn es ein unprogrammiertes AVR ist, blinkt das LED 8 x so langsam da der Standard Tackt des AVR‘s ist 1 MHz und das Programm für 8 MHz geschrieben ist. Das Rote LED müsste kontinuierlich brennen.
    Prog2Prog2.jpg

  • Abb-vAbb-v.jpg
    • Mit dem Programm “myAVR_ProgTool.exe“ müssen wir jetzt die “Fusebits“ einstellen.
    Dies sind einige Bits bzw. Bytes (zu wissen Low-Byte, High-Byte, Extended-Byte und Lock-Byte) die das Verhalten des AVR’s bestimmen.
    AntaBaka hat auf seiner Webseite die Fusebits für sämtliche Variationen des SD2IEC’s zur Verfügung gestellt. Um die Werte der Bytes zu erlangen hat er einen Link zu einen “AVR Fuse Calculator“ zur Verfügung gestellt. In unsere Variante des SD2IEC’s (LarsP Layout mit dem ATmega 644P ohne Bootloader) benötigen wir folgende Werte:

    Code
    1. Low-Byte = EF
    2. High-Byte = 91
    3. Extended-Byte = FD


    Prog3Prog3.jpg
    • Die Grüne LED sollte jetzt mit der richtige Geschwindigkeit blinken, also 0,5 Sekunden an / 0,5 Sekunden aus.
    • Jetzt können wir mit “myAVR_ProgTool.exe“ die Firmware von Unseen brennen. Alle Varianten können auf seiner Webseite runtergeladen werden. In unsere Variante des SD2IEC’s (LarsP Layout mit dem ATmega 644P ohne Bootloader) benötigen wir die Datei sd2iec-0.9.1-larsp-m644p.zip.
    Prog4Prog4.jpg
    • Der Programmer kann jetzt vom SD2IEC getrennt werden.
    !!! DER PROGRAMMER NUR ANSCHLIESSEN WENN DAS SD2IEC AN NICHTS ANDEREM ANGESLOSSEN UND DIE SD-KARTE ENTNOMMEN IST !!!
    Ich habe den Bootloader absichtlich weggelassen um eventuelle Probleme mit dem ATmega 644P zu umgehen. An einem späteren Zeitpunkt beschreibe ich noch wie man die Fusebits setzt um den Bootloader zu nutzen und brennen.

  • Erster Test:
    ============
    • SD-Karte am PC formatieren
    AntaBaka hat auf seiner Webseite einen Link zu einen formatier Software von Panasonic zur Verfügung gestellt. Hier ist die Version für Windows XP.
    • Einige C64 Tools zum browsen der Speichermedien.
    Hier und Da
    • Einige Programme / Spiele zum Testen auf der Karte speichern.
    • SD-Karte im SD2IEC stecken und am C64 anschließen.
    • Beim einschalten leuchtet die Grüne LED etwa 1/4 Sekunde auf.
    • Bei offenem Schalter ist die Laufwerksadresse 8
    • Folgendes kleines Programm gibt den Fehlerkanal aus.


    Code
    1. 10 OPEN15,8,15:INPUT#15,a$,b$,c$,d$
    2. 20 CLOSE15
    3. 30 PRINT A$,B$,C$,D$
    4. run


    • Mit ein bisschen Glück bekommt ihr diese Meldung:
    Test1Test1.jpg



    Bootloader:
    ===========
    !!! DEN PROGRAMMER NUR ANSCHLIESSEN WENN DAS SD2IEC AN NICHTS ANDEREM ANGESCHLOSSEN UND DIE SD-KARTE ENTNOMMEN IST !!!
    • Um den Bootloader zu nutzen ändern wir jetzt die “Fusebits“ mit den folgende Werte:

    Code
    1. Low-Byte = EF
    2. High-Byte = 92 <--
    3. Extended-Byte = FD


    Prog5Prog5.jpg
    • Jetzt können wir den Bootloader bootloader_LarsP_M644.zip brennen. Auch die Bootloader sind auf Unseen’s Webseite zu finden.
    Prog6Prog6.jpg
    • Nach dem brennen leuchtet die Rote LED kontinuierlich.
    • Programmer vom SD2IEC trennen.
    • Die Firmware sd2iec-0.9.1-larsp-m644p.zip auf die SD-Karte kopieren.
    • SD-Karte im SD2IEC stecken und am C64 anschließen.
    • Beim einschalten leuchtet die Rote LED eine kurze Zeit, danach blinkt das Grüne LED etwa 3 Sekunden ziemlich schnell. (die Firmware wird geflashed).
    • Den Fehlerkanal können wir wieder mit obigem Programm abfragen.



    Ich hoffe ihr habt es bis hierher erfolgreich geschafft.
    Bitte meldet Anregungen, eventuelle Verbesserungen, Fehler und wer es geschafft hat.
    Die Beschreibung samt Fotos und Binaries sind hier als Archiv zum Download verfügbar.



    Gruß,
    lordbubsy

    EDIT by FXXS: Neue Version von Autor... /EDIT2: fettschrift & Typo

  • beim groben durchgucken und ein paar details, die ich gelesen habe und jetzt erst zusammenhängend beantwortet wurden, sage ich SUPER ARBEIT!!!!


    endlich mal was greifbares, detailliertes und sehr gut dokumentiertes auf EINEN blick, wo man nicht 3000 posts und 8000 meinungen durchlesen muss.
    als außenstehender nicht-sd2iec'ler tut man sich damit nämlich sehr schwer mit der informationsflut und einordnung was läuft, was nicht, wie gehts, was muss gemacht werden etc.


    VIELEN VIELEN DANK AN LORDBUBSY DAFÜR!


    :respect: :respect:


    und natürlich auch die anderen, die maßgeblich in anderen threads daran beteiligt waren.

  • Hast Du nen guten Tipp für den Anfang mit myAVR. So für den Einstieg.


    Für den Anfang, falls du noch keinen Programmer hast, würde ich dir den myAVR Board MK2 USB Bausatz empfehlen. Dann hast du ein Experimentierboard und den Programmer in einem. Den Programmer kann man separat verwenden!!!
    Dann hast du allerdings noch ein ISP Connect Kit 10 / 6polig nötig. Den hatte ich mir aber selber gebastelt. :)


    Danach, oder wenn du schon einen Programmer hast, empfele ich dir den myAVR Board MK1 LPT Bausatz.
    Später kaufst du einfach ein gewünschter AVR Typ und schließt selber alles an was du möchtest. :)


    Zum selber Programmieren benutze ich BASCOM-AVR.


    Ich finde die Beispiele und Erklärungen in der Arduino Anleitung aber auch sehr gut!


    Edit:
    Der ATMEL Evaluations-Board Version 2.0.1 - Bausatz ist auch schön für den Anfang.

  • sieht absolut verblüffend einfach aus

    Ja nun, dafür ist es Lochraster mit DIL-Bauteilen :)
    Soll ja auch einfach zum Bauen sein - Bauplan hernehmen und die eingezeichneten Linien löten. Am kniffligsten ist dann der SD-Slot - dort werden die meisten Fehler gemacht (Card Detect und/oder Write Protect werden da gerne vergessen...).