"CALFINDER" Si5351-Kalibrierwerte
schnell ermittelt
Version vom 21. November 2022
Abb.1 Beispiel für Displayanzeige nach durch Abstimmung
mit dem Drehgeber erreichter Übereinstimmung zwischen Soll- und Istfrequenz
Zum Aufbau aller Arten von HF-Generatoren im Frequenzbereich von wenigen
Kilohertz bis oberhalb von 200 MHz erfreuen sich die Bausteine des Typs
Si5351 grosser Beliebtheit. Auch von mir wurden sie schon für vielerlei
Projekte verbaut. Inzwischen fast ausschliesslich aus fernöstlicher
Produktion erhältlich, kann es dabei auch geschehen, dass Fake-Exemplare
geliefert werden, die dann nur noch für die Mülltonne taugen.
Nachdem das allerdings bei Bestellungen kaum vorherbestimmbar ist, muss
man jeweils auch ein wenig Glück haben und sollte zumindest im Hinterkopf
behalten, wo die Ursachen für ein evtl. späteres Nicht-Funktionieren
liegen könnten.
Die beim Aufbau von Generatoren erzielbaren Frequenzgenauigkeiten werden
im Wesentlichen durch die verbauten Taktgeneratoren bestimmt. Nachdem hier
aber üblicherweise nur Standardquarze verwendet werden, ergeben sich
für die Ausgangssignale nahezu immer auch Abweichungen von gewünschten
Sollfrequenzen, was in vielen Fällen nicht tolerierbar ist. Dabei
macht sich dieser Effekt mit ansteigender Ausgangsfrequenz verstärkt
bemerkbar. Im oberen VHF-Bereich können diese Abweichungen durchaus
auch schon einmal in der Größenordnung von 50 KHz und darüber
liegen.
Abhilfe können Korrekturwerte bringen, die dazu an geeigneter Stelle
in den zur Steuerung benutzten Quellcode einzufügen sind. Oftmals
erfolgt die Steuerung der Si5351 mithilfe von ARDUINO-Software unter Verwendung
einer von Jason Milldrum, NT7S stammenden Bibliothek. Die Korrekturwerte
lassen sich hierbei bestimmten Si5351-Steuerbefehlen des verwendeten Quellcodes
hinzufügen. Üblicherweise erfolgt das über eine als "cal"
bezeichnete numerische Variable. Vorher müssen die entprechenden Werte
allerdings für jeden einzelnen zu verwendenden Baustein erst noch einmalig
ermittelt werden.
Wie ist hierbei vorzugehen?
Bei den ersten von mir mit den Si5351 realisierten
Projekten hatte ich versucht, mich einer gewünschten Sollfrequenz
möglichst weit zu nähern, indem ich nacheinander unterschiedliche
Cal-Werte ausprobierte. Zur Kontrolle und Vergleich mit den dabei generierten
Istfrequenzen erforderte das aber jeweils Änderungen im Programmcode,
sowie erneutes Hochladen in den Arduino-Prozessor. Diese Prozedur war umständlich,
zeitraubend und brachte letztendlich auch wenig genaue Ergebnisse. Nachdem
man das Rad aber nicht unbedingt immer neu erfinden muss, suchte ich auch
im Internet nach Softwaretools, die mir bei der Bestimmung von Kalibrierwerten
würden helfen können und wurde dabei sogar fündig (#1). Via
PC-Tastatur und Verwendung des Monitor-Modes der Arduino-IDE liessen sich
hierbei unterschiedliche Cal-Werte in den Mikroprozessor und danach in Richtung
des angeschlossenen Si5351 übertragen. Die Auswirkung auf die Frequenzen
der erzeugten Ausgangssignale konnten danach direkt verfolgt werden. Die
etwas krytische Eingabeprozedur per PC-Tastatur erwies sich allerdings als
wenig komfortabel, sodass ich weiter nach einer mir geeigneter scheinenden
Lösung suchte. Da kam ein vor längerer Zeit schon einmal realisiertes
VFO-Projekt mit dem Si5351 in Erinnerung, bei dem die Frequenzabstimmung
durch Incrementgeber und OLED-Display erfolgt war (#2). Warum sollte dieses
oder ein ähnliches Programm nicht auch zum Aufruf unterschiedlicher
Kalibrierwerte und Ausgabe der sich danach einstellenden aktuellen Istfrequenzen
modifizierbar sein? Nachdem im Internet eine für diese Aufgabe gut geeignete
VFO-Version (#3) gefunden wurde, entstand daraus der "CALFINDER". Dabei
handelt es sich um ein einfaches ARDUINO-Tool (#4) zur Ermittlung der Cal-Werte
eines bestimmten Si5351-Bausteins, was auf unkompliziere Weise in kürzester
Zeit erfolgen kann. Gefundene Endwerte lassen sich danach mit beliebigen
Generatorprogrammen nutzen.
Beispiel für mögliche Hardwareanordnung
Abb.2 Hardwarwanordnung zur Ermittlung der Kalibrierwerte
Praktische Nutzung
Die Ermittlung der Cal-Werte kann auf einer vom Anwender frei wählbaren
Frequenz erfolgen, wobei diese natürlich innerhalb des Bereiches liegen
muss, der vom Si5351 abgedeckt wird. Im Programmcode ist sie dazu als Wert
mit der Einheit Hertz abzulegen. Da, wie schon oben beschrieben, sich die
durch Frequenzungenauigkeiten der Steuerquarze bedingten Frequenzabweichungen
mit zunehmender Frequenz vergrößern, empfielt es sich allerdings,
Cal-Werte möglichst im oberen Teil des verfügbaren Betriebsbereiches
zu ermitteln. Obwohl hier maximal 225 MHz erlaubt sind, wählte ich
mit 144.500 MHz z.B. eine Frequenz im 2m-Amateurband. Letzendlich wird diese
Wahl aber auch durch die Messeinrichtung bestimmt, die zur Kontrolle der
jeweils generierten Istfrequenzen verfügbar ist. Wenn nicht anders möglich,
können Messungen aber mit ggf. etwas geringerer Genauigkeit auch auf
deutlich niedrigeren, als der oben genannen Frequenz erfolgen. In den meisten
Fällen dürfte an dieser Stelle ein ( je nach Ansprüchen möglichst
hochwertiger ) Frequenzzähler zum Einsatz kommen und seine Eingangssignale
dabei vom Ausgang "CLK0" des Si5351-Bausteins erhalten ( siehe dazu auch
Abb.1 und Abb.2 ).
Nach dem Einschalten des "Calfinders" gilt es nur noch, mithife seines
Drehgebers die Anzeige der mit dem Zähler gemessenen Istfrequenz solange
zu verändern, bis eine möglichst weitgehende Übereinstimmung
mit der im Programmcode abgelegten Sollfrequenz vorliegt ( Abb.3 ). Während
eines solchen Abstimmvorganges werden die aktuellen Cal-Werte laufend auf
dem Display des Calfinders angezeigt. Weiterhin angezeigt und durch Niederdrücken
des mit dem Drehgeber verbundenen Tasters veränderbar sind die jeweiligen
Abstimmschritte. Ein nach erreichter Frequenzübereinstimmung angezeigter
Cal-Endwert ( gem. Abb.1 ) ist anschliessend zu jeglicher weiteren Verwendung
in Programmcodes nutzbar, die in Verbindung mit dem gemessenen Si5351-Exemplar
verwendet werden sollen.
Abb.3 Beispiel für Anzeigen nach Programmstart
( Frequenzablage von der im Programmcode abgelegten Sollfrequenz liegt
hier bei 2,8 KHz )
Steht zur Frequenzmessung kein geeigneter Zähler zur Verfügung,
so kann man sich oftmals auch durch Nutzung z.b. preiswert erhältlicher
WEBSDR-Sticks am PC behelfen. Dabei sollte man in jedem Fall nur Versionen
mit integriertem TCXO verwenden. Bei nicht allzu hohen Ansprüchen
hinsichtlich Frequenzgenauigkeit sollten die dabei erzielbaren Messergebnisse
in vielen Fällen völlig ausreichend sein. Eine Signalverbindung
zwischen Si5351-Ausgang und Stick-Antenneneingang kann dabei oftmals auch
ohne jegliche Antennen "over the air" erfolgen.
(#2) http://www.kh-gps.de/uni_vfo.htm
(#3) Https://www.hackster.io/CesarSound/10khz-to-120mhz-vfo-rf-generator-with-si5351-and-arduino-3a7cad
(#4) http://www.kh-gps.de/calfinder.zip