Vidlákovo elektro 98. Kmitočtová syntéza 1.

12. března 2015 v 5:35 | Petr |  Vidlákovo Elektro
Je to silnější než já - přerušuju seriál o anténách, protože se mi stala následujcíí věc. Šel jsem po Kauflandu a najednou mě zdraví známý se kterým jsme kdysi "kecali na CB" - tedy na 27.205 MHz na občanských radiostanicích. Mimochodem manželka okamžitě poznala že se "známe z pásma" a když jsem se ptal jak to poznala tak prý podle věku - každý kdo mě velice zdraví a je starý 70+ prý vždy byl známý z pásma....

Tak jsem na okenní parapet "přimagnetoval anténu - magnetku" a ozval jsem se, známým, že jsem ještě neumřel. Pak jsem k magnetce připojil scanner Yaesu VR 500 - který mi už léta dělá radost / starost - co se jako děje na krátkých vlnách. Tak jsem prolezl všechno co jsem chytil na 100 - 30 000 kHz a něco i opakovaně a pak jsem prohlásil : "Mámo potřebujeme kvalitní radiopřijímač" - protože Yaesu sice nemá dobré recenze - hlavně jej obviňují ze zahlcování vstupu, ale hlavně co kazí příjem, je repráček o průměru 25 mm, který rezonuje, tam kde na krátkých vlnách už je v modulaci jenom šum.

Tak jsem se vysal k otci, který vlastní Grundig Yacht Boy 80 Pll, porovnáním s Yaesu dostal Grundig neuvěřitelně "na prdel" - ale na druhou stranu když už nějakou stanici chytil - poslech byl o mnoho příjemnější díky velkému barytonově znějícímu repráku. Tím moje snaha opatřit si nové rádio poněkud ochladla. Na druhou stranu měl jsem v úmyslu pořídit si současnou špičku Tecsun PL-660 - ten by jistě natrhl prdel scanneru - a velký reprák by měl navíc jako bonus.

Když se teda "kvalitní radiopřijímač" nekupuje - což takhle si postavit jeden sám. Tak jsem se podíval "co dala krabice" a pokud bych měl vycházet z domácích zdrojů tak to vypadá asi takto - superhet s jedním směšováním s vysoko postavenou mezifrekvencí na 20 MHZ (ne však up convertor) kde by byl krystalový filtr a z 20 MHZ by se rovnou synchronním demodulátorem vyráběla AM modulace - směšovač i demodulátor byl samozřejmě byl můj oblíbený CMOS spínač 74HC4066 a místo patlání se s cívkami by byl můj oblíbený ring oscillator ?

Praví radioamatéři 70+ jestli dočetli až sem - tak právě volají 155 protože taková konstrukce rádia z odpadu co daly počítače to není drzost, ale je to prostě nehoráznost. Nicméně zůstává stále jedna otáka - kde do tohoto "bazmeku" sehnat ladění neboli PLL.


Takže jsem se vrátil ke své předvánoční ideji "rádia na VKV" z procesorových součástek.
V okamžiku kdy se rozproudila diskuse k původnímu článku bylo jasné, že tato idea není špatná, ale má problémeček a ten se jmenuje "krok ladění"


V konvenční smyčce PLL je totiž krok ladění roven referenční frekvenci * dělení předděličkami. Neboli - u VKV chci mít krok ladění 100 KHz - a kmitočet oscilátoru ještě před vstupem do procesoru, který zde fuguje jako "programovatelný dělič" dělím 8 - takže aby přeskočením programovatelného děliče o 1 krok mi přeskočila naladělná frekvence o 100 kHz musím mít referenčí kmitočet 100 / 8 = 12.5 KHz. Představte si stejné zapojení modifikované pro krátké vlny, kde je dobré mít krok ladění 100 Hz nebo v nejhorším 1 KHz (standardní rozestup stanic je 5 KHz, ale to je při kličkování mezi rušením málo) - takže pak nám refereční kmitočet vychází na 12.5 HZ nebo 125 Hz !! To je strašně málo - protože si musíme představit, že s každým kmitem referenčního oscilátoru se mění ladící napětí - tedy jakoby se smyčka PLL korigovala jen 12x za sekundu. Pokud vezmeme že PLL musí mít i filtr, který má propustnost na zlomku referenčního kmitočtu - vychází nám filtr s časovou konstantou v sekundách a "zavěšení PLL" v desítkách sekund. Nic pro rychlé přeladění "napříč pásmy".

