Hintergrund

Harald (Harry) Helpert, DJ9HH (sk?) vertrieb vor einiger Zeit über die Firma seiner XYL verschiedene Bausätze. U. a. gab es dort einen Synthesizer-Bausatz 088, mit dem man bspw. seinen Wettersatelliten-Empfängerbausatz ergänzen konnte, um so in den Genuss einfach konfigurierbarer Frequenzen dank PLL zu gelangen.

Der Webshop der Fa. Helpert ist mittlerweile verschwunden, man findet die damaligen Inhalte aber noch im Internet-Archiv.

Wollte man seinen Empfänger auf anderen Frequenzen laufen lassen, so musste man jedoch bei der Fa. Helpert einen neuen PIC Microcontroller bestellen. OM Manfred, DL2DQB (sk) hatte einen Wettersatelliten-Empfänger mit diesem Synthesizer. Im Jahr 2007 benötigte er eine andere Konstellation der Empfangsfrequenzen, da einer der NOAA-Satelliten seine Sendefrequenz geändert hatte, andere Satelliten durch neue auf anderen Frequenzen ersetzt worden waren. Die versprochenen PICs waren offenbar nun nicht mehr bei Fa. Helpert erhältlich (im Internet-Archiv findet sich der Kit 088 letztmalig im Jahr 2003), sodass ich ihm zusagte, mich um einen Ersatz für ihn zu kümmern. Die Programmierung von Controllern war mittlerweile mein Beruf geworden, und die Ansteuerung des benutzten PLL-ICs MB1504 von Fujitsu durch den PIC 12F508 bereitet keine großen Schwierigkeiten.

Um ggf. anderen OMs mit dem gleichen Problem helfen zu können, veröffentliche ich hier meine damalige Firmware. Der originale PIC war auslesegeschützt, sodass ich eine komplette Neuentwicklung der Firmware vornehmen musste. Die hier wiedergegebene Firmware ist daher mein geistiges Eigentum.

Beschreibung

Die Verdrahtung zwischen PIC 12F508 ist wie folgt:

Pin Name Funktion
1 Vdd +5 V
2 GP5 MB1504 pin 9, Clock
3 GP4 MB1504 pin 10, Data
4 GP3(*) Port C (BCD-Schalter)
5 GP2 MB1504 pin 11, LE
6 GP1 Port B (BCD-Schalter)
7 GP0 Port A (BCD-Schalter)
8 Vss Masse

(*)Pin GP3 ist normalerweise der externe Reset des PIC, aber diese Funktion wird hier nicht benutzt.

Nach einem Reset liest die Firmware die Schalterstellung an den als A, B und C bezeichneten Ports (üblicherweise auf einen BCD-Schalter gelegt) ein. Es wird anfänglich 10 ms gewartet um sicherzustellen, dass die Eingangspin-Konstellation stabil ist. Danach wird das Setup-Wort an den MB1504 gesandt, mit dem der Referenztaktteiler und Prescaler eingestellt werden (Referenztakt 2,5 kHz, Prescaler 32). Danach werden die 8 möglichen Muster der Eingangspins über acht Instanzen des Makros setfreq abgefragt. Neben den drei Parametern für die Pins A, B und C übernimmt dieser Makro drei Parameter für die Frequenzteile im MHz, kHz und Hz. Passt die Bitkombination nicht, wird zum Ende des Makros gesprungen, sodass die nächste Bitkombination ausgegeben wird. Passt die Kombination, dann wird eine (im Assembler vorberechnete) Bitkombination für die PLL-Steuerregister ausgegeben. Am Ende wird der PIC so umkonfiguriert, dass er bei einer Statusänderung an seinen Eingangspins aufgeweckt wird, und er legt sich schlafen. Beim Aufwachen durchläuft dieser PIC die komplette Reset-Sequenz erneut.

Soll das Programm auf andere Frequenzen geändert werden, so ist diese Tabelle entsprechend zu modifizieren:

;; A,B,C, MHz,kHz,Hz
;; LO
setfreq 0,0,0, 126,800,000
setfreq 1,0,0, 126,920,000
setfreq 0,1,0, 126,400,000
setfreq 1,1,0, 127,000,000
setfreq 0,0,1, 127,212,5005
setfreq 1,0,1, 127,100,000
setfreq 0,1,1, 127,150,000
setfreq 1,1,1, 127,200,000

Jörg Wunsch $Date: 2015-11-21 23:23:25 +0100 (Sat, 21 Nov 2015) $