Stereo FM prijímač s RDS, digitálnym ladením a diaľkovým ovládaním
Článok začína pod videom.
Dal som dohromady všetky moje znalosti o TV tuneroch, programovaní mikrokontrolérov, diaľkovom ovládaní a RDS, a výsledkom je tento prijímač FM rádia.
- Architektúra: superhet s dvojitým zmiešavaním
- Rozsah: 87,5 - 108 MHz (dá sa jednoducho rozšíriť od 48 do 863 Mhz, ale je to zbytočné)
- Napájanie: 12 V / 250 mA (bez NF zosilňovača)
- Výstup: stereo na slúchadlá alebo NF zosilňovač
- Ladenie: digitálne (PLL), v krokoch +-50 kHz, +- 500 kHz
- Manuálne AGC
- 10 programov na zapamätanie frekvencií
- Prepínač mono/stereo, funkcia Mute
- Diaľkové ovládanie ľubovoľným ovládačom
- RS232 výstup s RDS údajmi
Schéma je zložitejšia, ale sú z nej patrné isté funkčné bloky, ktoré popisujem nižšie.
Použitý je tuner s digitálnym ladením (s PLL) a ovláda sa pomocou zbernice I2C - piny SDA a SCL. Viac informácií o takýchto tuneroch popisujem v inom článku. Pre túto konštrukciu sú vhodné PLL tunery s nesymetrickým výstupom. Mám odskúšané nasledujúce druhy tunerov:
- KS-H-148EA
- KS-H-148EAS
- KS-H-144EA
- UV1316
- ENV57DA0G3D
- QINGJIA AFT0/1010G 3200 1559
Prvé tri menované sa hojne vyskytovali v televízoroch Orava (OVP, OTF). Sú funkčne ekvivalentné k tunerom UV1316 a pod ich označením sa dajú na internete nájsť podrobné datasheety.
AGC je manuálne, má byť od 0 do 4 V, a tak je potenciometer pripojený cez rezistor na 5 V. Niektoré stanice idú najlepšie s AGC približne v strede, iné s AGC naplno.
Napätie 5 V je brané zo stabilizátora 7805 v katalógovom zapojení. Zvláda to aj bez chladiča, ale hreje sa, a preto som na plošnom spoji s malým chladičom rátal.
Napätie 33 V je získavané step-up meničom s UC3843. Tento obvod sa veľmi často vyskytuje v CRT televízoroch a monitoroch, odkiaľ ho možno s výhodou získať. Rovnako aj MOSFET tranzistor v tomto meniči - namiesto BUZ11 možno použiť IRF630. Ten sa nehreje vôbec a preto nemá chladič. Na výstupe meniča je LC filter na potlačenie rušenia. Výstup je krásne konštantný, mám to odmerané osciloskopom. Výstupné napätie sa nastavuje trimrom RV3, počas oživovania ho treba nastaviť na 33 V. Tento menič je omnoho lepší oproti MC34063, ktorý som používal v starších konštrukciách, kde spôsoboval neodstrániteľné rušenie.
Popis spracovania signálu z tunera
Výstup IF z tunera je medzifrekvencia o šírke pásma asi 8 MHz, a to od 32 do 40 MHz. Ďalším krokom je konverzia frekvencie 37,3 MHz na 10,7 Mhz (pretože 48 - 10,7 = 37,3). To má na starosti integrovaný obvod NE612, ktorý je priam na to určený. Je to double balanced mixer + oscilátor. Výstup nie je balanced, preto je využitý len pin 4 a nie aj pin 5. Na vstupe je Collpitsov LC obvod s ladiacou cievkou a dvomi keramickými kondenzátormi, ktorý podľa datasheetu je potrebný na potlačenie nežiadúcich produktov zmiešavania. V datasheete je to popisované ako "Single-ended tuned input". Parametre LC obvodu treba zvoliť tak, aby bol naladený na frekvenciu, ktorú chceme v NE612 spracúvať, a teda 37,3 MHz. Ide to síce aj bez tohto LC obvodu, čiže surovým pripojením IF tunera na pin 1 NE612 cez 1 nF kondenzátor, ale mám overené, že v tomto prípade je výsledný signál 10,7 Mhz o poznanie slabší.
Oscilátorová časť bloku s NE612 obsahuje kryštál 48 MHz, ktorý možno "vykuchať" napr. zo starej matičnej dosky PC. Táto frekvencia je tretia harmonická, a skrz prítomnosť L3 a C42 je zablokované kmitanie na základnej frekvencii.
Cez filter SFE10.7 postupuje signál 10,7 Mhz do FM demodulátora TBA120U. Pozor, musí to byť verzia U. S verziami S alebo T to nebude fungovať, vyžadovalo by to ďalšie úpravy obvodu. Takzvaný fázovací obvod LC na pinoch 7 a 9 je naladený na 10,7 MHz. NF výstup je na pine 8 (regulovaný) alebo 12 (neregulovaný). Tu je dôležité poznamenať, že v datasheetoch TBA120U, aj v mojich starších konštrukciách, je na výstupe kondenzátor deemfáze 15 nF. Iba náhodou som zistil, že s ním nejde stereo a bez neho ide. Žiadne iné dôsledky som nespozoroval, preto som ho vynechal. Až neskôr som sa dozvedel, že sa tento kondenzátor správal ako lowpass filter a tak sa stereo informácie (ako aj RDS) stratili.
Demodulovaný NF signál (takzvaný MPX signál obsahujúci aj ďalšie zložky, ako je stereo, RDS a pod.) je vedený na vstup RDS dekódera, ale aj cez kontakty relé do stereodekódera A290D. Ten je v katalógovom zapojení. Trimrom RV1 sa dolaďuje kmitočet 19 kHz, ktorý má byť prítomný v meracom bode TP_19kHz. Jednoduchšie je ale doladiť to posluchom a pohľadom na LED diódu pri stereodekóderi, ktorá pri správnom nastavení trimra a prítomnosti stereo signálu vo vysielaní naladenej stanice bude svietiť.
Tu sa cesta signálu na doske prijímača končí. Ďalej možno pripojiť slúchadlá, alebo NF zosilňovač s reproduktormi. Ja som použil malý modul s TDA7266S, ktorý som si dávnejšie zhotovil. Integrovaný obvod TDA7266S sa tiež často vyskytuje v CRT televízoroch Orava.
Popis digitálnej časti
Tuner je riadený zbernicou I2C a tak sa použitiu mikrokontroléra v tejto konštrukcii nedá vyhnúť. Zbernica I2C musí byť podopretá pull-up rezistormi 4k7.
No a keď už máme mikrokontrolér, prečo ho plne nevyužiť na všemožné fičúry užívateľského rozhrania?
Najprv spracovanie RDS dát - o to sa stará obvod TDA7330B. Ten sa bohužiaľ v starej elektronike nenachádza a treba ho kúpiť napr. z ebay, naše obchody ho nepoznajú. Tento obvod vyžaduje kryštál o špecifickej frekvencii - 4,332 MHz - ktorý tiež treba kúpiť cez ebay, z rovnakých dôvodov. Taktovacou frekvenciou z kryštálu je riadený zároveň aj mikrokontrolér. Výstupmi z RDS dekódera sú signály RDCL a RDDA. Signál RDCL je privádzaný na vstup prerušenia INT0 a v programe mikrokontroléra sa počas obsluhy tohto prerušenia prečíta bit z RDDA.
Ladenie je ovládané štyrmi hardvérovými tlačidlami:
- F: +0,05 MHz
- R: -0,05 MHz
- FF: +0,5 MHz
- RR: -0,5 MHz
Na plošnom spoji sú umiestnené tieto tlačidlá a vedľa nich pin headery na pripojenie tlačidiel umiestnených na prednom paneli prijímača.
Ďalej je tu relé spínané bežným NPN tranzistorom. Relé pripája a odpája NF signál do stereodekódera. Je zopnuté oneskorene, aby sa zamedzilo rušivému šumeniu počas štartu prijímača, keď tuner už nabehol, ale mikrokontrolér ešte nie a tak to na malý moment zašumelo (tuner bol naladený asi na nejakú defaultnú frekvenciu). Mikrokontrolér si pamätá posledne naladenú frekvenciu v EEPROM a túto hneď po štarte nastaví na tuneri, takže keď sa pripojí signál cez relé, všetko je už nachystané. Relé je ovládané aj funkciou Mute, ktorá je dostupná len cez diaľkové ovládanie. Relé je prítomné na vstupe do stereodekódera a nie na jeho výstupe, aby stačilo typu single-pole.
LCD displej 16x2 je dobré použiť s podsvietením. Na doske je 12-pinový header na jeho pripojenie, a ktorý pin čo znamená je uvedené v schéme. Spôsob pripojenia je viac-menej katalógový. Trimrom RV2 sa reguluje kontrast.
Prijímač diaľkového ovládania je tiež vytiahnutý zo starej CRT TV. Mal som ich poruke viacero, rozhodol som sa použiť TK1836 a tomu zodpovedá aj pin header na doske. Samozrejme možno použiť aj TSOP1836, ale ten by sa nedal primontovať na panel, keďže ak je zo starej TV, má zvyčajne veľmi krátke vývody. Diaľkové ovládanie je programovo obluhované knižnicou IRMP, ktorá podporuje veľa protokolov.
Integrovaný obvod MAX232 je pripojený na RXD a TXD piny mikrokontroléra. Je to kvôli tomu, že RXD a TXD sú len TTL úrovne (do 5 V), a RS232 vyžaduje viac, k tomu ešte kladné aj záporné napätia, a to MAX232 práve zaručuje. Jeho výstup možno pripojiť k PC, napr. cez nejaký USB-RS232 prevodník, keďže porty RS232 sa už dávnejšie do PC nedávajú. Ak chceš trochu ušetriť a nepožaduješ tento výstup, môžeš MAX232 a jeho okolité súčiastky vynechať. Cez RS232 sa do PC posielajú údaje z RDS dekódera, a to okrem údajov zobrazených na displeji, aj ďalšie, napr. aktuálny dátum a čas, PI kód stanice, alternatívne frekvencie, typ vysielania...
Používateľský popis
Po zapnutí sa krátko zobrazí na displeji "FM Radio by Mek, www.mekweb.eu" a zopne sa relé, čím začne rádio hrať na posledne naladenej frekvencii, alebo 87,5 MHz, ak je zapnuté prvýkrát. Na displeji sa zobrazuje názov stanice, naladená frekvencia (napr. 102,55M) a názov hranej skladby alebo programu. Ten často býva širší než 16 znakov na displeji, a tak sa pomaly roluje. Ak nie je prítomný RDS signál, zobrazí sa len "FM, bez RDS".
Ako naučiť prijímač na nejaký konkrétny diaľkový ovládač, napríklad od TV? Jednoducho treba stlačiť tlačidlá R a F zároveň. Na displeji sa zobrazí "Učenie diaľ.ovl." a prijímač si vypýta kódy tlačidiel pre funkcie:
- Program 1 - 10
- RR, R, F, FF
- Mute
- Zapamätanie programu
V každom bode treba stlačiť na diaľkovom ovládači tlačidlo, ktoré v budúcnosti budeme používať na danú funkciu. Toto stačí spraviť iba raz, všetky nastavenia sú uložené do EEPROM.
Keď už máme diaľkový ovládač naučený, môžeme pomocou neho ladiť, používať funkciu Mute, zapamätávať programy a vyvolávať zapamätané programy.
Po naladení nejakej stanice stlačíme tlačidlo "Zapamätanie programu" na diaľkovom ovládači. Na displeji sa zobrazí výzva na zadanie čísla programu, pod ktorým chceme naladenú frekvenciu zapamätať. Stlačíme niektoré z tlačidiel Program 1 - 10 na diaľkovom ovládači a tým je frekvencia zapamätaná pod týmto číslom. Keď v budúcnosti chceme naladiť danú stanicu, stačí jednoducho stlačiť na diaľkovom ovládači tlačidlo príslušného programu. Takto si môžeme naplniť všetkých 10 pozícií.
Poznámky ku stavbe
V priloženom súbore na stiahnutie je KiCad projekt so schémou a návrhom plošného spoja. Rozmery plošného spoja sú 20x11,5 cm. Pri oživovaní, a najmä v prípade problémov veľmi pomôže SDR prijímač pre PC (s príp. up-converterom), ktorým sa dá skontrolovať výstup tunera v rozsahu 32-40 Mhz, alebo medzifrekvencia 10,7 MHz. A na LC obvody je potrebný dobrý LC meter, prípadne predladené LC páry, ktoré niekto iný nachystal (ale to je málo pravdepodobné). Cievky sú dobré vykuchané zo starých TV Tesla, footprinty na plošnom spoji počítajú práve s takýmto prevedením. Na výpočet rezonančnej frekvencie LC obvodov odporúčam túto stránku. A k tomu kvalitný LCR meter s meraním už v rozsahu nH, odporúčam DER EE DE-5000.
Niektoré súčiastky možno nahradiť inými:
- NE612 = NE602 = SA612 = SA602
- TBA120U = A223D = K174UR4 (K174УP4)
- napr. IRF630 namiesto BUZ11
Pozor - postup oživovania je taký, že treba začať bez osadeného tunera, a namiesto integrovaných obvodov všade používať objímky. Oživujeme na regulovateľnom zdroji 12 V s nastaveným prúdovým obmedzením na 250 mA, a toto prúdové obmedzenie nesmie byť v žiadnom bode presiahnuté (okrem prvotného nabitia kondenzátorov):
- Zapneme a skontrolujeme 12 V a 5 V na všetkých miestach objímok pre IO podľa schémy
- Vypneme
- Do objímky vložíme UC3843
- Zapojíme AGC potenciometer
- Zapneme
- Skontrolujeme +33 V na vývode 9 (zatiaľ neosadeného) tunera. Ak nie je +33 V, trimrom RV3 nastavime napätie
- Skontrolujeme napätia na ďalších vývodoch tunera: +5 V, AGC (meniteľné od 0 do 4 V v závislosti od AGC potenciometra)
- Vypneme
- Do objímky vložíme mikrokontrolér a pripojíme LCD displej
- Zapneme
- Nastavime kontrast displeja pomocou RV2 tak, aby bol zobrazený iba prvý riadok štvorčekov
- Vypneme
- Do objímky vložíme TDA7330B (od tohto momentu bude mať aj mikrokontrolér zdroj hodinového signálu)
- Zapneme
- Displej by mal zobraziť úvodnú hlášku "FM Radio by Mek, www.mekweb.eu"
- Vypneme
- Osadíme tuner
- Zapneme
- Displej by mal zobraziť úvodnú hlášku a potom hned prejsť do normálneho režimu. Relé by malo cvaknúť. Na displeji by malo byť "FM, bez RDS" a frekvencia 87,50M. Ak je stále zobrazená iba úvodná hláška, ide asi o problém v I2C komunikácii s tunerom.
- Vyskúšame ladenie 4 tlačidlami
- Pripojíme prijímač diaľkového ovládania
- Naučíme prijímač diaľkové ovládanie, čím ho aj vyskúšame (viď užívateľský popis vyššie)
- Vypneme
- Do objímky vložíme NE612
- Zapneme
- Vypneme
- Do objímky vložíme TBA120U
- Zapneme
- Vypneme
- Do objímky vložíme A290D
- Pripojíme LED na indikáciu stereo (pozor na správnu polaritu)
- Zapneme
- Vypneme
- Pripojíme výstup na slúchadlá
- Zapneme
- Naladíme frekvenciu, o ktorej vieme, že na nej vysiela silná stanica
- Doladíme ladiace cievky na najväčšiu hlasitosť a najmenšie skreslenie
- Doladíme trimer RV1, tak, aby stereo LED svietila
- Skontrolujeme funkciu prepínača mono/stereo (stačí niečím vodivým premostiť pin header)
- Vypneme
- Do objímky vložíme MAX232
- Pripojíme RS232 k PC a otvoríme terminálový program, napr. Putty. Konfigurácia portu má byť: baud rate 38400, 8N1
- Zapneme a skontrolujeme, či prišli na RS232 dáta
A to je všetko. Dúfam, že to šlo hladko :)