Profesionálové to řeší různými frakčními smyčkami PLL nebo děličkami typu N/N+1, které umí naladit i necelo-číselný násobek referenčního kmitočtu. Jak to řešíme my vidláci ? Dlouho jsem přemýšlel odkud ten nápad použít AVR nebo jiný procesor jako programovatelnou děličku přišel a pak jsem našel tuto geniální konstrukci, která je velmi blízko tomu co si pamatuju, že jsem někde viděl.


Mimochodem autor je Slovinec - inženýr a na rozdíl překonstruovaných "obvodů z amára" od většiny inženýrů - má tendenci konstruovat věci jednoduše geniální tím jak jsou geniálně jednoduché. Vtip je v tom, že funkci programovatelné děličky zde nevykonává procesor - přesněji časovač v procesoru, ale DDS - "přímá digitální syntéza" - ta, kterou používá on stojí kolem 600 kč - trochu moc na "takové to domácí pokusničení" s kmitočtovými ústřednami.

Takže jsem velice přemýšlel, jestli by se AVR nedalo použít i jako náhrada DDS a kupodivu dalo a ještě více se divte - prakticky bez větší změny mého původního zapojení "vánočního rádia".

Ještě než pro dnešek skončíme - zkusím vás navnadit jak na to. TAkže původní idea s nízkým referenčním kmitočtem 12,5 KH a generováním kmitočtu PLL pomocí procesoru vycházela z toho že funkci programovatelného děliče bude dělat 16 bitový TIMER 1.

Příklad : potřebujemem naladit 100 MHz - krok ladění máme 100 KHz - takže do Timeru 1 budeme periodicky nastavovat 1000 a necháme jej čítat směrem dolů a při nule vydá AVR puls do fázového komparátoru. Pokud si činnost čítače představíme jako assemblerovský prográmek vypadala by jeho smyčka nějak takto


ULOŽ DO R1, R2 1000
:Main_LOOP
dec R1
brne Main_LOOP
dec R2
brne Main_LOOP
PŘEHOĎ PIN
ULOŽ DO R1, R2 1000
rjmp Main_LOOP

Problém použití AVR jako DDS je v tom, že v AVR žádný hardware pro DDS není - takže tam nebudeme čítač popisovat jako prográmek, ale v AVR prostě do omrzení pojede tato smyčka:

:Main_LOOP
add R1, R4
adc R2, R5
adc R3, R6
out PORTA, R3
rjmp Main_LOOP

Vidíte ten rozdíl ? čítač čítá do nuly a pak přehodí pin. "Rádoby DDS" vyhodí poslední bajt fázového akumulátoru na port - odtud si fázový komparátor bere kmitočet oscilátoru pro porovnání. Rozdíl je v tom, že "DDS" nečítá do nuly, ale i po přetečení zbydou ve fázovém akumulátoru ( registry R1, 2, 3 ) nějaké zbytky, takže každý cyklus DDS je poněkud jinak dlouhý, ale v průměru dosahuje správné frekvence. Díky 24 bitovému čítači (oproti 16 bitovému timeru) je DDS daleko přesnější takže lze naladit přesný kmitočet i tehdy pokud je referenční kmitočet vyšší než kanálová rozteč. Nemluvě o tom že za cenu 1 taktu navíc s přidáním instrukce stylu

adc Rx, Ry

Se dá vyrobit i 32 bitová DDS.

Ano - tato smyčka má 6 taktů a všechno ostatní jako např. změna "ladícího slova" uloženého v registrech R4, 5, 6 se musí dělat v přerušovacích rutinách a "DDS" mezitím stojí, ale to je jen malá daň za vidláckou kmitočtovou syntézu z toho "co dala bedna".

Pro dnešek jsem opravdu vyřízen - zbývá už jenom rada paní Kubáčové novomanželkám : Až přesvědčíte mažela, že na "opravdu kvalitní radiopřijímač nejsou peníze" - víte co následuje pak ? Můžete celou sumu rozházet v Orsay.
 

