UNIVERSELE VFO-BFO MODULE MET SI5351
(2020)

CLICK HERE FOR THE ENGLISH VERSION


De universele VFO-BFO module. Hier verbonden met een directe conversie ontvanger.
Voor deze simpele ontvanger wordt alleen de VFO uitgang gebruikt.

Universele VFO-BFO module
Zo'n SI5351 generator module die je kunt bestellen via internet, daar moet ik toch wat mee kunnen! Deze kan 3 generator signalen leveren, dus kan ik er een VFO en een BFO mee vervangen! En aansturen met de bekende Arduino Nano! Een universele VFO-BFO module, dat is het idee. Hij is te gebruiken met eenvoudige directe conversie ontvangers. Dan gebruik je alleen het VFO uitgangssignaal. Met een simpele "Barefoot Technology" directe conversie ontvanger kun je bijna net zoveel ontvangen als met een dure commerciele radio. Maar voor digitale modes moet je een DDS of deze universele VFO-BFO module gebruiken voor voldoende frequentie stabiliteit! Maar de universele VFO-BFO module is ook te gebruiken met superhet ontvangers met middenfrequent en kristal filters. Dan gebruik je niet alleen het VFO signaal, maar ook het BFO signaal.
De grote uitdaging is natuurlijk hoe we die SI5351 moeten aansturen met de Arduino Nano. Silicon Labs heeft het document AN619, 63 bladzijden, en dat moet ik eerst maar eens bekijken. Nou, in het begin begreep ik er helemaal niets van! Fractional Multisynth dividers en een onduidelijk getal van 1,048,575... Er zijn 8 clock signalen, maar mijn module met 10 pins uitvoering heeft er maar drie in gebruik. De overige 5 zitten echter wel in de chip en moeten "power down" worden gezet vanwege energie besparing.


Met een simpele "Barefoot Technology" directe conversie ontvanger kun je bijna
net zoveel ontvangen als met een dure commerciele radio. Maar voor digitale modes moet je
een DDS of de universele VFO-BFO module gebruiken voor voldoende frequentie stabiliteit!

Er zijn maar twee van de drie uitgangen bruikbaar
Er zijn twee PLL circuits, PLLA en PLLB. Hiervan moet de frequentie worden ingesteld. De tweede Multi synth trappen moeten voor een lage jitter op een even integere waarde worden gezet. Helaas kunnen er dus maar twee van de drie uitgangen gelijktijdig worden gebruikt! Stap voor stap wordt alles een beetje duidelijk. Het is een uitdaging om alles te begrijpen. Gelukkig zijn er 8 clock signalen en wordt in het document 8x ongeveer hetzelfde verhaal genoemd.
Ik vond op internet een paar voorbeelden. Eentje met de SI5351 library, maar die gebruikte PLLA voor beide uitgangen en geen integere waarde voor de tweede Multi synth trappen. Ik zou de hele library moeten aanpassen, te moeilijk dus. Maar het eenvoudigere programma van OE1CGS (Christophe) Arduino sketch was wel bruikbaar en kon wel worden aangepast. Geen library of extra files, heel duidelijk en logisch. Deze eenvoud past perfect bij de "Barefoot Technology" filosofie! Simpel en eenvoudig!


Het schema en de bedrading tussen de Arduino Nano en de SI5351 module.

De hardware
Mijn idee was om de universele VFO-BFO module te gebruiken voor QRSS ontvangst. Dan is de frequentie stabiliteit heel belangrijk. Daarom is er een kristal oven toegevoegd. Deze werkt met een NTC weerstand als temperatuur sensor en een weerstand van 120 ohm als verhittings element. Deze worden op het kristal geplakt van de SI5351 module.
De twee transistoren BC547 zijn een verschilversterker, de BC557 stuurt de "heater" weerstand. De waarde van de weerstand 100-1k kun je zelf kiezen. Ik gebruik 150 ohm. Een lage weerstand geeft een hoge nauwkeurigheid, een hoge weerstand een wat rustigere regeling.


Binnenkant

Geen radio storingen alstublieft!
En het voorkomen van radio storing is heel belangrijk voor de ontvangst van zwakke QRSS signalen. Daar had ik een eenvoudige oplossing bedacht. De SI5351 module heeft zijn eigen 5 volt voeding. De Arduino Nano wordt gevoed via de USB connector door de PC, dus niet uit dezelfde 5 volt voeding van de SI5351 module. Wanneer de frequentie van de SI5351 module door de Arduino Nano is geprogrammeerd, wordt deze losgekoppeld van de USB kabel. Hij heeft geen voedingsspanning meer, is nu uitgeschakeld en kan geen radio storingen veroorzaken.
Maar mocht je de module willen gebruiken als VFO en BFO voor een gewone ontvanger, dan zijn de kristal oven en 5 volt voeding voor de SI5351 niet nodig. Verbind de SI5351 module dan gewoon met de 5 volt van de Arduino Nano. Deze wordt via de USB kabel met je PC verbonden en je kunt nu afstemmen met het programma dat op de PC draait.


Onderkant


De heater weerstand wordt tezamen met de NTC weerstand op het kristal gelijmd.
Dit doe je met een lijmstift, die kun je smelten met je soldeerbout.

