|
![]()
Vydáno dne 18. 11. 2018 (6596 přečtení) |
![]() |
Když jsem před časem hledal nějaké součástky na ebay.com, narazil jsem na modul oscilátoru s integrovaným obvodem PLL oscilátoru SI5351a. Jedná se o malou součástku v smd pouzdře, obsahující 2 programovatelné PLL oscilátory a další programovatelné děličky, které lze softwarově (zadáním správných hodnot do správných registrů) propojit na 3 výstupy 50Ω, a která umí generovat stabilní kmitočet v rozsahu 2,5 kHz až 200 MHz.
Doplněno později: Další verze oscilátoru je popsána v tomto článku. |
Jako referenční kmitočet slouží krystal 25 MHz nebo 27 MHz. Součástka se programuje po I2C sběrnici. Napájení je 3,3V. Její původní určení je jako náhrada krystalových oscilátorů pevných kmitočtů. Radioamatéři ji však začali používat poněkud jiným způsobem. Nastavení kmitočtu pomocí I2C protokolu je dostatečně rychlé, takže lze realizovat "plynule laditelný" oscilátor VFO. Nevím, kdo byl první (jestli QRP_Labs, nebo Adafruit, nebo někdo jiný), koho napadlo vyrábět modul, na kterém je kromě té malé smd součástky také krystal, stabilizátor napájecího napětí, převodník na 3V I2C a výstupy na 3 SMA konektory. Každopádně ebay.com je dneska plný nabídek čínských kopií tohoto modulu za cenu něco přes 100 Kč.
Originál Adafruit | Čínská kopie | Přibližné schéma |
Na výstupu je sice obdélníkový signál ale podle toho, co se lze dočíst má lepší fázový šum i jitter než většina DDS obvodů. Pro sinusový signál na výstupu, musíme tedy zařadit dolní propust. Trochu nepříjemné je, že výpočet hodnot pro požadovaný kmitočet a jejich upload do paměti součástky je o dost složitější, než u známých DDS obvodů Analog Devices. Nicméně, současná Arduino-mánie se nevyhnula ani tomuto obvodu. A tak je k dispozici dokonce několik knihoven s jejichž pomocí je nastavení kmitočtu i ostatních parametrů docela jednoduché.
Abych si to vyzkoušel, koupil jsem si zmíněný SI5351a modul, Arduino Uno, stáhl jsem si nějaké knihovny a ukázkové programy a zprovoznění oscilátoru netrvalo déle, než asi 15 minut.
Rozhodl jsem se, že si s tímto modulem postavím stabilní "VFO" k mému QRP transceiveru na 160m.
- Bude to ve formě předního subpanelu. Zepředu displej, tlačítka a kroutiče, zezadu ostatní součástky.
- Ovládání pomocí Atmega328, FW vytvořit pomocí BASCOM editoru/komplilátoru.
- Ladění pomocí rotačního enkodéru (ten laciný, mechanický, se nakonec ukázal jako nejslabší článek)
- RIT pomocí potenciometru připojeného na AD převodník procesoru
- Zobrazení pomocí LCD displeje 2x8 znaků.
- Nějaká tlačítka na ovládání.
- Jednopásmová verze. Dolní propust (filtr výstupního signálu) bude přímo na destičce.
Docela problém jsem měl s naprogramováním výpočtu hodnot pro daný kmitočet a jejich uložení do správných registrů té součástky. Pro BASCOM, na rozdíl od Arduina, neexistují pro tuhle součástku žádné knihovny. I když jsem v různých diskuzích na internetu četl, že je to docela složité, bylo to složitější než jsem čekal. Na webu výrobce je ke stažení program, který nám hodnoty vypočítá, pokud zadáme potřebné parametry. To je však vhodné pro původní určení součástky, tedy generování několika pevných kmitočtů. Pro průběžné počítání hodnot při plynulém ladění se to nehodí. Po dlouhém studování pdf manuálu k SI5351a, různých knihoven pro Arduino (a pokusech o jejich přepsání z C jazyka do BASCOM) a čtení diskusí jsem nakonec vlastní výpočet a uložení do registrů zkopíroval od ZL2PD.
Naproti tomu, bylo nakreslení schématu a vytvoření DPS celkem hračka. Když jsem zjistil, že DIL verze Atmega328P zabírá na desce příliš místa, rozhodl jsem se pro smd verzi (TQFP32).
Zdá se mi, že čínští výrobci DPS nějak podražili poštovné (u některých je i mnohem vyšší než vlastní výroba DPS). Proto jsem v poslední době přešel k elecrow.com. Ti zatím zdražili nejméně.
Schéma oscilátoru ve vyšším rozlišení | DPS zepředu | DPS zezadu |
Jak je vidět na schématu, je možné použít 2 VF výstupy. Jeden, CLK0 je VFO, případně druhý, CLK1 jako BFO. Ten druhý, BFO, jsem zatím nepoužil, protože na destičce TRXu mám krystalový oscilátor. Stále dolaďuji firmware, jak mne postupně napadají různé funkce.
Takže zatím to funguje takto:
- Hlavní ladění je mechanickým rotačním enkodérem.
3 kroky ladění: 10Hz, 100Hz, 1kHz se přepínají spínačem na ose enkodéru.- RIT je pomocí potenciometru. Vypíná/zapíná se tlačítkem BT1.
Roszah je +/- 640Hz, 850Hz, 1020Hz nebo 1280Hz. Rozsah se přepíná pomocí delšího stisku tlačítka BT1.- Tlačítko BT2 zapíná/vypíná podsvětlení displeje.
- Delší podržení BT2 uloží aktuální kmitočet a rozsah RITu. Při příštím zapnutí se nastaví tyto uložené hodnoty.
- Podržením BT1 při zapnutí napájení skočí program do nastavení KV pásma. Defaultně se nastaví vždy QRP kmitočet na daném pásmu. Po cca 8mi sekundách nečinnosti se kmitočet uloží. Vypnutím a zapnutím napájení se vrátíme do normálního stavu.
- Podržením BT2 při zapnutí napájení skočí program do nastavení MF kmitočtu.
Pomocí BT1 přepínáme nastavovaný řád: 1MHz, 100kHz, 10kHz, 1kHz, 100Hz, 10Hz. Po cca 8mi sekundách nečinnosti se hodnota uloží. Vypnutím/zapnutím se vrátíme do normálního provozu. Pokud chceme mít kmitočet oscilátoru nad kmitočtem MF, zadáme MF jako záporné číslo.
DPS vyrobena v elecrow.com ve vyšším rozlišení | Osazeno, otestováno ve vyšším rozlišení | Osazeno zepředu ve vyšším rozlišení |
Co se děje při zaklíčování vysílače:
Aby nemohl TRX produkovat klixy tím, že oscilátor mění kmitočet ještě těsně po zaklíčování, udělal jsem klíčování "skrz procesor". Telegrafním klíčem uzemníme jeden vstupní pin procesoru. V tom okamžiku se vypočítá kmitočet pro vysílač (ignoruje nastavení RITu), spočítaná data se pošlou do SI5351a, pak se nějakým výstupním pinem sepne klíčovací tranzistor a nakonec se vysílací kmitočet zobrazí na displeji. Obráceně, při odklíčování se rozepne klíčovací tranzistor, vypočítají se data pro RX kmitočet, pošlou se do SI5351a a nakonec se opět RX kmitočet zobrazí.Jelikož se data do SI5351a a částečně i do LCD displeje posílají sériově, měl jsem obavy, jak rychlé klíčování to bude stíhat. Podle mých pokusů je to do cca 40 WPM bez problémů, do 48 WPM to sice funguje, ale klíčování již není hezké (velmi krátké, sekané tečky), nad 48 WPM to začne koktat a je to nepoužitelné. Já takovými rychlostmi nevysílám, a vím zcela jistě, že nikdy vysílat nebudu, ale jsou lidé, které by to mohlo omezovat. Mám několik nápadů, jak to zkusit trochu (nebo i více) zrychlit. Některé z nich ale vyžadují změnu hardware, takže snad až v nějaké příští verzi.
Filtrování výstupního signálu:
Výstupní úroveň signálu z SI5351a se dá softwarově nastavit na 4 různé hodnoty. Moc nechápu, proč je to v datasheetu uvedeno v mA (2mA, 4mA, 6mA nebo 8mA). Jak už jsem uvedl výše, výstupní signál je obdélník. Když jsem to zkoušel, tak čím nižší výstupní úroveň, tím horší poměr vyšších harmonických k nosné. Tak jsem to nechal na maximu a potřebnou úroveň nastavuji odporovým trimrem.
6MHz bez filtru na osciloskopu sonda 1MΩ | 6MHz bez filtru na osciloskopu sonda 50Ω | 6MHz bez filtru spektrum, zakončeno 50Ω |
Filtr, dolní propust, na výstupu oscilátoru jsem spočítal pomocí programu AADE Filter Design. Použil jsem běžné axiální tlumivky a keramické kondenzátory. Na DPS je místo vždy pro dva kondenzátory paralelně, aby bylo možné se lépe přiblížit vypočítané hodnotě. Pokud má vstup pro oscilátor na TRXu vyšší impedanci (v mém případě má SA612 asi 1,5 kΩ), je na výstupu filtru nutný zakončovací odpor cca 50Ω. Výsledné výstupní spektrum pro kmitočty okolo 4150kHz je na obrázcích níže.
nosná +/- 2,5 kHz | do 5. harmonické | 1-30 MHz ční jen 2.harmonická |
Poznámka:
Na třech obrázcích výše je určitá chyba způsobená špatným přizpůsobením výstupu. Na desce jsem již měl zapájený zakončovací odpor 56Ω a připojil jsem spektrální analyzátor, tedy paralelně dalších 50Ω. Při správném zatížení má nosná asi 7dBm. Potlačení harmonických se lišilo jen o pár desetin dB.
Úpravy na desce QRP transceiveru 160m
Původní schéma QRP TRX 160m | upravené schéma | Změny na DPS |
Na DPS transceiveru jsem odstranil všechny součástky původního oscilátoru. Na místo oscilátorové cívky jsem osadil konektor pro vstup oscilátorového signálu. Dále jsem tam umístil odporový trimr 2k5 pro možnost regulace oscilátorového signálu do směšovače přijímače. A také jsem změnil hodnotu vazebního kondenzátoru do směšovače vysílače.
V prozatimní krabičce | Poslech majáku OKM1 / OK0EV | Vypnuty LED displeje, zapnut RIT -90Hz, ladicí krok 10Hz |
Na obrázcích níže je měření výstupu vysílače při nastaveném výkonu asi 4,3W. I když je to podle předpisů v normě, docela mě znervozňují parazitní kmitočty cca +/-450kHz od nosné. Hlavně proto, že nevím, proč tam vznikají.
Měření na transceiveru 160m QRP s tímto oscilátorem
Nastaven výkon +36,3dBm (4,3W) | Vyšší harmonické kmitočty | Parazitní vysílané kmitočty +/- 450kHz |
Doma nemám žádnou anténu na 160m, do které by se dalo vysílat. Zato mám v podstatě za rohem maják OKM1 alias OK0EV, který tak mohu poslouchat i v pravé poledne na kousek drátu. Níže jsou dvě videa z jeho poslechu. Z radioklubu jsem udělal nějaká QSO na invertované V ve výšce asi 14m. Na posledním videu je rychlé QSO (599, r 599, tu 73) se stanicí YL100K. Měl jsem na to jen poměrně hlučný ruční klíč.
![]() | ![]() | ![]() |
Poslech majáku OKM1 na 1854,00 kHz video 1min/116MB | Poslech majáku OKM1 / OK0EV video 2min/210MB | Rychlé QSO s YL100K na ruční klíč video 80sec/134MB |
Má to ještě hodně much, takže vývoj pokračuje. Již mám navržen plošný spoj s grafickým OLED displayem a ladění tlačítky. Asi také časem zkusím verzi se skutečným rotačním enkodérem (s optickým systémem alespoň 200 pulsů na otáčku).
S transceiverem, tak jak je na obrázcích a videích, jsem se v pondělí, 12.11.2018 zúčastnil pod klubovou značkou aktivity A160_CW. Udělal jsem 20 QSO. Už se těším, že se s nějakou další verzí, (dejme tomu 0.0.1) zúčastním na konci ledna závodu CQ WW 160m.Jarda, ok1hdu
PS:
Zbylo mi tu54 kusů DPS. Pokud by měl někdo zájem, Jsou k dispozici za poštovné (myslím asi 53 Kč po ČR). Na destičce je i standardní ISP konektor (6 pinů), takže je možné třeba si udělat vlastní program v Arduinu a nahrát ho do Atmegy.
R B N |
![]() |
kalendář |
|
Radary ČHMU |
|
Zaparkováno na: |
![]() |
TSL certifikát: |
![]() |
Tento web site byl vytvořen prostřednictvím phpRS - redakčního systému napsaného v PHP jazyce.
Na této stránce použité názvy programových produktů, firem apod. mohou být ochrannými známkami
nebo registrovanými ochrannými známkami příslušných vlastníků.