Buď první, kdo ohodnotí tento článek.

Komentáře

1 m.marianek m.marianek | 12. března 2015 v 7:14

Z hlediska čistoty signálu vidím malinko problém v generování pilovitého signálu. Pokud na výstupní port hodíte rovnou obsah R3 bude na výstupu D/A převodníku pila a pokud bude krok fáze velký, bude problém s její přesnou rekonstrukcí. Proto je lepší, podle mého názoru, obětovat ještě pár taktů navíc a prohnat R3 přes sinus tabulku, aby se na portu (a tím i na D/A převodníku) objevil sinusový signál. Restaurovat sinus se (podle mého) povede s daleko menším fázovým šumem, než pilu. Vím že se dá lecos pořešit filtrem PLL smyčky, ale i tak si myslím, že by fázový šum pily prolézal přes filtry a moduloval by VCO, což by zvyšovalo jeho šum (resp. ruch). Ring oscilátor coby VCO bych také neviděl u přijímače jako nejvhodnější, jeho šum (amplitudový i fázový) bude jistě spadat do zpracovávaného spektra a razantně zhorší šumové poměry. Nikdy jsem jej sice neměřil spektrálním analyzátorem, ale celkem mi stačí vidět to, co dělá na čítači. Jinak ale nechci syntézu s AVR hanět, protože jsem měl podobný nápad také (resp. stejný, jen s jiným obvodovým řešením) a při cenách a dostupnostech různých DDS a PLL obvodů to vidím jako zajímavou, levnou a dostupnou alternativu. Já se teď do ničeho podobného pustit nemůžu, protože v práci stěhuju laboratoř a jsem z toho tak znechucen, že mi nezbývají síly na nic jiného, než doma něco zavrčet na manželku a dítě a jít si vymazat mozek nějakým filmem, nebo knížkou. Fakt je lepší vyhořet, než se stěhovat. :-D

2 petr-kubac petr-kubac | 12. března 2015 v 9:04

[1]: žádná rekonstrukce se konat nebude - nejvyšší bit fázového akumulátoru jde přímo do PLL - a "rekonstrukci" provede až filtr ladícího napětí- který bude muset absorbovat jitter takto vzniklého signálu - ostatně jako absorbuje jitter neceločíselných děliček v PLL.

3 m.marianek m.marianek | 12. března 2015 v 14:01

[2]: Až tak? Takže taková "sigma-delta" modulace na frekvenci? Obávám se, že kvantování bude příliš hrubé a PLL bude courat "v rytmu" kvantizačního šumu. Výsledný impulz tedy může přijít o 6 taktů později, nebo také o 6 taktů později skončit (resp. cokoliv mezi 0 a 6 takty). Nejsem schopen odhadnout, jak moc se kvantování projeví na ladicím napětí, ale nějaký "zub" to udělá a záleží jak moc to filtr potlačí, aby měl rozumnou časovou konstantu a smyčka byla stabilní. Každopádně i obyčejný D/A převodník z odporové sítě na portu P3 by zlepšil potlačení alespoň o 30 až 40dB. Na druhou stranu vzhledem ke geniální jednoduchosti si myslím, že za pokus by to stálo.

4 Pepa Pepa | 13. března 2015 v 0:21

Koukam, ze dneska jsme odlozili vidle a vzali jen vdle :) Jinak hezky clanek ;)

5 petr-kubac petr-kubac | 13. března 2015 v 21:08

[4]: kvůli vyhledávačům jsem překlep v nadpise opravil, ale je zajímavé, že nikdo jiný si ničeho nevšiml.

6 TxD TxD | 13. března 2015 v 21:58

ale všiml... ale nerejpá se v tom :-)
důležitý je obsah...

7 Mroks Mroks | 13. března 2015 v 22:34

Tiež som si všimol - nerýpem, ale bola to zaujímavá zmena. To robí asi tá blížiaca sa stovka ....

8 Guest Guest | 16. března 2015 v 7:48

Ale všiml - jen jsem marně přemýšlel, co znamená to L (Voltage-Defined L? Electrosynthesis) ;-)

Komentáře jsou uzavřeny.


Aktuální články

Reklama