MMC2IEC / SD2IEC - Evolutionen


Inhalt

  1. Warum das Ganze
  2. Shadowolf v1.3 - Im C64DTV-A500
  3. Shadowolf v1.4
  4. Exkurs: mSD2IEC
  5. Lochraster No.1 - Für LarsP Firmware (veraltet)
  6. Shadowolf v1.5
  7. Shadowolf v1.6 - Massenware
  8. Lochraster No.2 - Für Shadowolf Firmware (veraltet)
  9. Shadowolf v1.7 bis v1.10 - Auf dem Weg zum sd2iec
  10. Dritthersteller - NKC Electronics MMC2IEC (veraltet)
  11. Shadowolf sd2iec v1.0/1/2 - Der Neuanfang
  12. Dritthersteller - NKC Electronics SD2IEC
  13. DIP/DIL-Platine von Peter Sieg (LarsP)
  14. Lochraster No.3 - LarsP-Layout aktualisiert
  15. Exkurs: Die Software und das Bespielen
  16. Links zum MMC2IEC/SD2IEC
  17. Troubleshooting

1. Warum das Ganze

Statt einer Floppy 1541, welche doch auch irgendwann mal das Zeitliche segnen wird, könnte man auch ein etwas moderneres und dabei deutlich kleineres Speichermedium verwenden. Aus dieser Idee entstand die 1541-III von Jan Derogee, welche mit einem PIC-Microcontroller arbeitet. Pyrofer hatte bereits mit dem MMieC Projekt etwas ähnliches geschaffen. Als dann der C64DTV auf den Markt kam, hat sich Pyrofer zusammen mit Jussi Saily daran gemacht, die 1541-III und das MMieC umzubauen, damit das Resultat am C64DTV betrieben werden kann. Daraus entstand die 1541-III DTV - immer noch mit einem PIC.

Lars Pontoppidan hat dann die 1541-III DTV für seinen C64DTV Mod auf einen AVR chip umgezogen - einen ATMega32. So entstand sein MMC2IEC device (Schema). Er hat dann auch noch eine Version erstellt, welche wiederum an den C64 angeschlossen werden konnte (Schema) - damit hat sich der Kreis zur ursprünglichen 1541-II wieder geschlossen. Das letzte, was Lars gebaut hat ist en MMC2IEC, welches sowohl am C64DTV als auch am C64 arbeitet - diese hat er auch zum Verkauf angeboten (Schema der Rev2).

Basierend auf den Schematics von Lars gab es dann im Forum64 einige Nachbauten für den C64DTV. Im Gegensatz zu Lars verwendete mancher dabei nicht den ATMega32 als TQFP (44pin SMD) sondern als DIP (40pin), da dieser deutlich einfacher zu handhaben ist. AndyDTV benutzte dabei die L-Variante (3.3V) für seinen Nachbau. Im Gegensatz dazu verwendete Shadowolf zwar den TQFP, änderte aber ein paar Ports.

