50 Hz-Umbau

Nachdem der C64 nun komplett auf Gleichspannung umgestellt wurde, stellt sich das Problem, wie das fehlende 50 Hz-Signal generiert werden soll. Im Netz gibt es mehrere Anleitungen, wie man mehr oder weniger exakt das Signal generieren kann, z.B. über einen NE555 oder über (mehrere) Teiler. Alle diese Lösungen haben den Nachteil, dass sie aus mehreren Bauteilen bestehen und dadurch etwas unhandlich sind. Deswegen war mein Ziel, die 50 Hz mit einem möglichst kleinen IC zu generieren. Da ich die AVR-Controller wegen ihres "schönen" Maschinencodes immer schon gut fand, habe ich mich für einen Ateml ATtiny13 entschieden. Das ist zwar etwas wie mit Kanonen auf Spatzen zu schießen aber, da dieser Prozessor unter 2 Euro kostet, belanglos. Das folgende Programm initialisiert lediglich die PWM und verweilt dann in einer Endlosschleife.

Bevor dieses ICs eingebaut wird, sollte es programmiert werden. Programmierlösungen für AVR-Controller gibt es viele und teilweise auch sehr günstige. Eine Möglichkeit wäre es, sich ein Evaluationsboard (z.B. ein STK-500) zu beschaffen, da diese einen Programmieradapter beinhalten und von der Atmel AVR-Entwicklungsumgebung "AVR Studio" (kostenlos erhältlich) unterstützt werden.

Es sollte zudem sichergestellt sein, dass die alte Schaltung zur Generierung des 50 Hz-Signals nicht mehr aktiv ist, damit sie nicht mit der neuen Lösung kollidiert und diese ggf. beschädigt. Dazu habe ich den Kontakt Pin 3 von U27 (74LS08) zum Board unterbrochen und R37 (2,7 kOhm) entfernt:

50 Hz-Generators

 

Hier nun die Pinbelegung des ATtiny13:

Pin 1 /RESET
Pin 2 o2: 985248,6 Hz (Eingang)
Pin 3 NC
Pin 4 GND
Pin 5 TOD-CLK: 50 Hz (Ausgang)
Pin 6 NC
Pin 7 NC
Pin 8 5V

Und hier die Konfiguration des Controllers (Die Fuses müssen manuell eingestellt werden!):

Fuse CKSEL 0b00
Fuse CKDIV8 0b0
Fuse BODLEVEL 0b00
Fuse SUT 0b00
Fuse RSTDISBL 0b0
Fuse WDTON 0b1

Und hier die Dateien zum Programmieren:

Sourcecode: 50Hz.asm
Binärcode: 50Hz.hex