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.