Installatie van de software
Maak een nieuwe directory en copieer de files in de volgende ZIP file naar die directory: Software voor de Arduino Nano
In de directory VFO-BFO01 vind je het programma "VFO-BFO01.ino" dat je moet uploaden in de Arduino Nano. Het programma is gebaseerd op de OE1CGS (Christophe) Arduino sketch. Christophe heeft uitgezocht hoe je de SI5351 module moet programmeren voor de CLK0 uitgang. Het programma was eenvoudig aan te passen voor twee CLK uitgangen (CLK0=VFO, CLK1=BFO). En er is een serial RS232 routine aan toegevoegd, zodat je de frequentie via de USB poort kunt instellen.


Het programmeren van de Arduino Nano. Laad het programma "VFO-BFO01.ino"
en druk op het pijl symbool net onder "edit" om dit te uploaden.

Het programmeren van een micro controller is nog nooit zo gemakkelijk geweest, zelfs een leek kan het in een paar minuten leren! Je kunt alles vinden op https://www.arduino.cc/ onder de downloads. En er is nog veel meer informatie over de diverse Arduino versies te vinden. Ik gebruik de Arduino Nano.
Download en installeer de IDE. Verbind de Arduino Nano met je USB poort van je laptop of PC en bij "Tools - Port" kun je de juiste COM poort selecteren. Wanneer het werkt, heb je de juiste COM poort te pakken.
Met "File - Open..." open je een programma, dat is een file met de extensie ".ino". Met het eerste Vtje op de werkbalk kun je een programma eventueel controleren op fouten. Met het tweede rondje met pijltje wordt het programma gecompileerd en ge-upload en dan ben je al klaar!
Een programma bestaat uit twee gedeelten. Het gedeelte "void setup()" bevat de configuratie, bijvoorbeeld welke poorten als ingang of uitgang worden geconfigureerd. Het tweede gedeelte "void loop()" bevat het programma. Meer informatie kun je vinden op de bovengenoemde website van Arduino.


Het starten van de Serial Monitor in de Arduino ontwikkel omgeving

Programmeren van de frequentie
Hiervoor moet je de Serial Monitor in de Arduino ontwikkel omgeving starten.
Je kunt nu heel simpel de volgende commando's gebruiken om de SI5351 te programmeren! Probeer het maar eens, wanneer je een vraagteken verzendt, dan krijg je de software versie als informatie terug.

===
Usage:
Command "?" print information about software version
Command "Annnnnnnn" Set frequency nnnnnnnn of CLK0
Command "Bnnnnnnnn" Set frequency nnnnnnnn of CLK1
Command "An" Set power of CLK0, n=0 = off; n=1 = -8 dBm; n=2 = -3 dBm; n=3 = 0 dBm
Command "Bn" Set power of CLK1, n=0 = off; n=1 = -8 dBm; n=2 = -3 dBm; n=3 = 0 dBm
===

Programmeren van de frequentie met behulp van een speciaal programma
Maar dit is natuurlijk niet praktisch om een ontvanger mee af te stemmen. Eenmalig een frequentie instellen kun je wel op deze manier doen. Voor het bedienen van een radio ontvanger is er een programma geschreven in python. Dit is het programma "VFO-BFO01-v01a.py"dat je ook in de ZIP file kunt vinden.
Voordat je dit programma gebruikt, moet je Python installeren. Dit gaat heel eenvoudig. Maar lees eerst eens iets over Python door op de volgende link te klikken:

WAT IS PYTHON EN HOE INSTALLEER JE PYTHON

Omdat de broncode van Python in ASCII geschreven is, kun je zelf het programma eenvoudig aanpassen aan je eigen wensen. Denk bijvoorbeeld aan de grootte van het scherm, de kleuren enz.

Open Python 3 (IDLE) en open daarmee "VFO-BFO01-v01a.py"
Kies vervolgens "Run Module". Dan krijg je eerst een vraag over welke RS232 poort moet worden gebruikt.


Het is wel duidelijk welke poort je moet kiezen!

En je ziet de volgende GUI om alles te bedienen.


De Grafische User Interface waarmee je de VFO-BFO module kunt bedienen.
De VFO-BFO module is met een USB kabel verbonden met je PC.

VFO power & BFO power
Voor het instellen van het vermogen: n=0 = off; n=1 = -8 dBm; n=2 = -3 dBm; n=3 = 0 dBm.
CLK0 is de VFO uitgang, CLK1 is de BFO uitgang.

BFO1 & BFO2
Hiermee kun je twee BFO frequenties kiezen, bijvoorbeeld voor LSB en USB ontvangst. Deze frequenties moet je in een configuratie file zetten.

BFO frequency- & BFO frequency+
De BFO frequentie worden verhoogd of verlaagd met de Frequency step waarde.

Recall & Save
Voor het laden en opslaan van een configuratie file. Deze kun je met een ASCII tekstverwerker bewerken. In een configuratie file kun je ook de frequentie correctie in PPM aangeven.

VFO frequency- & VFO frequency+
De afstemming. Bij het drukken wordt de frequentie met de waarde van de Frequency step gewijzigd.

FreqStep- & FreqStep+
Zet de frequentie stap grootte van de afstemming en ook van de scan.

Scan- & Scan+ & Scan OFF
Voor het scannen van een frequentie band. De VFO frequentie wordt continu gewijzigd met de waarde van de Frequency step.

Eerste resultaten
De universele VFO-BFO module werd aangesloten op een eenvoudige directe conversie ontvanger, niets bijzonders. En... al snel werden signalen ontvangen! De SI5351 module met temperatuur gestabiliseerd kristal is stabiel.


Een ballon op 20 meter


5 signalen op 10 meter


Index PA2OHH