Hi!
Evtl. hat es ja jemand mitbekommen, dass ich Ende 2010 sd2iec auf eine ARM-CPU, genauergesagt auf einen LPC1768 portiert habe und die git-Version seitdem sowohl für ARM als auch AVR compilierbar ist. Dummerweise ging dabei der Plan, dass irgendjemand das interessant genug finden würde um die Hardware dafür zu entwerfen nicht auf und um das über ein Jahr lang aufgebaute Steckbrettchaos endlich mal beseitigen zu können habe ich dann doch mal selbst Hand angelegt. Das Ergebnis ist die "arm2iec"-Hardware, die jetzt nach etwas Debugging und Umschreiben der Software(1) scheint das Ding jetzt auch gut genug zu laufen um es wenigstens mal in einem etwas grösseren Kreis bekanntzumachen.
Features der neuen Hardware:
- NXP LPC1768/1769-CPU - Cortex M3, 100MHz (1769: 120, nicht ausgenutzt), 512KB Flash, 64KB Ram - laut Speed-Test kommt Jiffy damit jetzt auf 24,9fache Geschwindigkeit statt ca. 23fach auf AVR
- kompakte Platine: nur 90x100mm^2 (zum Vergleich: eine 3,5"-Disk ist 90x94mm^2 gross)
- komplett
mit viel Fluchenliebevoll handgeroutet - passt vermutlich in kein gebräuchliches Gehäuse
- Montagelöcher in allen vier Ecken (Prototyp-Platine: drei Ecken und zwei weitere Löcher wo gerade Platz war)
- Hobbybastlerfreundliches Design: Nur zwei SMD-Bauteile(2), der Microcontroller selbst steckt auf einem Fertigmodul
- vier Taster(3) zur Softwaresteuerung
- Reset-Taster
- vier LEDs auf der Platine, drei weitere auf der Controllerplatine(4)
- vier DIP-Schalter zur Auswahl der Geräteadresse von 8 bis 23
- Spannungsversorgung via USB
- USB-Seriell-Wandlerchip (SMD, aber mit harmlosem 1,27mm-Raster) für Debugausgaben oder zur initialen Programmierung mit dem Rom-Bootloader direkt auf der Platine
- zwei DIN-Buchsen für den seriellen Bus
- zusätzliche Stiftleiste für den seriellen Bus falls die nicht reichen sollten
- saubere Bustreiber (7414 und 7407)
- Parallelport-Anschluss(3)
- LCD-Anschluss für HD44780-kompatible Textdisplays(3)
- Vorbereitet für Ethernet(3), braucht eine externe RJ45-Buchse und einen passenden Trafo
- batteriegepufferte Echtzeituhr
- 3-Pin-Jumper um den Einsprung in den Rom-Bootloader zu erzwingen
- USB-B-Buchse zur PC-Anbindung(3) (falls jemand mal die Zoomfloppy-Sourcen portieren will?)
- freie I/O-Pins des Microcontrollers auf einem Erweiterungsstecker verfügbar
- nettes "Designed for sd2iec" mit Logo auf der Unterseite
- furchtbar teuer (das Fertigmodul mit dem Microcontroller kostet einzeln schon 23,80EUR)
Natürlich hat die ARM-Version von sd2iec alle Features der AVR-Version und natürlich wird wenn möglich ein neues Feature auf beiden CPU-Architekturen aktiviert.
Ein paar Fotos der Prototypen-Version - die 1.1 hat ein paar kleine Änderungen:
a2i-bottom_mini.jpga2i-top_mini-2.jpga2i-proto_mini.jpg
(das Bild der Platinenoberseite ist übrigens minimal weichgezeichnet um das 251kB-Limit ohne sichtbare Artefakte zu erreichen)
Man beachte die elegant zur anderen USB-Buchse rübergefädelten Signalleitungen des MCP2200 nachdem die Pads der Mini-USB-Buchse sich schon beim ersten Entlötversuch von der Platine gelöst haben.
KiCAD-Daten der Beinahe-1.1-Version der Platine (die Mini-B-Buchse muss noch auf THT umgestellt werden, ich hatte aber keine Lust heute noch den Footprint zu zeichnen) finden sich hier, einige Bausätze für die Prototypen-Version gibts gleich im hiesigen Flohmarktbereich. Die dazu passende Version von sd2iec ist noch nicht im Repository, ich muss den lokalen Branch erst noch etwas aufräumen.
Fussnoten/Kleingedrucktes:
(1) Man sollte nachschauen auf welchen Ports Interrupts ausgelöst werden können bevor man die IEC-Pins definiert. Glücklicherweise war ein Workaround mit anderen Funktionen auf den Pins möglich.
(2) Auf den Prototypen-Platinen ist die USB Mini-B-Buchse noch in SMD, aber die habe ich netterweise mal vorbestückt.
(3) zur Zeit nicht sd2iec unterstützt
(4) zur Zeit nicht so richtig sinnvoll von sd2iec unterstützt
EDIT by FXXS: auf userwunsch hier noch der Link zur Aufbauanleitung: arm2iec 1.1 Aufbautips