[SNES] Multitap selber bauen

  • Hallo, ich mach jetzt einfach mal nen Thread dazu, bevor das alles in der shoutbox untergeht.



    Ich hab mir vor paar Tagen die Teile für den Selbstbau eines Multitaps bestellt - nach meinen Prüfungen, also am 4.2., ist Fertigungsbeginn.



    Theend hatte vorhin die Vermutung, dass man die Schaltung signifikant vereinfachen könnte, auch das wird dann auf jeden fall getestet :evil:


    Hier schonmal die Original-Schaltung aus dem SNES Development Manual, Book II, die ich fürs Erste mal nachbauen will: http://tinypic.com/view.php?pic=9s82sh&s=6#.UtuxmHmCr-k

  • ich kann dir für deine Tests 2 originale Controllerports vom SNES zukommen lassen, falls du die noch brauchst....


    vielleicht kannste das ja so konzipieren, das alles in ein Standard-Gehäuse passt, was man zb. Reichelt kaufen kann :)

  • Ich hab hier noch ein leeres SNES Gehäuse, bin am grübeln ob ich die Controllerports von da in mein funktionierendes SNES mit reinschustern soll.. ist halt dann nur 4 Player...


    Aber du kannst mir gerne die Teile zukommen lassen, dann kann ich ohne größere Eingriffe an meinem SNES schonmal einen Prototypen aufbauen :thumbup:

  • Wie ich herausgefunden habe läuft das so ab.
    Erstmal Pinout-Controller:
    http://www.tacticalcode.de/wp-…06/SNESpad_pin_labels.jpg


    pin 5 = Data 2
    pin 6 = I/O


    So wird das ausgelesen:

    Code
    [4016h].Bit0=1                             	;-Latch high (to player 1-5)
      [4016h].Bit0=0                             	;-Latch low (to player 1-5)
      read any number of bits from [4016h].Bit0  	;-Controller Player 1 wird gelesen
      read any number of bits from [4017h].Bit0/Bit1 ;-Controller Player 2/3 wird gelesen
      [4201h].Bit7=0                             	;-Controller Player 4/5 wird ausgewählt
      read any number of bits from [4017h].Bit0/Bit1 ;-Controller Player 4/5 wird gelesen
      [4201h].Bit7=1  ;(prepare here for next frame) ;-Controller Player 2/3 wird ausgewählt


    4016h ist Port 1 der Console
    4017h ist Port 2 der Console
    Bit0 = Pin 4 des jeweiligen Ports = Data
    Bit1 = Pin 5 des jeweiligen Ports = Data 2
    Bit7 = Pin 6 des 2th Ports (bedeutet, das ein Multitap nicht an Port 1 angeschlossen werden kann.)



    Das bedeutet nun:
    Port 1 bleibt bei der Schaltung ja unberührt. Das Multiplayer-5 kann also nur an Port 2 betrieben werden.
    Ist nun Pin 6 des Controllerportes auf high gesetzt, müssen die Datenleitungen des Controllers 2 und 3 an Data 1 und 2 anliegen.
    Ist Pin 6 auf low, müssen die Controller 4 und 5 present sein.


    Meiner meinung nach, müsste das ganze nun so funktionieren, das man Latch der 4 Controller miteinander verbinden kann, wie VCC und GND auch.
    Dann 2 NPN und 2 PNP Transistoren, die jeweils entweder per VCC oder GND geschalten werden, somit also pin 6 an die Basis angeschlossen wird. Die einen Transistoren sollte ja dann nur bei Pin 6 = 0 und die anderen bei Pin 6 = 1 schalten, oder? Diese Transistoren legen also dann Data 1 und 2 an die jeweiligen pins. Sowie Clock an die Controllerpaare.
    Nur theoretsisch. Nicht getestet. Sicherlich bissl dirty. Dioden wären auch nicht schlecht.

  • Das könnte funktionieren, sofern das ganze schnell genug ist... wobei ich mit bipolartransistoren nicht so fit bin. kannst du mal aufmalen, wie du dir die verschaltung der transistoren vorstellst? Muss mich dann mal da reindenken sobald der ganze FDTD/FEM Mist aus meinem Schädel gelöscht wurde.



    Trotzdem wollte ich nicht lernen - also schonmal hier ein Beispiel, wie es aussehen könnte, wenn man den Originalschaltplan 1:1 umsetzt, inkl 2P-5P Umschalter, LEDs und dem ganzen Krampf - das teuerste ist dann die Platine mit ca 4€ und der 4fach-Schiebeschalter für 3€... die ICs kosten zusammen keine 2€.. also mit ca 10€ könnte man hinkommen... angenommen man bestellt 30 Platinen, bei weniger wirds dementsprechend bisschen teurer...


    sneak peek dirty Multitap nach Originalschaltung, hab nur mal eben geschaut, obs der autorouter hinbekommen würde:


  • Das könnte mit den Dioden funktionieren, sofern die momentan "unbenutzten" Controller ohne Takt ihren Pegel immer schön brav auf low haben. (die zwei Dioden auf einen gemeinsamen Ausgang stellen im Prinzip eine OR-Verknüpfung dar).


    Das mit dem Takt umschalten über zwei Bipolartransistoren funktioniert auf jeden Fall nicht so. Du brauchst auf jeden Fall mehr Bauteile - im Endeffekt musst du zwei Buffer aufbauen, einen mit High-Active Enable und einen mit Low-Active-Enable. Das gäbs dann wohl auch einfacher als fertigen Baustein - und dann muss die Lösung mit den Dioden immer noch funktionieren..


    EDIT: hab gerade nochmal drüber nachgedacht, das mit der Taktumschaltung kann glaub ich mit 2 Bipolar-Transistoren und 4 Widerständen oder 2 FETs und 2 Widerständen gehen. ich denk das gerade nochmal durch


    EDIT2:
    Irgendwo ist noch der Wurm drin. hab zum Test zwei AC-Quellen um das PP-Signal mit 1Hz (quelle links unten) und das Clock Signal mit 10Hz(rechts drüber) zu simulieren.
    der eine Taktausgang bleibt leider im High-Zustand wenn er nichts tut - das ist wahrscheinlich eher suboptimal.. Die 1pF Kondensatoren sind ne Ersatzschaltung für den Controllereingang




  • Das könnte mit den Dioden funktionieren, sofern die momentan "unbenutzten" Controller ohne Takt ihren Pegel immer schön brav auf low haben. (die zwei Dioden auf einen gemeinsamen Ausgang stellen im Prinzip eine OR-Verknüpfung dar).


    Stimmt das habe ich mir dann auch gedacht. Aber dann könnte man einfach nur noch pro Controller einen Transistor verwenden. Ich meine 6 Transistoren kosten ja nicht viel :D


    Und per einem einfachen umschalter wäre ein 2p/5p switch möglich :D Doch ich finde, wenn man zu 2th spielen möchte, könnte man auch einfach das Multitap ausstecken. Somit wäre z.B. deine Lösung auch günstiger.

  • Naja man kann ja den 3€ schalter auch weglassen und hartverlöten in 5P-Stellung... genauso die leuchtdioden.... und bei preisen im zweistelligen centbereich ist es mir jetzt auch wurscht, ob ich da nen kompletten IC reinknall oder eben nur ne handvoll transistoren + dioden...


    auf jeden Fall funktioniert die Originalschaltung garantiert besser auch mit langen kabeln, weil in alle Richtungen Treiberbausteine eingesetzt sind...




    EDIT: Mir fällt auch gerade auf, dass deine Diodenlösung nicht geht - in der Richtung kann keiner der SNES-Controller die Datenleitung auf Low-Pegel ziehen. d.h. wenn das eingangsgate am SNES einmal high ist, kommt es da auch nicht mehr runter...Bräuchte man also auch wieder einen Pulldown-Widerstand... irgendwann bewegen wir uns dann halt Aufwandsmäßig im Bereich der Lösung mit den 3 IC's.. Wenn man schon ein PCB macht, ist es meiner Meinung nach doch am besten, gleich die ICs zu nehmen..

  • Klar ist es eine "dirty" lösung und im kommerziellen bereich nicht zulässig, aber funktionieren tut sie sicherlich auch.
    Und auch ist uns allen klar, das eine von Nintendo entwickelte Lösung für ihre eigene Konsole am besten ist.

  • Was eventuell noch ein problem werden wird, ist ein komplett belegten Controller-Stecker zu bekommen.
    Die normalen Controller-Stecker haben ja Data2 und PP nicht.

  • So, jetzt wirds Zeit für nen Probelauf aufm Breadboard - das PCB ist nämlich quasi schon fertig (was man nicht alles tut, um sich von der Lernerei abzulenken ;))


    Würde ca 11€ kosten so pro Stück (Platine und alle Bauteile), man braucht dazu halt noch 4 controllerbuchsen und 1 stecker - 4 verlängerungskabel bei ebay kosten z.b. 10€ inkl versand.


  • Das hatte ich vor - muss dann mal erörtern wie groß die Nachfrage ist.
    Zuerst werd ich die Schaltung mal zusammenlöten um herauszufinden, ob es denn überhaupt funktioniert so.
    Ich halt euch auf dem laufenden ;)

  • So, jetzt wirds Zeit für nen Probelauf aufm Breadboard - das PCB ist nämlich quasi schon fertig (was man nicht alles tut, um sich von der Lernerei abzulenken ;))


    Würde ca 11€ kosten so pro Stück (Platine und alle Bauteile), man braucht dazu halt noch 4 controllerbuchsen und 1 stecker - 4 verlängerungskabel bei ebay kosten z.b. 10€ inkl versand.



    Hast du den Auto-Router von EAGLE genommen? Manche VIAs sehen verdammt dicht zu den Pads aus und manche Leitungen haben 90Grad Knicke - das geht zwar, ist aber ungünstig, weil dadurch die Fehlerrate bei der Produktion steigt... Ich persönlich route lieber per Hand - macht eh mehr Spaß ;)

  • Yupp, das ist der autorouter. Ich Route auch gerne von Hand, aber solange ich nicht weiß, dass alles passt, mach ich mir die Arbeit nicht. Das mitden kleinen abständen zu den Vias ist mir bewusst, dass würde ich auch nie so fertigen lassen. Interessanterweise hab ich bei dem Versuch da oben tatsächlich die minimalen abstände schon erhöht (hab die Standard spec von pcbpool genommen).
    Sobald es auf meinem versuchsaufbau läuft so, mach ich das nochmal ordentlich ;)

  • Kurzes Update:
    Der Aufbau aufm Steckbrett steht, ich muss nur doch die Controllerports an ein paar Käbelchen löten und dann kann ich's testen.
    Leider is nur bei uns im Formula Student Team ziemlich viel zu tun mit unserem neuen Kabelbaum, deshalb komm ich nur sehr sporadisch dazu was zu machen in Richtung multitap.. :(