VFO/BFO na si5351a wg JA2GQP

Opracowanie, schemat i kody źródłowe pochodzą ze strony JA2GQP, do której odsyłam wszystkich zainteresowanych.

Link do strony : http://ja2gqp.blogspot.com/

A poniżej link do Google Drive autora z kodami źródłowymi. 

https://drive.google.com/drive/folders/1QxoJw0-K503TGGQyV6C9m-N9OTY4CAcF


Na stronce JA2GQP znajdziecie wiele interesujących rozwiązań (polecam) niemniej ja skoncentrowałem się na uniwersalnym VFO/BFO, z przełącznikiem pasm – które z pewnością zasługuje na uwagę.

Poniższe VFO jest wersją obsługującą wyświetlacz OLED 128×64 I2C, przełącznik pasm (8BAND), BFO (na CLK2).

Zaprojektowałem płytkę PCB, która jest przystosowana do kodu pobranego z powyższego adresu (si5351_8Band_oled_BFO.zip) bez żadnych przeróbek. Obsługa „bajerów” – takich jak podświetlanie panelu wymaga pojedynczych zmian w kodzie, które omówię później.

PCB została zaprojektowana tak aby można było ją traktować jako poligon doświadczalny z innymi wsadami/innymi opracowaniami podobnych urządzeń. Wyprowadzone na zewnątrz zostały wszystkie trzy wyjścia generatora (CLK0, CLK1, CLK2), a aby ułatwić montaż można zastosować ATMEGA328 w różnych obudowach (TQFP32/TQFN32), a sam układ si5351 można wlutować wraz z towarzyszącymi elementami osobno, lub zastosować popularny, łatwo dostępny i tani moduł bazujący na tym układzie. Rezonator kwarcowy 16MHz taktujący MCU może być w małej, ceramicznej obudowie lub metalowej HC49.

Pewne elementy na płytce wykraczają poza oryginalny schemat, niemniej wszystkie zostały precyzyjnie oznaczone (wartości, numery portów itp.) na warstwie opisowej  – dlatego montaż, nawet bez pełnego schematu nie powinien stanowić problemu.

