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), 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.
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"
(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.