|
Größe: 6406
Kommentar:
|
Größe: 6636
Kommentar:
|
| Gelöschter Text ist auf diese Art markiert. | Hinzugefügter Text ist auf diese Art markiert. |
| Zeile 10: | Zeile 10: |
| Letzte Aktivität:: 2016-06 | Letzte Aktivität:: 2016-11 |
| Zeile 16: | Zeile 16: |
| Einfaches Mikrocontrollerprojekt um SNES Controller am C64 (oder Amiga) anzuschließen. | Einfaches Mikrocontrollerprojekt um einen SNES Controller am C64 (oder Amiga) anschließen zu können. |
| Zeile 30: | Zeile 30: |
| * unterstützt konfigurierbares Dauerfeuer | * unterstützt konfigurierbares Dauerfeuer (An/Aus, verschiedene Frequenzen) |
| Zeile 34: | Zeile 34: |
| * lässt sich gut selber auf einer Lochrasterplatine nachbauen | * lässt sich sehr gut selber auf einer Lochrasterplatine nachbauen. |
| Zeile 36: | Zeile 36: |
| Link: | Links: |
| Zeile 52: | Zeile 52: |
| == Atmega auf nen Breadboard == | == Atmega auf nem Breadboard == |
| Zeile 54: | Zeile 54: |
| Bevor es richtig los geht ein Blinky Projekt auf einem Arduino machen. Das ist das standard Arduino-Beispiel. Damit haben wir schonmal ein Programm in einen Atmega geflasht. | Bevor es richtig los geht ein Blinky Projekt auf einem Arduino machen. Das ist das standard Arduino-Beispiel. Damit hätten wir schon einmal ein Programm in einen Atmega geflasht. |
| Zeile 57: | Zeile 57: |
| * LED blinkt | * LED sollte blinken. Und es blinkt. |
| Zeile 59: | Zeile 59: |
| Als zweiten Schritt nutzen wir das selbe Program auf einem Atmega328p. Hierfür betreiben wir den Atmega in der Grundbeschaltung mit einem 16MHz Oszillator. Von dem Arduino übernehmen wir die LED an Pin 13. Dazu benutzen wir ein tinyUSB als Programmierhardware. Und schon haben wir Atmega für unser Projekt am Start. | Als zweiten Schritt nutzen wir das selbe Program auf einem Atmega328p. Hierfür betreiben wir den Atmega in der Grundbeschaltung mit einem 16MHz Oszillator. Von dem Arduino übernehmen wir die LED an Pin 13. Dazu benutzen wir einen tinyUSB als Programmierhardware. Und schon haben wir Atmega für unser Projekt am Start. |
| Zeile 63: | Zeile 63: |
| * Was noch fehlte war das Setzen der Atmega Fuse Bits auf die Werte, die der Atmega auf dem Arduino benutzt. Im wesentlichen ist das die Konfiguration für das benutzen des externen Oszillators. | * Was noch fehlte war das Setzen der Atmega Fuse Bits auf die Werte, die der Atmega auf dem Arduino benutzt. Im wesentlichen ist das die Konfiguration für das Benutzen eines externen Oszillators. |
| Zeile 66: | Zeile 66: |
| * Als Controller haben wir den Atmega8 genommen, wie auch in dem Projekt. | * Als Controller haben wir den Atmega8 genommen, wie auch in dem SNES2MD Projekt. |
| Zeile 70: | Zeile 70: |
Und hier das Ergebnis: {{attachment:C64-SNES2MD-Adapter-Breadboardaufbau-1280x720.jpg||width=640}} FIXME: Bildbeschreibung |
Info
- Beschreibung
- SNES Controller nach C64 Joystick Adapter
- Kategorie
- Basteln
- Beteiligte
DaMicha, Peter
- Status
- In Arbeit
- Start-Datum
- 2016-05
- Letzte Aktivität
- 2016-11
Inhaltsverzeichnis
Projekthintergrund/Motivation
Einfaches Mikrocontrollerprojekt um einen SNES Controller am C64 (oder Amiga) anschließen zu können.
Ziele
- SNES2MD Adpater nachbauen
- Atmega mit Grundschaltung auf'm Breadboard als Prototyp
- Atmega binary flaschen
- Atmega mit Grundschaltung auf ner Lochrasterplatine mit Kabel, Stecker und Buchsen
- Am C64 ausprobieren
SNES Controller zu C64 SubD9 Adpater
snes2md:
- SNES Controller am C64 anschließen
- unterstützt konfigurierbares Dauerfeuer (An/Aus, verschiedene Frequenzen)
- mit Bauanleitung und Firmware im Source-Code
- benutzt einen Atmega8
- lässt sich sehr gut selber auf einer Lochrasterplatine nachbauen.
Links:
http://www.raphnet.net/electronique/snes_to_db9/index_en.php
es ist auch eine snes2usb version verlinkt (http://www.raphnet.net/electronique/multiuse_pcb2/index_en.php)
weitere Informationen zur Funktion: http://www.a1k.org/forum/showthread.php?t=42525&highlight=SNES
Layout eines Bastelprojekts: http://www.forum64.de/index.php?thread/52749-heute-so-gebastelt/&pageNo=11&s=3c5cf5c18d567cc99f941cba76b0f58689d434ba
Kaufversion:
raphnet tech. (ca. 26€ + Versand)
Die SNES Controller
Wir haben 2 gebrauche gekauft (ebay: je 15 Euro). Der Zustand ist akzeptabel und kann noch durch etwas Pflege verbessert werden.
Dazu besitzen wir jetzt noch 2 Verlängerungskabel (je 4 Euro), die wir zerschneiden können um die Controller an den Adapter anschließen zu können.
Atmega auf nem Breadboard
Bevor es richtig los geht ein Blinky Projekt auf einem Arduino machen. Das ist das standard Arduino-Beispiel. Damit hätten wir schon einmal ein Programm in einen Atmega geflasht.
- standard Blink Projekt mit der Arduino IDE compilieren
- über dem Arduino USB Interface in den Atmega flashen
- LED sollte blinken. Und es blinkt.
Als zweiten Schritt nutzen wir das selbe Program auf einem Atmega328p. Hierfür betreiben wir den Atmega in der Grundbeschaltung mit einem 16MHz Oszillator. Von dem Arduino übernehmen wir die LED an Pin 13. Dazu benutzen wir einen tinyUSB als Programmierhardware. Und schon haben wir Atmega für unser Projekt am Start.
- Der tinyUSB Programmer muss zuvor als USB Gerät unter Linux angemeldet werden.
Als Programmiersoftware haben wir avrdude genommen.
- Wir haben das von der Arduino IDE erstellte Hex File des Blinky Demos wiederverwendet und es blinkt auch mit einem einzelnen Atmega.
- Was noch fehlte war das Setzen der Atmega Fuse Bits auf die Werte, die der Atmega auf dem Arduino benutzt. Im wesentlichen ist das die Konfiguration für das Benutzen eines externen Oszillators.
Der nächste Schritt ist der Aufbau des snes2md Adapters auf einem Breadboard.
- Als Controller haben wir den Atmega8 genommen, wie auch in dem SNES2MD Projekt.
- Wir haben uns die Firmware von der Webseite zum Adapter geladen.
Mittels avrdude und tinyUSB geflasht und die entsprechenden Fuse Bits gesetzt.
- Zusätzlich haben wir über Jumpwires den SNES Controller angeschlossen und uns auf einem Oszi das Signalspiel zwischen Atmega und SNES Controller angeschaut. Hat alles wir erwartet funktioniert.
Und hier das Ergebnis:
FIXME: Bildbeschreibung
Nächste Schritte
- SNES Verlängerungskabel zerschneiden und die Kabel auf nen Stecker krimpen
- Schematic aufzeichnen und Schaltplan für einen Lochrasterplatinenaufbau erstellen
- Bauteileliste
- Gehäuselösung ersinnen
- zusammenlöten und ausprobieren
Kabelbelegung
SNES Kabel:
Pin Nr Kabel Farbe Bezeichnung ------------------------------------- 1 grün 5V 2 gelb Clock 3 weiß Latch 4 rot Data 5 nc 6 nc 7 schwarz Ground
*SNES Kabel Kontakte am uC*:
Header Pin Signal name AVR pin name Farbe ----------------------------------------------------------- 5 CLOCK PB5 gelb 4 DATA PB4 rot 3 LATCH PB3 weiß 2 VCC VCC grün 1 GND GND schwarz
-- Atari/commodore wiring -
Header Pin DB9 Pin Signal name AVR pin name Kabel Farbe
--------------------------------------------------------------------
8 1 UP PC5 schwarz
7 2 DN PC4 braun
6 3 LF PC3 rot
5 4 RT PC2 orange
4 6 Fire PC1 grün
3 9 Fire 2 PC0 weiß
2 8 GND GND grau
1 7 VCC VCC blau
5 nc gelb
Unklare Pin Konfigurationen
PB1: muss nach GND um Atari-Mode (is C64 kompatible) zu aktivieren.
PD2: SELECT (input): um die Geschwindingkeit des Dauerfeuers zu ändern. Benutzen wir nicht. Ist mit pull-up konfiguriert und der Pin muss nicht belegt werden.
PD4: einfach von Außen auf VCC gesetzt. hat keine Funtion.
Atmega Programmieren
Das Atmega Model ist Atmega8a.
Ersteinmal den Zustand des Atmegas abfragen:
avrdude -n -p m8 -P usb -c usbtiny -v
Wir brauchen folgende Fusebits: high_byte=0xc9, low_byte=0x9f
Fuses setzen (-B setzt den Bit Clock in mikroseconds):
avrdude -p m8 -P usb -c usbtiny -v -Uhfuse:w:0xc9:m -Ulfuse:w:0x9f:m -B 20.0
Hiernach muss der Atmega mit dem Oszillator zusammen betrieben werden.
Firmware flashen:
avrdude -p m8 -P usb -c usbtiny -v -Uflash:w:snes2md.hex
Schon fertig
Offene Punkte
- Zugentlastung für die Kabel (mittels Kabelbinder)