Řízení PLL pro FM vysílač pomocí PIC16F84

Ahoj,
měl bych prosbu, jestli mi někdo může poradit. Postavil jsem vysílač FM podle stránek pira.cz/pllled.htm . Chtěl bych ladit vysílač v bývalém pásmu OIRT (65-74MHz) protože opravuji stará lampová rádia a ty pracují v tomto pásmu. Zatím ladím potenciometrem, ale není to úplně ono.
Bohužel se mi nepodařilo kontaktovat autora, projekt je už dlouhou dobu mrtvý. Jsem naprostá lama, programovat neumím, nainstaloval jsem si program MPLAB X, stávající program upravil v textovém editoru, ale nedaří se mi ho zkompilovat a spustit v simulaci.
Měl bych k programu otázky:

  1. stačí upravit takto řádky programu aby „ladil“ 65-90,5MHz (původní rozsah 82,5-108 MHz)?
    FirstRun
    MOVLW 0x00
    MOVWF desetiny
    MOVLW 0x05
    MOVWF jednotky
    MOVLW 0x06
    MOVWF desitky
    CLRF stovky
    CLRF FREKVENCE
    RETURN
  2. bylo by možné čítač „rozšířit“ o 1 bit, tak aby bylo možné čítat do 512 a rozšířit tak rozsah na například 60-111,1 MHz a pokrýt tak přeladěním obě pásma (OIRT 65-74 a CCIR 88-108 MHz)?
  3. ovládání je 3-mi tlačítky, dvě (UP/DOWN) pro nastavení kmitočtu a třetí pro odeslání nové hodnoty do syntézy PLL. Nešlo by odeslat novou hodnotu kmitočtu do syntézy po tom, co po nějakou dobu není stisknuté tlačítko a třetí tlačítko vypustit? (tzn. když tlačítky UP/DOWN nastavím nový kmitočet a po puštění tlačítka, třeba po 1s se hodnota odešle do PLL).
  4. poslední asi dost troufalá otázka: bylo by možné upravit program pro ovládání jednořádkového 16 znakového displeje.
    Na stránkách PiRa je ovládání PLL s procesorem Atmel, který ovládá LCD, ale k použití PIC16F84 mě vede to, že je pro něj plošný spoj, PIC a LCD mám jako zbytek po jiném projektu.
    Jsem si vědomý, že úpravy 2) – 4) nebudou jednoduché, tak pokud by to někdo byl ochotný za rozumný peníz udělat, byl bych rád. S mojí angličtinou bude trvat dlouho, než se naučím programovat PIC :frowning:

Děkuji
pll16f84.zip (4.98 KB)

Musím tě trochu zklamat - použitý obvod PLL frekvenční syntézy SAA1057 pracuje dle datasheetu od 70 MHz do 120 MHz. Nemám s ním osobní zkušenost takže nejsem schopen říci, jestli si nechá líbit jít mimo zaručené parametry a nebo jestli vysadí, ovšem předpokládám že výrobce ty údaje nepíše do datasheetu jen proto aby “byla nějaká legrace” - takže je třeba počítat s tím že to pod 70 MHz opravdu fungovat nemusí.

Je tedy na tobě rozhodnout, jestli to vadí či nikoliv a jestli ti případně stačí mít dostupnou jen část bývalého OIRT pásma, u kterého jsem ovšem nucen tě upozornit, že je dnes přerozděleno pro jiné (neveřejné) použití a případným vysíláním v něm se může stát, že narušíš nějaké cizí systémy. Nikdo neví, kde a blízko čeho bydlíš a jakým výkonem při těch opravách hodláš vysílat, obecně to ovšem povoleno není a případné takové vysílání je bez uděleného oprávnění nelegální - vše děláš pouze na vlastní zodpovědnost.

Ještě tě musím upozornit, že tím co navrhuješ, tj. rozšířením ladění přes obě pásma včetně oblastí mezi nimi a hlavně vysíláním v té oblasti (byť třeba jen náhodným a omylem) bys eventuálně mohl nadělat obrovskou paseku a případně opravdu nehorázný průšvih, protože v tomto pásmu vysílají krom jiného také letecké majáky ILS (přistávací systém). Velmi ti doporučuji na takové úpravy rovnou zapomenout a naopak program případně upravovat tak, aby k vysílání v tomto rozsahu nemohlo dojít ani omylem.

spektrum.ctu.cz/kmitocty?filter[frequencyFrom]=74&filter[frequencyFromUnit]=MHz&filter[frequencyTo]=88%2C5&filter[frequencyToUnit]=MHz

