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.
Unter der Bezeichnung "DJ7OO_VFO_1c.lay6" sind die entsprechenden Platinen
( siehe dazu auch die Bilder auf diese Seite ) bei Dirk Ruffing, DH4YM [2]
erhältlich. 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
* Die ESP32-Prozessorbausteine sind von der Platinenunterseite
aufzulöten. In Hinblick auf einfachere Montierbarkeit kann es
dabei hilfreich sein, die z.B. von genannter Firma [3] verfügbaren Versionen
OHNE bereits eingelötete Steckerleisten zu verwenden.
Bei der Platinenbestückung ist weiterhin zu berücksichtigen,
dass einige der benötigten Drahtbrücken durch später darüber
liegende Bauteile abgedeckt werden, so dass mit ihrer Installation zu beginnen
ist. Dabei ist auch auf das Entstehen möglicher Kurzschlüsse zu
achten.
Die aktuelle Softwareversion kann unter [4] heruntergeladen werden.
Abb.5 Layout "DJ7OO_VFO_V1c.lay6" ( erstellt mit Sprint-Layout 6.0 )
Anm.: Abmessungen des TFT-Displays als blauer Rahmen angedeutet