Hallo,
ich wollte es schon seit Jahren bauen, und jetzt habe ich's endlich gemacht: Ein Replacement für den Commodore-Taktgenerator CSG8701. Dabei habe ich die Schaltung aus dem ur-C64 zugrunde gelegt, also bewusst *nicht* die dreckige Erzeugung per Laufzeiten gewählt. So macht es nämlich der 8701, wenn man dem Datenblatt glauben kann.
Meine Schaltung ersetzt dabei nicht nur den Chip, sondern auch den Quarz und den Oszillator. Will sagen: Wenn meine Schaltung im Computer sitzt, ist der Quarz auf dem Board funktionslos. Auf die Weise ist das Teil nicht nur gut für Reparaturzwecke (da würde er kaum gebraucht, denn der 8701 geht sehr selten kaputt), sondern auch für Umrüstungen von PAL nach NTSC und umgekehrt. Ein solches TV-standard modding geht dann ganz ohne Löten: VIC tauschen, 8701 ersetzen, fertig. Die zwei Chips sind in allen Computern gesockelt, die ich bisher gesehen habe.
Und so funktioniert's:
1.) Der Oszillator schwingt bei 17,7344MHz (PAL), dieser Takt wird durch 9 geteilt, so dass knapp 2MHz herauskommen. Die 17MHz werden direkt in den C64 gefüttert, die 2MHz werden in einen von zwei Inputs des Phasenkomparators gefüttert.
2.) ein VCO schwingt auf einer einstellbaren Frequenz zwischen 7,5MHz und 8,5MHz. Diese Frequenz wird durch 4 geteilt, so dass ca. 2MHz herauskommen. Der VCO-Ausgang wird dem C64 als Pixelclock gefüttert, und der ca-2MHz-Ausgang wird in den zweiten Eingang des Phasenkomparators gefüttert.
3.) der Phasenkomparator stellt die VCO-Geschwindigkeit so ein, dass die zwei 2MHz-Signale exakt überein stimmen. So stellt sich die VCO-Frequenz exakt bei 7,882MHz ein (genauer: 17,7344 /9*4 MHz = 7,881955556MHz). Der VIC generiert daraus den CPU-Takt, indem er durch 8 teilt - hier kommen die 0,985244444MHz heraus, die wir alle als "Taktfrequenz des C64" kennen (naja, die Meisten runden auf ca. 1MHz).
Die Schaltung hat eine Bestückungsoption auf NTSC. Dabei wird der erste Teiler von 9 auf 7 verändert, es wird ein 14,31818MHz Quarz bestückt und der Rest bleibt gleich. In dem Fall beträgt der VCO-Takt (und damit der Pixeltakt) genau 14,31818/7*4MHz=8,181817143MHz. Der CPU-Takt beträgt dann genau 1,022727143MHz.
Die Schaltung geht morgen schon in Serienproduktion. Ich habe die kleine Platine in der Lücke einer anderen, großen Produktion untergebracht, die ebenfalls morgen beginnt. In wenigen Wochen gibt's dann das Produkt bei den einschlägigen Händlern wie Retro-Donald und Vesalia.
Jens