Co se týče programu a otázky č. 1 čistě teoreticky a pouze pro vzdělávací účely - jen jsem to velmi zběžně prolétl očima, nemám aktuálně příliš času, ale zdá se že úprava co píšeš by skutečně mohla stačit (případně od těch 70 MHz) - ale mohu se mýlit. Kdyby někdo z programu získal přesnější informace, nechť mě neváhá opravit. Víc toho pro tebe momentálně nemohu udělat, ale možná že někdo další třeba může.

Dík za odpověď.
Je možné, že to nebude pod 70MHz chodit, ale i těch 70 - 75 MHz by mi stačilo.
Nicméně určitě obvod chodí do 144MHz, viděl jsem PLL pro 2m, tak bych ho zkusil také pod 70MHz.

Proladění přes obě pásma není myšleno tak, že tam chci vysílat (ani vysílač si nedá líbit ladění v tak širokém pásmu, musí se přizpůsobit vystup atd, možná ani oscilátor to nedá bez změny cívky), a pokud bych to i omylem naladil mimo pásmo, tak vyzářený výkon s nepřizpůsobeným koncem a anténou bude minimální (nominál je 0,4W). Spíš bych to měl jako univerzální řešení pro dva vysílače (jeden OIRT, druhý CCIR).
Opakuji, že nehodlám vysílat ani na 1km, stačí mi signál “z domu do garáže” na poslech ma lampových rádiích.

Tak ještě jednou: Podle Všeobecného oprávnění (VO-R/10/11.2016-13) můžeš legálně vysílat v FM pásmu výkonem max. 50 nanovattů e.r.p. , v ostatních pásmech si to prostuduj podle odkazu (a předchozího odkazu).

Tvoje úmysly nikoho nezajímají a odpovědný za ně jsi ty sám, zde se bavíme pouze v teoretické rovině. V praktické rovině nelze doporučit nic jiného než držet se platné legislativy.

Čistě teoreticky to ta syntéza zvládne. Možná bude potřeba posílit/přispůsobit výstup oscilátoru, ale digitálně tam problém nevidim.

Co se ovádacího programu týče, tak kromě toho, že je to děsně prasácky napsaný, tak, autor si zjednodušil práci a pracovní proměná FREKVENCE obsahuje požadovaný kmitočet * 100KHz. To znamená, pracovní rozsah ladění je 255*100KHz=25.5MHz a to je taky autorem udávaný rozsah 82.5-108 Ofset se nachazi v registrech WORKA a WORKB. Budeš to muset přepsat, jestli od toho chceš víc :wink:

S tím čítáním do 255 jsem to pochopil, jenom nevím, jestli to bude čítat od 65 MHz, když přepíšu ten first run tak, jak jsem napsal v prvním příspěvku. To asi zvládnu, ale přepisovat celý program je určitě mimo můj rozsah.
Na webu jsem našel i PLL se stejným osazením a s programem na řízení LCD, ale je k dispozici jen .hex a jak jsem se dočetl tady na fóru, překompilace do .asm, aby to šlo přepsat není možná, nebo je to hrozná práce.
Ještě k tomu by se musely přemapovat porty, protože zapojením to nesouhlasí s mojim plošným spojem.

Ta úprava co zamýšlíš, fungovat nebude.
To co se posílá do PLL je součet WORKA,WORKB a FREKVENCE a podle toho se syntézuje kmitočet. Tam je aplikovaná binární matika.
Paralelně s tím chodí dekadická matika aby si to viděl na displeji, ale nemá vůbec žádný vliv na řízení kmitočtu.

Keby si tu postol schematko nieco by som ti zbuchal. Hex by si nahral do uP a videlo by sa.

Pozeral som do archivu mam tu nejake ppl6.asm.
Pouzival som SAA ako syntezu pre radio tym padom som troska upravil program. Ale ked to vidim fakt je to lepsie prepisat do C cka.

Schémata jsou v odkazech hned v prvním příspěvku, akorát u toho prvního si musíš odmazat za příponou htm čárku v adresním řádku, protože je první odkaz špatně vložený.

Lenže tam je bez lcd. Tak ze kym nedoda schematko ako to ma zapojene… A ci mu to vobec treba este.

Prikladam hex pre up, ide to namontovat na povodnu dosku z pira.cz s jumprami namiesto nich je pripojeny displej.
Ide zvolit pasmo oirt alebo ccir, naladena hodnota sa po 5s automaticky ulozi do eeprom. Pri zapnuti nacita zvolene pasmo a posledna ulozena frekvencia.
Sluzi to na skusanie oscilatorov a vstupnych dielov prijimacov. Pri pouziti na ladenie fm vysielaca beriete na seba vsetky nasledky z toho plynuce.

Dufam ze som dal dobru verziu :wink: inak pakaren to natrepat v C do 1kB.
Dalo by sa tam par funkcii pridat ale nieje miesto.
PLL_SAA1057-9.hex (5.62 KB)