Hallo Besucher, der Thread wurde 2,8k mal aufgerufen und enthält 8 Antworten

letzter Beitrag von advotax am

SwinSID-Projekt - mit Fragen

  • Nachdem ich in den letzten Wochen versucht habe, meinen "pile of shame" etwas abzubauen, bin ich dabei auch über inzwischen meine fast 20 Jahre alte MIDI-Controller-Projekte gestolpert. Für einen SID-basierten Synth würde ich nun gern statt der eigentlich dafür vorgesehenen Originale lieber SwinSIDs einsetzen. Einerseits aus Kostengründen, denn ich habe zwar einen 8580 (ich denke der stammt aus meinem allerersten C64, der wohl dereinst bei ebay landete:cry:), würde aber gern den Vollausbau angehen, was derer 8 (4x stereo) bedürfte. Andererseits würde ich gern das Layout optimieren, da das am SID und dessen Pinout orientiert ist, bei einem Neuaufbau aber diesbezüglich natürlich Spielraum besteht. Erst recht, da es höchstwahrscheinlich als Einzelstück auf Lochraster hinausläuft und weil ich sowieso eher grobschlächtig veranlagt bin. Deshalb wird auch nichts in SMD gefummelt, sondern es werden vorrangig THT-Teile mit unterarmdicken Leitungen verbunden. :D


    Ich habe jetzt auf die Schnelle einen ATMEGA88PA geflasht, inkl. der externen Widerstände auf Breadboard gepackt, mit 32MHz-Oszillator befeuert und über Jumperkabel in den SID-Sockel in einem C64 (250425) tatsächlich zum klingen gebracht. Zunächst der Sound-Check beim Deadtest, eine Demo und ein weiteres Programmierbeispiel, die auf dem Kungfu gerade "greifbar" waren. Es kam Sound, aber vielleicht nicht immer, wie es sein müsste. Aber hinsichtlich fliegendem Aufbau und Test auf die Schnelle auch nicht überraschend. Das Gleiche nochmal mit einem ATMEGA88A mit gleichen Ergebnissen.


    Nun hätte ich da ein paar Fragen zum SwinSID, dessen Firmware und Hardware. Vielleicht kann mir da jemand ein wenig Erleuchtung verschaffen und vielleicht können wir hier auch ein paar Informationen zusammentragen, die bisher auf mehrere, teils schon ziemlich alte Threads verteilt sind, und eventuelle Ergänzungen vornehmen, die in den letzten 15 Jahren angefallen sind. Zumal auch die FAQ irgendwann (verständlicherweise) nicht mehr aktualisiert wurde.

    1) ATMEGA88PA vs. ATMEGA88A


    Bei der Wahl des ATMEGA habe ich mich an diesem Kommentar von Crisp im Thread micro swinsid atmega88 fuse settings orientiert:

    Für den SwinSID immer den 32MHz und den Atmega 88 PA nehmen denn nur die PA Version kann so weit stabil übertaktet werden ;-)


    Das habe ich damls mit Herrn Swinkels alles ausgetestet.

    Danach wurden offenbar andere Versionen des ATMEGA88 getestet. Nun habe ich die -A Variante (ohne P) ebenfalls zum laufen bekommen. Allerdings ohne weitere Tests. Da ich auch noch ein paar ATMEGA88A (ohne P) habe, würde ich die gern nach Möglichkeit verwenden, aber vorher auch auf Stabilität testen wollen.


    Ich nehme an, dass die Tests in C64s abliefen. Da das bei mir jetzt nicht der Fall sein wird, könnte ich also Probleme, die diese Kombination mit sich bringt, umgehen. Mir fällt da spontan die Spannungsversorgung ein. Mein Testboard hatte z.B. nur 4,7V am SID-Sockel. Bei einem Takt von 32MHz, also fast doppelt so hoch wie das eigentliche Maximum, kann ich mir vorstellen, dass eine Spannungsversorgung von mindestens 5,0V erforderlich ist. Falls erforderlich auch höher, da ich keine Rücksicht auf andere Teile nehmen müsste (wie im C64 den VIC-II).


    Soweit ich das überblicke, sind die -A Versionen (88(P)A und auch 8A, 168A, 168PA, 328A) nur "die shrinks" der Vorgänger (8, 88, 168, 328 - ohne A) und die mit zusätzlichem -P die sog. "picoPower" Varianten, die einen nach unten erweiterten Bereich für die Versorgungsspannung haben. Ansonsten sind die alle Pin-kompatibel und je nach Speicheranforderung auch software-kompatibel. Ich verwende ja auch die DIP-Varianten, nicht die SMD-Teile. Vielleicht gibt es da gar keine so gravierenden Unterschiede.


    Da wär jetzt also interessant, wie die o.g. Tests abliefen bzw. wobei und wie sich Instabilitäten bei den nicht-PA Varianten zeigten. Das würde ich gern nachstellen.




    2) Widerstände


    Im meinem Aufbau zugrunde liegenden Schaltplan des "nano SwinSID b"


    nss_schematic.png

    (http://www.tolaemon.com/nss/)


    erkennt man die zwei Widerstände R1 und R2, die von den den Pins des ATMEGA kommen. Ich nehme mal an, hier wird aus zwei PWM-Signalen das Audio-Signal zusammengesetzt und über die beiden Widerstände gemischt. In älteren Plänen sind da statt des 240k für R2 zwei parallele 512k-Widerstände zu sehen. Ist ja doch ein Unterschied (240k vs. 256k), wenn auch ein relativ kleiner.


    Da würde mich jetzt interessieren, wie die Werte zustande kamen bzw. welche Auswirkungen die Werte haben oder ob es nur auf das Verhältnis R1 zu R2 (und evtl. im Zusammenhang mit R3, R4, R5) ankommt. Ich habe zwar 240k-Widerstände, allerdings nur Kohleschicht. Ich könnte mir aus höherwertigen Widerständen den passenden Wert zusammenbauen. Wenn es aber gar nicht so genau darauf ankommt und nur R2 = ~250 x R1 erfüllt sein muss, spare ich mir da jegliche Experimente. :)


    Wenn mir dann noch jemand erklären könnte, wozu der 4k7 Pullup (R5) dient, wäre ich auch wieder etwas schlauer. Ansonsten ist die Schaltung ohne weitere Geheimnisse.



    3) Firmware


    Ich habe jetzt eine Firmware drauf, die ich bei mir als "letzte offizielle" abgespeichert habe. Die Datei trägt das Datum 27.10.2014. Auf der Seite von Swinkels (http://www.swinkels.tvtom.pl/swinsid/) ist die letzte Version allerdings von 2012.


    Ich weiß, dass es danach noch Bugfixes gab. Einmal den "LazyFix" von CodeKiller, mit dem die Sound-Ausgabe beim Spiel "Lazy Jones" gefixt wurde. Diese Datei hat (bei mir) das Datum 18.10.2014, dürfte dann also die Version aus diesem Post sein und die vom 27.10.14 ist dann wohl die von Swinkels aus diesem Post.


    Dann habe ich hier noch einen No-Ping-Patch vom 14.10.2018, der wohl auf dem "Lazy-Fix" beruht und nur den Einschalt-Ton deaktiviert hat. Ich meine, es gab auch noch einen weiteren, bin mir aber nicht sicher.


    Meine Frage nun: Welche Version soll ich nehmen? :) Es haben ja auch hier im Forum schon einige den Nano gebaut. Welche Version nehmt ihr da? (und warum?)



    4) Ping


    Apropos Ping: Der SwinSID meldet sich normalerweise mit einem Ton, wenn man den C64 einschaltet. Mein Testaufbau mit der 27.10.14-Firmware macht das aber nicht. Ist das bei der Version vielleicht normal?



    Vielen Dank schon mal.


    ---


    If there are interested readers who don't want to use Google Translate, I am willing to at least summarize the whole story in English.

  • Hallo zum test der ATMEGA Version kann ich nur soviel sagen das die direkt vom Entwickler stammen also Swinkels und ich habe mich damal um die Platinen Layouts sowie vergleichs Test zwischen SwinSID und Original SIDs gekümmert. Wenn die 88A funktioniert ist es ja gut zu wissen. Und einen Sourcecode habe ich leider nicht, nur um die Frage vorweg zu klären. Der Kontakt ist auch irgendwann zu der Zeit 2012 eingeschlafen...


    Und bezüglich MIDI Synthesizer Projekt, der SwinSID wurde auch bei www.ucapps.de im dortigem SID Projekt erfolgreich eingesetzt.


    http://ucapps.de/midibox_sid_manual_swinsid.html

  • Und bezüglich MIDI Synthesizer Projekt, der SwinSID wurde auch bei http://www.ucapps.de im dortigem SID Projekt erfolgreich eingesetzt.

    Ja, um den geht es. :) Allerdings sind die dort dokumentierten Tests und Beispiele ja noch mit der 8515+DAC-Version gemacht. Aber es haben danach auch schon viele erfolgreich die 88er Version verbaut.



    ich habe mich damal um die Platinen Layouts sowie vergleichs Test zwischen SwinSID und Original SIDs gekümmert.

    Ah, okay. Aber du hattest dann ausschließlich mit PA getestet? Die A und PA unterscheiden sich preislich jetzt nicht wirklich. Ich hätte kein Problem damit, ausschließlich 88PAs einzusetzen. Hab halt nur ein paar 88A, die "weg" müssen bzw. können. :)


    Sourcecode interessiert mich wenig. Damit könnte ich kaum was sinnvolles anstellen. :D

  • Wenn mir dann noch jemand erklären könnte, wozu der 4k7 Pullup (R5) dient, wäre ich auch wieder etwas schlauer. Ansonsten ist die Schaltung ohne weitere Geheimnisse.

    Wenn J2 offen ist würde ohne R5 der ganze Krans 'in der Luft' hängen.

  • Wenn J2 offen ist würde ohne R5 der ganze Krans 'in der Luft' hängen.

    Also nur ein Sicherheitsfeature?


    J2 ist für die Boards, auf denen ein 1k nach GND nicht verbaut ist. Das sind ja vornehmlich 469er mit 8580:


    sid_crop2.jpg


    wo der 1k nicht drauf sein dürfte.


    Wenn ich den 1k fest verbaue, also ohne Jumper J2, bräuchte es den 4k7 nicht. Sehe ich das richtig?

  • Ich würde das einfach so lassen wie es ist. Ist kein Vorteil J2 wegzulassen (also packtisch immer geschlossen).... wenn du den dann auf ein 'altes' Board draufsteckst hast du nur noch 500 Ohm nach Masse und keine Möglichkeit mehr das zu ändern...

  • Gerd, ich werde da nichts stecken, weil es nicht in einen C64 kommt. :)


    Ein Problem könnte sich aber dadurch ergeben, dass 8 parallele 5,7k nur noch 700 Ohm zwichen +5V und GND sind. Wenn es tatsächlich nur ein Pullup ist, der einen offenen Ausgang am ATMEGA vermeiden soll, falls J2 unabsichtlich offen ist, würde ich bevorzugen, den ganz wegzulassen, da ich ja die 1k fest verbaue.

  • Hier mal eine Visualisierung des wesentlichen Audio-Pfads:


    swinsid_multi_audiopath.png


    Links der gestrichelten Linie der SwinSID-Teil, rechts davon, wie es in einem C64 mit 250469 aussähe, das für einen 8580 bestückt ist.


    Sieht für mich nach einem Spannungsteiler aus, der die Lautstärke schon halbiert. Der 4k7 dann als "Sicherheits"-Pullup, falls der 1k an Masse fehlen sollte und J2 offen wäre, was ja aber in meiner vorgesehenen Konstellation ausgeschlossen ist.


    Da ließen sich doch ein paar Widerstände sparen, oder?


    Den Emitterfolger, der das Signal nochmals abschwächt, würde ich gegebenenfalls mit einer OpAmp-Schaltung ersetzen. Aber mir ginge es jetzt erstmal um die Optimierung der Widerstandsansammlung. :)


    Ich würde den 1k und den 4k7 einfach weglassen, so dass die beiden Widerstände vom Atmega kommend nur am 1k gegen Masse hängen und dann gehts mit dem 10k weiter.