Procesor należy programować po ISP, wejście S-meter`a (ADC07) również zostało wyprowadzone na zewnątrz na złączu SMA. Sterowanie przełącznikiem filtrów pasmowych oraz wejście sygnału TX (nadawanie) zostały wyprowadzone na szpilkach goldpin. 

Płyta główna jest połączona z manipulatorem taśmą FPC16 (1mm). Manipulator zaprojektowałem w dwóch wersjach, które można stosować zamiennie – funkcjonalnie obie są równoważne, a dzięki temu można wybrać optymalny dla siebie wariant/układ.

Manipulator w kilku miejscach jest podświetlany diodami LED w obudowach SMD 0603 – pod przyciskami, oraz pod gałką strojenia.  Daje to fajny efekt wizualny no i oczywiście ułatwia operowanie urządzeniem w warunkach słabego oświetlenia.

Trzy diody LED sygnalizacyjne/kontrolne na manipulatorze są w zasadzie do dowolnego wykorzystania (po odpowiedniej modyfikacji kodu). Dwie z nich stanowią integralny element oryginalnego układu (wg schematu autora), a trzecia to mój dodatek, który w tej chwili nie ma zastosowania.

Płyta główna zasilana jest z zasilacza zewnętrznego 8-12V, które poprzez wyłącznik lub jumper trafia bezpośrednio na stabilizator liniowy 78M05 Stanowi on podstawowe źródło zasilania całego układu. Na potrzeby Si5351a, w jego pobliżu znajduje się dodatkowy, miniaturowy stabilizator 3V3 (XC6206), oraz konwerter poziomów napięcia dla magistrali I2C na układzie PCA9306 – oczywiście tylko dla wariantu gdyby ktoś montował generator jako samodzielny układ. Gotowy, fabryczny moduł ma stabilizator i konwertery wbudowane. Zaletą tego bardziej złożonego układu jest możliwość wlutowania TCXO, zamiast zwykłego rezonatora, który jest w module. Dla mnie jego stabilność jest nie do zaakceptowania, dlatego u mnie w tym miejscu pracuje bardzo precyzyjny (wg moich testów) układ TCXO (ok. 0.5 ppm) o częstotliwości 26MHz. Wg noty katalogowej układu si5351a (o ile się nie mylę) należy stosować rezonator 25MHz lub 27MHz – ale są od tego potwierdzone odstępstwa i to czasami nawet bardzo poważne. Zazwyczaj w moich konstrukcjach stosuję przy Si5351a TCXO 26 MHz i nigdy nie miałem z tym problemów.

Oczywiście zmiana zegara, wymaga drobnej modyfikacji oryginalnego kodu (autor stosował moduł z XTAL 25MHz).

Po rozpakowaniu paczki oprogramowania w folderze „/src”, w pliku „si5351.h” należy zmienić linię :


#define SI5351_XTAL_FREQ 25000000

na inną wartość – w zależności od użytego generatora/rezonatora.

Zakresy 8 pasm (BAND), które są definiowane w kodzie, możemy modyfikować w tablicy (w programie głównym):


////////////////////////////////
// frquency data
////////////////////////////////
const unsigned long FRQ_TBL[8][4] = {
// DEF LOW(cw) MID(ssb) HI
3575000 ,3500000 ,3535000 ,3805000,
7050000 ,7000000 ,7045000 ,7200000,
10130000,10100000,10130000,10150000,
14090000,14000000,14100000,14350000,
18110000,18068000,18110000,18168000,
21150000,21000000,21150000,21450000,
24930000,24890000,24930000,24990000,
28200000,28000000,28200000,29700000
};

a ustawienia częstotliwości pośredniej i BFO w liniach kodu (domyślnie IF=10,7 MHz) :


//---- IF offset -------
volatile unsigned long LSB = 10701500;// 10.7015MHz
volatile unsigned long USB = 10698500;// 10.6985MHz
volatile unsigned long CW = 10700700;// 10.7007MHz
volatile unsigned long IF = 10700000; // 10.7000MHz

Software obsługuje zapis aktualnych parametrów w pamięci EEPROM – co jest bardzo wygodne i pożądane w tego typu urządzeniach, dlatego wyłączenie zasilania nie resetuje go do ustawień domyślnych, tylko zapamiętuje ostatnie nastawy przed wyłączeniem.


Istotne, moje zmiany – w stosunku do oryginalnego schematu autora :

  • podpiąłem trzeci przycisk (od góry) równolegle z kluczem tranzystorowym podwieszonym jako wejście sygnału TX/RX (przełączanie nadawania) – port A2 (w ATMEGA  nóżka nr 25, port PC2, w Arduino IDE – A2 lub D16). Dzięki temu możemy przełączyć w tryb nadawania wciskając Switch na manipulatorze.
  • ostatni przycisk – czwarty – to włączanie/wyłączanie podświetlania manipulatora. Switch jest podwieszony na porcie A3 (w ATMEGA pin nr 26, port PC3, w Arduino IDE – A3 lub D17). 

Obsługa podświetlania wykorzystuje dwa dodatkowe porty :

D17 (opisany powyżej) – jako Switch, oraz D5 (nóżka 9/port PD5) jako wyjście sterujące kluczem tranzystorowym, załączającym zasilanie dla diod LED.

Wymaga to dopisania kilku linijek kodu : 

 1. W setup


pinMode(17, INPUT_PULLUP); // SW LIGHT
pinMode(5, OUTPUT); // KEY LIGHT

2.  W głównej pętli programu


if (digitalRead (17) == LOW){
digitalWrite (5, (HIGH + LOW) - digitalRead (5));
delay(300);

 


Oryginalny schemat i opis (dla wersji 3BAND) pod adresem :

http://ja2gqp.blogspot.com/2019/04/si5351-oled-3band-vfo.html

Wersja 8BAND różni się tylko wsadem.


Mój schemat uwzględniający modyfikacje :

Płyta główna

Manipulator

Switch na enkoderze/impulsatorze (wciśnięcie ośki), zasadniczo nie jest wykorzystany, ale jeśli zajdzie taka potrzeba można go oprogramować – na manipulatorze jest podpięty do  portu PD4.


Gotowe urządzenie, w dwóch wersjach (zmontowane na bazie tej samej PCB) i z dwoma różnymi manipulatorami na poniższych fotkach :

Komplet płytek PCB składa się z płyty głównej (4Layers), płyty manipulatora (2Layers) i płyty czołowej. Do zamówienia dokładam przyciski (wydruk z przezroczystej źywicy), 2x złącze FFC 16PIN + taśma oraz gałka strojenia. We własnym zakresie pozostaje ukompletować resztę części, polutować i wsadzić w jakąś obudowę.

Jeśli ktoś jest zainteresowany zakupem – proszę szukać na allegrolokalnie.pl lub pisać na maila.