Kürzlich "stolperte" ich im Internet über ein von JF3HZB
aus Japan stammendes ESP32-Projekt, bei dem es sich um einen universell
verwendbaren Digital-VFO handelte, dessen Besonderheit darin bestand, dass
ein TFT-Display benutzt wurde, um darauf eine quasi analoge Frequenzanzeige
zu simulieren. Interessante Anwendungen schienen mir damit u.a. Mischoszillatoren
in Verbindung mit allen Arten von Sendern, Superhetempfängern oder
auch Messgeneratoren zu sein. Hinsichtlich ihrer Nutzung kann man dabei
besonders auch an Fälle denken, bei denen derzeit noch mechanische Abstimmeinheiten
Verwendung finden. Die Frequenzerzeugung als solche erfolgt bei diesem Projekt
mit Hilfe eines PLL-Bausteins Si5351a und ermöglicht die Abdeckung eines
weiten Frequenzbereiches von wenigen Kilohertz bis weit über 160 MHz.
Die VFO-Originalsoftware von JF3HZB ist zur Nutzung mit einem Amateurband-Superhetempfänger
mit einer ZF von 9 MHz gedacht. Dabei kommen alle drei verfügbaren
Signalausgänge des Si5351a zum Einsatz. Über den Ausgang CLK2
werden dabei jeweils 8998,5 Khz oberhalb der auf dem Display angezeigten
Frequenz liegende Oszillatormischsignale ausgegeben. Weiterhin werden die
Ausgänge CLK1 und CLK0 benutzt, um hierüber zwei untereinander
in der Phase verschobene und für BFO-Nutzung gedachte fixe Mischsignale
mit ebenfalls 8998,5 KHz bereitzustellen.
Obwohl ich bereits die Originalversion mit ihrer simulierten analogen
Skalenanzeige optisch als sehr reizvoll empfand, vermisste ich dennoch
einige zusätzliche Funktionen. Daher begann ich mich etwas näher
mit dem vom Verfasser dankenswerterweise bereitgestellten Programmcode
[1[ zu beschäftigen und ihn entsprechend meiner Vorstellungen zu ändern,
bzw. zu erweitern. Via CLK2 sollten dabei erst einmal auch nur die auf
dem Display angezeigten Frequenzen ausgegeben werden, wofür der Wert
"offset_frq" auf Null zu setzen war. Ebenso war mit dem Wert "car_frq" zu
verfahren, was eine Sperre der zumindest vorerst nicht benötigten BFO-Signale
an den Ausgängen CLK0 und CLK1 bewirkte.
Softwaremäßig hinzugefügt wurde dagegen eine Auswahlmöglichkeit
für die bei Abstimmung mit einem Drehimpulsgeber* benutzten unterschiedlichen
Frequenzschritte. Verfügbar sind danach 6 Schrittweiten beginnend
von minimal 10 Hz bis maximal 1 MHz. Ihre Anwahl erfolgt über die
Tasten "T1" ( -Step ) und "T2" ( +Step ). Bei Inbetriebnahme wird
hierbei immer eine mittlere Schrittweite von 1 KHz vorgewählt.
* In der Originalversion kommen an dieser Stelle ( wesentlich teurere
) optoelektronische Versionen zum Einsatz. Im Gegensatz zu ihnen, kann
es bei Verwendung der hier stattdessen benutzten Standard-Drehimpulsgeber
u.U. zu kleinen Abweichungen bei den einzelnen Abstimmschritten kommen.
mögliche Abstimmschritte ( STEPS
): 10 Hz; 100Hz; 1 KHz; 10 KHz; 100 KHz; 1 MHz |
Weiterhin hinzugekommen ist eine schnelle Anwahlmöglichkeit für
9 Memorykanäle. Entsprechend der Wünsche des Nutzers lassen
sich hierzu beliebige Frequenzen fest im Programmcode abgelegen. Ihre Anwahl
erfolgt über die Taste "T3". Dazu kommt eine zehnte, zum Aufruf
der jeweiligen VFO-Startfrequenz reservierte Einstellung.
Abb.4 VFO-Gesamtschaltbild
NEU hinzugekommen ( und im Schaltbild Abb.4 noch nicht
verzeichnet ) ist eine einfache Möglichkeit zur Richtungsumkehrung
beim Drehimpulsgeber. Zur Umkehrung ist der Porteingang "19" mit Masse
zu verbinden, wobei diese Funktion allerdings erst nach einem Neustart
des Programmes wirksam wird.
NEU ist ebenfalls, dass sich dieser VFO jetzt zudem verwenden
lässt, um mit ihm einen einfachen LW/KW-Direktmischempfänger
aufbauen zu können [7]. Lückenlos deckt dieser dabei die Bereiche
135-550 KHz und 3.4-14.5 MHz ab und beruht dabei weitgehend wieder auf
den schon in [5] und [6] beschriebenen Empfängerkonzepten. Die hierfür
benutzte Empfängerplatine besitzt identische Abmessungen zur VFO-Version
und ist mit dieser somit sehr einfach zu einer funktionalen Einheit zusammenfügbar.
In diesem Zusammenhang neu hinzugekommen ( aber im Schaltbild Abb.4 noch
nicht eigezeichnet ) ist die Nutzung des Ports "4" als Steuerausgang zur
Umschaltung zwischen beiden möglichen Empfangsbereichen.
4 weitere Ports des ESP32 ( "12, 13, 14 und 33" ) sind für eventuelle
spätere Erweiterungen vorgesehen und derzeit unbenutzt.
Die Frequenzgenauigkeit des VFO's wird im Wesentlichen durch den zum
Si5351a-Baustein gehörenden (25MHz-) Steuerquarz bestimmt.
Bei ihm handelt es sich um eine Standardversion, deren begrenzte Genauigkeit
sich dabei auch abhängig von der erzeugten Frequenz negativ bemerkbar
macht. Eine Korrektur kann durch Änderung des im Library-Unterprogramm
"Si5351.cpp" zu findenden Wertes für "#define fxtal" erreicht werden.
Dazu ist dieser vorher allerdings noch entsprechend der tatsächlichen
Quarzfrequenz des verwendeten Einzelexemplars anzupassen. Hierfür
ist der im Ursprungscode zu findende Wert von "25000000" gegen einen neu
zu ermittelnden zu ersetzen. Dafür muss aber zuerst einmal die durch
die Ungenauigkeit des Quarzes bewirkte Differenz zwischen der am Display
angezeigten und der tatsächlich generierten VFO-Frequenz ermittelt werden.
Vorzugsweise und auf einfachste Weise kann das mit einem möglichst
genauen Frequenzzähler geschehen. Wenn nicht verfügbar, kann
behelfsmäßig auch ein Empfänger ( nicht FM ) benutzt werden.
mit dem ein in seiner Frequenz bekannter Sender ( z.B. eine Bake im 2m-Band
) empfangen und dabei ein Schwebungsnull mit dem Signal unseres VFO's erzeugt
wird. Danach ist die so festgestellte Differenz zwischen bekannter Sender-
und angezeigter VFO-Frequenz festzuhalten. Durch schrittweise Änderung
des in "define fxtal" einzutragenden Wertes, lässt sich dann die Abweichung
zwischen Soll- und Istfrequenz des VFO sukzessive minimieren.
TIPP: Nachdem sich die durch die Ungenauigkeit des si5351-Steuerquarzes
bedingten Frequenzfehler umso stärker bemerkbar machen, je höher
die vom VFO generierte Frequenz ist, ist es ratsam, die Ermittlung
des Ablagefehlers bei einer möglichst hohen eingestellten VFO-Frequenz
durchzuführen. Daher bin ich dazu übergegangen, hierfür
eine solche um 145 MHz zu wählen.
Zur Vereinfachung des VFO-Nachbaus wurde ein Platinenlayout entworfen.
Nachdem besonders der Einbau der ESP32-Bausteine dabei allerdings nicht
optimal gelöst war, entstand mit Unterstützung von Dirk Ruffing,
DH4YM inzwischen eine neue, bei ihm auch erhältliche [2]
durchkontaktierte Version mit der Bezeichnung: "DJ7OO_VFO_1d.lay6"
( siehe dazu auch die Bilder 5 und 6 auf dieser Seite ).
Näheres zu den sonstigen verwendeten Bauteilen incl. Hinweisen
auf mögliche Bezugsquellen liefert die folgende Tabelle:
Stückzahl |
Bauteilbezeichnung |
mögliche
Bezugsquellen |
1 |
ESP32-Prozessorboard
Node MCU ( gem. Abbildung ) |
div. ( China-
) Anbieter, AZ-Delivery |
1 |
1.8"-TFT-Display
( gem. Abbbildung ) |
div. ( China-
) Anbieter, AZ-Delivery |
1 |
Drehimpulsgeber
z.B. STEC12E08 ( ALPS ) |
Reichelt |
1 |
Si5351-Board
( gem. Abbildung ) |
div. ( China-
) Anbieter |
3 |
Kurzhubtaster
z.B. 3301B ( JTP-1130 ) |
Reichelt |
3 |
Widerstand
1/4W 2x 2200 Ohm ; 1x68 Ohm |
div. |
Tabelle 1
Aufgrund der Durchkontaktierung sind alle vormals erforderlich gewesenen
Drahtbrücken inzwischen entfallen. Bei der Platinenbestückung
ist aber zu berücksichtigen, dass der Widerstand R1 teilweise vom
TFT-Display abgedeckt wird. Somit ist er zumindest bei Festeinlötung
des Displays vorher noch zu bestücken.
TIPP: Wer ESP32-Board und/oder TFT-Display steckbar einbauen
möchte, dem sei die Verwendung der schmalen 20pol. Steckleisten gem.
Abb. empfohlenen, wobei diese je nach Anwendung noch entsprechend zu kürzen
sind. Bei Fa. REICHELT sind sie unter der Bezeichnung: "BL 1X20G 2,54"
erhältlich.
schmale 20pol. Steckleiste
Die aktuelle Softwareversion kann unter [4] heruntergeladen
werden.
Abb.6 Layout der Unterseite "DJ7OO_VFO_V1d.lay6" ( erstellt
mit Sprint-Layout 6.0 )
Anm: Bestückung des ESP32-Bausteins erfolgt auf dieser Seite