Nach einigen Hardwareversionen ist das MMC2IEC von Shadowolf (auch aufgrund einer komplett neugeschriebenen Firmware von Unseen inzwischen soweit verändert worden, dass es einen neuen Namen bekommen hat: SD2IEC. Ab hier beginnen viele Konfusionen, da die Hardware und die Firmware dieselben Namen haben, d.h. es gibt eine MMC2IEC Hardware und einen mm2iec Firmware (eigentlich zwei - die Originale von LarsP und die angepasste von Shadowolf), ebenso wie es eine SD2IEC Hardware und die sd2iec Firmware gibt - wobei die sd2iec Firmware auch auf der MMC2IEC Hardware verwendet werden kann.

Bei der Hardware unterscheidet man im Groben nur noch zwischen dem "LarsP-Layout" und dem "Shadowolf"-Layout", da sich diese durch die Verwendung unterschiedlicher Ports des Mikrokontrollers unterscheiden. Dies ist insbesondere für die Eigenbauten auf Lochraster interessant, damit man weiss, welche Firmwareversion (sd2iec gibt es kompiliert für beide Layouts) und Bootloader man verwenden muss.

Download der letzten Version des Schemas der LarsP-Original-Hardware und Firmware (v0.8.0): Link (Zip).


Bild: Das original LarsP-Board und Schema (rev.2)

Back to top


2. Shadowolf v1.3 - Im C64DTV-A500

Da Shadowolf noch zwei Platinen übrig hatte, habe ich diese erstanden und bestückt. Daraus entstand mein MMC2IEC für meinen C64DTV-500.
Die andere Platine ist auch fertig, die soll dann in mein C64DTV-PSone rein (Update: Hat sich erledigt - das wird eher ein SD2IEC oder die v1.6 werden).

Hinweis: Die Pinbelegung des Steckeranschlusses wurden im Folgenden beibehalten, damit die Teile untereinander austauschbar sind. Ach ja, das Steckerschema ist um 180 Grad gedreht.

Der Thread dazu im Forum64: Link
Download des Bordlayouts und Schema als PDF: Link (Zip).


Bild: Mein erstes MMC2IEC (Shadowolf v1.3) - fitzeliges SMD-Löten und die Anschlussbelegung.

Back to top


3. Shadowolf v1.4

Shadowolf hat dann eine zweite Version seines MMC2IEC gebaut, welche noch einmal etwas kleiner war. Ausserdem läuft diese Version mit 5V, welche intern auf 3.3.V für den SD-Slot reguliert werden, d.h. diese Version kann sowohl für den C64 als auch für einen mit 5V betriebenen C64DTV verwendet werden. dadurch entfällt der 3.3V Anschluss am Stecker. Wieder habe ich mir eine Platine besorgt und ebenfalls bestückt. Dieses Schmuckstück wird in meinen C64 fest eingebaut werden.

Der Thread dazu im Forum64: Link
Download des Bordlayouts und Schema als PDF, JPG und Eagle-Dateien: Link (Zip).


Bild: Die verbesserte, kleinere MMC2IEC Version (Shadowolf v1.4).

Back to top


4. Exkurs: mSD2IEC/uSD2IEC

Shadowolf hat dann die Miniaturisierung der Platine noch etwas weiter getrieben und eine Variante für MicroSD-Karten gebaut mit einem ATMega32 in MLF/QFN Bauform. Das ist allerdings sehr klein und ohne Spezialwerkzeug nicht mehr nachzubauen. Dies heizte eine Diskussion über einen IEC-Stick an. Shadowolf hat dann noch kleiner Versionen der Hardware nachgelegt: uSD2IEC in zwei Versionen.

Der Thread zum mSD2IEC im Forum64: Link
Größenvergleich mSD2IEC zu MMC2IEC v1.4: Link
Der Thread zum uSD2IEC im Forum64: Link
Größenvergleich mSD2IEC zu SD2IEC v1.2: Link


Bild: das mSD2IEC von Shadowolf und zwei uSD2IEC Varianten und sein erster Entwurf für für einen IECStick.

Back to top


5. Lochraster No.1 - Für LarsP Firmware (veraltet)

Nach all diesem Kleinkram habe ich mich entschlossen einen MMC2IEC für den externen Anschluss an einen C64 zu bauen. Da ich hierbei auf normale Bauteile zurückgreifen wollte, habe ich diesmal auch die DIP-variante (40pin) des ATMega32 gewählt und das ganze auf Lochraster aufgebaut. Als Vorlage habe ich das Layout von AndyDTV verwendet, welches allerdings für einen 3.3V ATMega32 ausgelegt ist. Ab da musste ich vieles ändern. Wegen dem Selbstbau habe ich die v1.5 von Shadowolf ausgelassen (damit auch mal andere zum Zuge kommen, hehe).

Dieser Aufbau hat eine eigene Seite spendiert bekommen: Link

Hinweis: Dieser Aufbau ist veraltet! Siehe unten...


Bild: Mein Layout und der fertige Selbstbau für die LarsP-Firmware

Back to top


6. Shadowolf v1.5

Diese Version der Platine habe ich nicht geordert. Sie bietet kleine Layoutverbesserungen - nochmal ein wenig kleiner, jetzt 50,6 x 30,4 mm - der Anschluss für die LED's und den Umschalter ist jetzt 5-polig: LED1, GND, LED2, GND, 8/9.

Der Thread dazu im Forum64: Link
Download des Bordlayouts und Schema als PDF, JPG und Eagle-Dateien: Link (Zip).


Bild: Shadowolf v1.5

Back to top


7. Shadowolf v1.6 - Massenware

Shadowolf hat dann im August/September aufgrund der regen Nachfrage im Forum64 eine neue Version seines MMC2IEC herstellen lassen (knapp 150 Platinen insgesamt). Diesmal wurde ein anderer (und deutlich billigerer) SD-Slot verwendet und zudem bekam der größte Teil des Satzes einen Bootloader spendiert, der neue Firmwares direkt von SD-Karte laden kann. Auch hier habe ich mir zwei Platinen gesichert und zusammengebaut.
Für diese Version wurde zum ersten mal ein Bootloader entwickelt (der aber auch auf den älteren Versionen läuft).
Eine Sammlung der wichtigsten Threads dazu habe ich hier mal zusammengefasst.

Der Aufbauanleitungsthread dazu im Forum64: Link
Download des Bordlayouts und Schema als PDF, JPG und Eagle-Dateien: Link (Zip).


Bild: Shadowolf MMC2IEC v1.6

Back to top


8. Lochraster No.2 - Für Shadowolf Firmware

Ähnlich wie mein erster auf Lochraster aufgebaute 40pin MMC2IEC nach Art von Lars Pontoppidan (s.o. Nummer 4) kann man natürlich auch den MMC2IEC von Shadowolf auf Lochraster aufbauen. Das wird mein nächstes Projekt.

Update: Dieses Projekt werde ich nicht fortführen, da es inzwischen umfangreiche Änderungen an der Firmware und Hardware gibt (sd2iec), d.h. da werde ich ein neues Layout für Lochraster aufbauen müssen.

Update 2: DuncanTwain aus dem Forum64 hat das Ding jetzt mal nachgebaut und es funktioniert - damit gilt es als getestet.

Update 3: thaiwolf aus dem Forum64 hat basierend auf dem Bauplan ein Platinenlayout erstellt (Format: SPRINT). Ohne Gewähr, da ich es nicht geprüft habe: Download (ZIP 34kB).

Nachtrag: Der Bauplan lässt sich einfach um die noch fehlenden Diskchange-Switches (Up/Down) und den fehlenden Oszillator (samt Kondensatoren) erweitern, um eine SD2IEC Hardware daraus zu zaubern. Bin nur immer noch nicht dazu gekommen, dies auch mal aufzuzeichnen...

Hinweis: Dieser Aufbau ist veraltet! Siehe unten...


Bild: Bauplan für Lochrasteraufbau nach Art von Shadowolf.

Back to top


9. Shadowolf v1.7 bis v1.10 - Auf dem Weg zum sd2iec

Shadowolf hat dann in kurzer Folge ein paar weiter Versionen seiner Hardware vorgestellt, welche jedoch nicht in den Umlauf gelangt sind (Hardware Versionen 1.7, 1.8 und 1.9). Der Abschluss stellt hier die Hardwareversion 1.10 dar, welche nach ein paar weiteren Änderungen dann zur sd2iec v1.0 wurde (s.u.). Bei diesen Versionen wurde ein externer Oszillator statt des internen Taktgebers eingebaut, um die inzwischen von Unseen in die Firmware eingebaute Untertützung eines Speedloaders zu ermöglichen.

Der Thread zu v1.7 bis 1.9 im Forum64: Link
Der Thread zu v1.10 im Forum64: Link
Download der Bordlayouts und Schemata : v1.7, v1.8, v1.9 und v1.10 (Zip).

Back to top


10. Dritthersteller - NKC Electronics MMC2IEC

Basierend auf dem Layout und der v0.8 Firmware von LarsP hat ein Unternehmen namens NKC Electronics eine Platine herausgebracht und vertickt die über das Internet.

Update: Auf dieser Seite habe ich die EAGLE Layouts (Download - ZIP 47kB) und ein paar vorkompilierte Firmwares (mms2iec und sd2iec bis 0.6.3) gefunden. Ist lange nicht aktualisiert worden, d.h. man geht besser direkt zu Unseen für die neueste Version (s.u. bei Software).

Update: Es gibt jetzt auch das SD2IEC von NKC Electronics (s.u.).


Bild: MMC2IEC der Firma NKC

Back to top


11. Shadowolf sd2iec v1.0/1/2 - Der Neuanfang

Nach den letzten Änderungen an der Hardware (s. v1.10) hat Shadowolf dann die Hardwareplatform an den Namen der neuen Firmware von Unseen angepasst und das neue Layout in sd2iec umgetauft, welches dann ab v1.2 serienreif war. Von dieser Version wurden ca. 60 Platinen gefertigt und unter die Menge gebracht - u.a. auch zwei für mich.

Der Thread zu v1.0 bis v1.2 im Forum64: Link
Download der Bordlayouts und Schemata : v1.0 und v1.1 (Zip).

Der Thread zum Aufbauen der v1.2 ist hier: Link.
Download des Bordlayouts und Schema als PDF, JPG und Eagle-Dateien: Link (Zip).

Das SD2IEC v1.2 stellt aktuell (März 2009) den letzten Entwicklungsstand der Hardware dar.


Bilder: Links mein SD2IEC, rechts SD2IEC Logos - Original (links) von Retrofan und die Vorlage für die Platinen von Shadowolf (rechts).

Back to top


12. Dritthersteller - NKC Electronics SD2IEC

Die bereits oben benannten NKC Electronics haben auch das SD2IEC von Shadowolf nachgebaut.
Passend zu der Basis-Platine gibt es ein Tochterbrett zum Selberlöten, auf dem die benötigten Anschlüsse drauf sind.

Das Board basiert jetzt auf dem Shadowolf-Layout und wird mit der v0.7.3 Version der sd2iec Firmware von Unseen ausgeliefert.


Bild: SD2IEC der Firma NKC und das Tochterbrett mit den Anschlüssen dafür

Back to top


13. DIP/DIL-Platine von Peter Sieg (LarsP)

Peter Sieg aus dem Forum64 hat eine Platine basierend auf dem LarsP Aufbau anfertigen lassen und an Leute im Forum64 vertickt (Thread dazu) - ich habe auch mal einen Schwung davon genommen (sieben oder so).

Die Platine basiert im Wesentlichen auf meinem LarsP-Layout (s. oben). Peter hat die (unnötige) Diode 1N4001 entfernt, zusätzlich die Möglichkeit geschaffen, statt einem Spannungsregler zwei SI-Dioden zu verwenden und endlich auch die Erweiterung um den Oszillator eingefügt, die für die Turbolader-Unterstützung in der Firmware benötigt wird.

Die Platine kann wahlweise mit einem ATMega32 oder ATMega644P bestückt werden.
Ich habe dazu eine Aufbaubeschreibung im Forum64 gepostet: Link auf die Teileliste.
Die Aufbaureihenfolge: SD-Slot, Widerstände, Kondensatoren, IC-Sockel, Oszillator, LEDs und dann die Anschlüsse.
Zusätzlich habe ich eine Anleitung gepostet, wie man das Ding mit einem ATMega644P bestückt: Link auf die Anleitung für 644P.

Der Thread zur Platine im Forum64: Link
Download der Bordlayouts und Schemata: Link (Zip).


Bild: Die leere Platine im LarsP Layout von Peter Sieg, bestückt und angeschlossen


13.1 Umbau #1 - Steckmodul

Ich habe dann angefangen, mal ein paar der Bastelideen, die ich schon länger für MMC2IECs hegte, umzusetzen.
Zunächst kam ein Umbau als Steckmodul für den Tapeport dran. Schlicht, funktional und qausi wie für die Serienfertigung gemacht (aber doch etwas Aufwand...).



Bild: Erster Umbau als Steckmodul


13.2 Umbau #2 - Ferrari/Colani-Style

Der zweite Umbau sollte etwas aufwendiger werden und mit seriellen Buchsen versehen sein, damit man eine echte Floppy oder ein weiteres Peripheriegerät auch noch anschliessen kann. Dazu fiel mir aus meiner Bastelkiste, in der ich potentielle Gehäuse sammele ein alter Joystick in die Hände...

Man nehme:

Es ist alles mit Steckern gearbeitet, um das Ding auch nochmal wieder auseinandernehmen zu können. Meterweise Schrumpfschlauch wurden verarbeitet (lag halt grad noch rum). Beim Einbau der Schalter hatte ich leider einen Knick in der Optik und die seriellen Buchsen sind leider auch nicht ganz mittig geraten.

Erste Kommentare rangierten von "hehe, süüüß" bis "Abartig...". Ich finde, es sieht einem Ferrari nicht unähnlich, wobei ein Kommentator meinte, der Ferrari sei dann aber von Colani designed. Sogar Vergleiche mit dem Auto von Donald Duck wurden herangezogen - da bleibe ich doch lieber bei meiner Ferrari-Ansicht.



Bild: Zweiter Umbau als Floppy-Ersatz - von innen und von allen Seiten

Back to top


14. Lochraster No.3 - LarsP Layout aktualisiert

Es wurde dann dochmal Zeit, die Ankündigung, den Lochrasterplan den inzwischen gewachsenen Funktionalitäten der sd2iec-Firmware anzupassen. Daher hier nun die aktualisierte Variante des Lochrasteraufbaus: Diskchange-Taster, externer Taktgeber und größerer Mikrokontroller - wobei in dieser Schaltung auch ein ATMega32 verwendet werden kann (mit den entsprechenden Einschränkungen bei der Firmwareauswahl (s.u.)

luzik1980 aus Polen hat das Ding erfolgreich nachgebaut.
brezinzke aus dem Forum64 ebenfalls.


Bild: Bauplan für Lochrasteraufbau nach LarsP Layout mit Aktualisierungen. Nachbau von luzik1980 und Nachbau von brezinzke.

Back to top


99. Exkurs: Die Software und das Bespielen


99.1 Die Firmware

Man muss den ATMega32 natürlich mit Software versorgen, denn sonst geht da gar nichts. Es gibt mehrere Versionen der Firmware:

  1. Die (hoffnungslos veraltete) Original-Firmware für das Layout von Lars Pontoppidan kann man sich auf seiner Homepage herunterladen (oder hier: v0.8.0 larsp als Zip).
  2. Die angepasste (aber ebenso veraltete) Software für das von Shadowolf angepasste Layout ist im Forum64 zu finden (oder hier: v0.8.0 sw als Zip).
  3. Die neue und kontinuierlich weiterentwickelte sd2iec Firmware von Unseen, welche für beide Layouts verfügbar ist (www.sd2iec.de)

Bootloader
Der Bootloader ist dazu da, um den Mikrokontroller nur noch einmalig beschreiben zu müssen. Danach kann der Mikrokontroller in der Schaltung verbleiben und wird per SD-Karte mit neuer Firmware bespielt. Den Bootloader gibt es in verschiedenen Versionen für die verschiedenen Layouts.

sd2iec Firmware von Unseen
Diese Firmware wurde komplett neugeschrieben und liegt inzwischen in mehreren Versionen (Kompilaten) vor:

Hinweis:Seit der Version v0.7.0 passt die Firmware nicht mehr in den ATMega32, d.h. ab hier geht's nur noch mit der SD2IEC-Hardware oder mit einem umgebauten MMC2IEC, bei dem der Mega32 durch einen Mega644P ersetzt wurde. Jim Brain und skoe haben zusätzlich Code beigesteuert.

Die jeweils aktuellste Version der Firmware liegt im Online-Repository (www.sd2iec.de)


99.2 PC-Software und Aufspielkabel

Ich habe als Aufspielsoftware PonyProg2000 Version 2.06f verwendet, dieses erkennt den ATMega32. Es ist wichtig, beim Bespielen darauf zu achten, dass die Security Bits und Fuses korrekt gesetzt sind (siehe Bild) - dabei erst die aktuellen Bits auslesen und dann Veränderungen vornehmen.

Hinweis: PonyProg (auch in der neuen Version 2.07c) erkennt den ATMega644P nicht! Wenn man nicht auf den Avrdude oder ähnliches umsteigen möchte, gibt es aber eine gepatchte Version des 2.06, welche auch mit den P-Versionen zurechtkommt: Link zum Thread, Direkter Downloadlink: PonyProg v2.06g (patched) (360KB ZIP). Diese Version benötigt man z.B. für die Bestückung der Peter Sieg Platine mit einem 644P.

Zum Bespielen der Mikrokontroller habe ich mir zwei Dinge gebaut:

  1. Einen ISP-Programmieradapter, welcher an den Parallelport (Druckerport) des Rechners angeschlossen wird. Der hat eine eigene Seite spendiert bekommen: Link: AVR ISP Adapter
  2. Ein Programmierboard, damit ich nicht bei jeder Schaltung den ISP-Port dazubauen muss. Letztlich tut es natürlich auch jedes AVR-Evaluationsboard. Link: AntaBaka's AVR-Board.


99.3 Die Fuses und Security Bits

Hinweis: Um Probleme und Fehler zu vermeiden sollte man immer erst die bestehenden Einstellungen auslesen, bevor man die neuen schreibt!


99.3.1 Die Fuses und Security Bits für ATmega32 ohne Bootloader mit internem Taktgeber (MMC2IEC)

Hinweis: Bei externem Taktgeber müssen CKSEL3, CKSEL1 und CKSEL0 deaktiviert werden (Haken weg!).


Bild: Die Security Bits und Fuses für den MMC2IEC.


99.3.2 Die Fuses und Security Bits für ATmega32 mit Bootloader mit internem Taktgeber (MMC2IEC)

Hinweis: Bei externem Taktgeber müssen CKSEL3, CKSEL1 und CKSEL0 deaktiviert werden (Haken weg!).


Bild: Die Security Bits und Fuses für den Bootloader (Dank an Nicolas Welte für das Bild).


99.3.3 Die Fuses und Security Bits für ATmega644P mit Bootloader mit externem Taktgeber (Quartz) = sd2iec v1.2

Hinweis: Bei Bespielung ohne Bootloader muß BOOTSZ0 aktiviert werden (Haken dran), BOOTRST hingegen muss deaktiviert werden (Haken weg).

Check (Programmed, 0) = JTAGEN, SPIEN, EESAVE, BOOTSZ1, BOOTRST, BODLEVEL1, SUT0
Uncheck (Unprogrammed, 1) = CLKDIV8, OCDEN, CKOUT, WDTON, BOOTSZ0, BODLEVEL2, BODLEVEL0, SUT1, CKSEL3, CKSEL2, CKSEL1, CKSEL0
Link zum AVR Fuse Calculator für diese Kombination.

99.3.4 Die Fuses und Security Bits für ATmega644P mit Bootloader mit internem Taktgeber

Hinweis: Bei Bespielung ohne Bootloader muß BOOTSZ0 aktiviert werden (Haken dran), BOOTRST hingegen muss deaktiviert werden (Haken weg).

Check (Programmed, 0) = JTAGEN, SPIEN, EESAVE, BOOTSZ1, BOOTRST, BODLEVEL1, SUT0, CKSEL3, CKSEL2, CKSEL0
Uncheck (Unprogrammed, 1) = CLKDIV8, OCDEN, CKOUT, WDTON, BOOTSZ0, BODLEVEL2, BODLEVEL0, SUT1, CKSEL1
Link zum AVR Fuse Calculator für diese Kombination

Back to top


Links zum MMC2IEC/sd2iec

Back to top


Troubleshooting

Problem: Die SD-Karte wird nicht erkannt.
Lösung: Nicht alle SD-Karten tun so recht. Das liegt aber teilweise nicht an den Karten, sondern daran, dass die gängigen Betriebssysteme die Karten nicht genäß den Spezifikationen formatieren. Abhilfe schafft hier diese Software von Panasonic: Panasonic SD Memory Card Formatting Software.

Problem: DEVICE NOT FOUND ERROR
Lösung: Das kann passieren, wenn das MMC/SD2IEC über eine externe Stromversorgung bedient wird und somit keine gemeinsame Masseleitung mit dem C64 besitzt. Diese sollte dann nachgerüstet werden und kann ggf. über die serielle Schnittstelle angeschlossen werden..


Last update: 28.02.2010, AntaBaka at artful.de