Již před nějakým časem, jsem tu popsal VKV FM přijímač s DSP obvodem RDA5807M. Když jsem nedávno objevil barevný grafický LCD displej Nextion, hned mne napadlo, že by se ta "Krystalka" dala upgradovat. A řekl jsem si, že když upgrade, tak nejen displej, ale také některé další prvky.
Poznámka na úvod:
Články, které zveřejňuji na tomto webu rozhodně nejsou míněny jako detailní návod na stavbu čehokoliv, i když to tak někdy může vypadat. Beru to spíše jako inspiraci, podnět k vlastním pokusům. Pokud vím, tak rád odpovím na dotazy, ale málokdy jsem schopen na dálku radit při oživování.
Vlastní DSP přijímač je smd integrovaný obvod RDA5807M velikosti necelé 3x3mm s deseti vývody (pouzdro MSOP10). Předpokládám, že jeho hlavní využití je jako FM rádio v mobilních telefonech. Stačí k němu připojit stejnosměrné napájení 1,8-3,3 V, krystal 32,768 kHz, anténu a sluchátka. Kmitočtový rozsah je 50-115 MHz v pěti rozsazích. Pro nás je užitečný rozsah 87-108 MHz. Krok ladění je defaultně 100 kHz, ale dá se nastavit 25 kHz, 50 kHz, 100 kHz a 200 kHz. Hlasitost se dá nastavit v 16 krocích (4 bity, tedy 0-15) s logaritmickým průběhem, má možnost nuceného přepnutí na MONO, zapnutí BASS-Boost (zdůraznění basů) a několik dalších nastavení, viz pdf datasheet. Přímo umí budit stereofonní nízkoohmová sluchátka 32 Ω. Veškeré nastavení se provádí pomocí I2C (TWI) (dvouvodičový interface/protokol). V doporučeném zapojení jsou ještě dvě cívky a paralelní LC rezonanční obvod na vysokofrekvenční oddělení stínění sluchátkového kabelu, který slouží zároveň jako anténa.
RDA5807 doporučené zapojení
Modul - rozměry
Zapojení vývodů modulu
Já jsem koupil modul, kde je integrovaný obvod již připájený na plošném spoji asi 10x10mm, na kterém je již i krystal, filtrační kondenzátor na napájecím přívodu a vazební kondenzátor na anténním vstupu. Při domácím bastlení je s ním mnohem snazší manipulace, než by byla s holým integrovaným obvodem. (pro informaci: cena za 5 kusů byla v přepočtu asi 56,-Kč včetně poštovného).
Jako řídící jednočip jsem opět použil Atmega328PB v smd pouzdře TQFP32 (používám vnitřní RC oscilátor 8MHz), nastavení hlasitosti je pomocí digitálního potenciometru MCP41010 (ovládání pomocí SPI). Koncové NF zesilovače jsou TPA6211A1 a displej je Nextion Basic, velikost 2,8 palce.
Osazena přední strana
Osazena zadní strana
Přední panel (DPS)
Napájení
Většina obvodů na destičce (Atmega328PB, MCP41010, TPA6211A1 a Displej) je napájena napětím 5V. Jediný modul s RDA5807M vyžaduje 3,3V. Proto jsem musel úrovně sinálů SDA a SCL pro interface I2C upravit pomocí dvou MOS-FET tranzistorů.
Vzhledem k poměrně velkému proudu, potřebnému pro koncové NF zesilovače je stabilizátor 5V (IC2) ve verzi 2 Amp. Aby se stabilizátor příliš nehřál, je ideální napájecí napětí cca 7,0-7,5V. Při vyšším napětí bude vyžadovat přiměřený chladič. Pokud stabilizátor neosadíme a vyřadíme i ochrannou diodu D1, lze celý přijímač napájet z jednočlánkové Lithiové baterie.
Stabilizátor 3,3V jsem použil LE33A (Low-drop). V podstatě je možné použít jakýkoliv 3,3V stabilizátor, který má vývod GND uprostřed. Pozor, mnoho 3,3V stabilizátorů v pouzdře TO-92 má vývod GND na straně (na rozdíl od většiny +5V stabilizátorů TO-92). Low drop stabilizátor bude nutný pouze v případě, že bychom to chtěli napájet z jednoho článku Lithiové baterie.
Použil jsem displej Nextion Basic, velikost 2,8 palce. Jeho výška (50mm) v podstatě určuje velikost plošného spoje přijímače. Připojen je přes HW UART jednočipu (RXD, TXD na úrovni 5V). Vzhledem ke kmitočtu jednočipu (8MHz) jsem nastavil přenosovou rychlost na 38400 Baud. Vyšší rychlost by již měla velkou chybovost. Dotykovou vrstvu displeje jsem použil pouze pro zadání vlastního jména stanice, uložené v paměti, pokud chceme jiný název, než jaký jsme přijali pomocí RDS.
Konfigurační soubor .tft pro displej jsem uložil, spolu s ostatními soubory, do sekce DOWNLOAD. Do displeje ho můžeme nahrát pomocí programu Nextion_Editor přes převodník USB-UART-5V-TTL (pokud ještě není displej připájen k DPS rádia a připojen k jednočipu), nebo i později pomocí SD karty (velikost micro). Soubor zkopírujeme na kartu, kartu zasuneme do slotu na vypnutém displeji, připojíme napájení a displej si sám soubor zkopíruje a nainstaluje. Je tam uložen rovněž soubor .HMI, který můžeme otevřít v programu Nextion_editor a případně si vzhled upravit podle svého vkusu.
Regulace hlasitosti (Nějaké informace v tomto článku)
Bylo by možné použít nastavení hlasitosti přímo v RDA5807M. 4 bity jednoho registru umožňují nastavení hlasitosti v 16ti krocích. Já jsem ale nechal toto nastavení na jedné pevné hodnotě a hlasitost nastavuji externě až za výstupem z DSP obvodu.
Použil jsem dva "digitální" potenciometry Microchip MCP41010 v pouzdře SO8. Jedná se v podstatě o odporový dělič napětí, který lze přepínat v 256 krocích. Přepínání se ovládá z jednočipu pomocí SPI interface. Protože jde o "lineární" potenciometr (každý z 256 kroků je vždy o stejnou hodnotu), vytvořil jsem tabulku dvaceti hodnot v přibližně logaritmické řadě. Tím pádem můžeme nastavit 20 kroků hlasitosti.
Za NF výstupy z DSP obvodu RDA5807M jsem měl původně dělič napětí, protože minule použitý výkonový zesilovač TDA7052A měl až zbytečně veliké napěťové zesílení. Napěťový dělič jsem teď musel zrušit, protože nově použitý NF zesilovač má menší zesílení, takže vyšší napětí na vstupu se hodí. Na destičce tedy nejsou osazeny rezistory R6 a R8. Rezistory R5 a R7 jsem dal 10Ω, protože jsem neměl 0Ω. Vazební kondenzátory C13 a C14 by mohly být 1µF, nebo i menší. Dal jsem 10µF, protože jsem jiné neměl.
Jsou použity 2 kusy integrovaného obvodu TPA6211A1. Jedná se o analogový zesilovač ve třídě AB. Je zapojen v podstatě jako invertující operační zesilovač. Pomocí rezistorů R9 a R10 je nastaveno potřebné zesílení. Výstup je v můstkovém zapojení. Tím pádem se reproduktor zapojuje mezi dva výstupy, ne proti zemi. Jedná se fyzicky o poměrně malý smd integrovaný obvod (pouzdro VSSOP8), a vzhledem k rozteči vývodů musejí být i pasivní součástky okolo ve velikosti maximálně 0603. Proto jsem nechal tyto součástky (a rovnou i některé další smd) osadit u výrobce DPS.
Rezonanční obvod na anténním vstupu
V doporučeném zapojení v datasheetu k RDA5807M je na anténním vstupu jednoduchý rezonanční obvod. Pro rezonanci na středu FM VKV pásma mi vyšlo 6 závitů drátem 0,5 až 0,8 mm na průměru 5 mm (válcová část vrtáku). K tomu paralelně kondenzátor 22pF. Zdá se mi, že se tímto obvodem nepatrně zlepšila selektivita (například se tolik neprojevuje rušení od počítače v bezprostřední blízkosti). Ale klidně může jít jen o placebo efekt. Rezonanční obvod je hodně zatlumený a při měření pomocí MiniVna je rezonanční křivka velmi plochá.
Ovládání
Nejsem velkým příznivcem ovládání přístrojů pomocí dotykové obrazovky. Zvláště u takto malého displeje mi to přijde dost nepraktické. Proto se většina funkcí ovládá pomocí dvou rotačních enkodérů a tří tlačítek. Pouze nastavení jména stanice v paměti je pomocí dotykové vrstvy displeje, jak je již zmíněno výše. V podstatě jsem to udělal jen pro to, abych si vyzkoušel čtení hodnot z dotykového displeje pomocí jednočipu.
Rotační Encodér Re1
Nastavuje kmitočet, nebo výbět stanice z paměti.
Spínač v ose přepíná režim ladění, nebo výběr z paměti.
Dlouhý stisk spínače v ose uloží právě naladěnou stanici do paměti. (Druhým, krátkým stiskem se potvrdí uložení)
Rotační Encoder Re2
Nastavuje hlasitost
Spínač v ose přepíná jas displeje (4 hodnoty).
Podržení spínače v ose při zapnutí napájení vymaže veškeré uložené stanice.
Tlačítko Bt1:
V režimu ručního ladění zapne skenování pásma směrem nahoru.
Tlačítko Bt2:
Krátký stisk přepíná Mono/Stereo.
Dlouhý stisk přepíná audio korekce Flat/Bass Boost.
Tlačítko Bt3:
V režimu ručního ladění zapne skenování pásma směrem dolů.
Dotykový displej
U stanice uložené v paměti můžeme dotykem na zobrazený kmitočet nebo jméno stanice skočit do režimu editace jména (názvu stanice).
Název může mít maximálně 14 znaků
Tu část firmware, která dekóduje a zobrazuje RDS informace jsem v podstatě zkopíroval z minulé verze. Jak jsem již kdysi napsal, není to moc dokonalé, protože tomu moc nerozumím. Umí to sice zobrazit název stanice, ale další, pokročilejší funkce RDS to ignoruje.
Na internetu jsem našel stránky OE3HBW. Chris docela detailně popisuje možnosti obvodu RDA5807M, včetně vysvětlení registrů a ukázek kódu v jazyce BASCOM_AVR. Vyzkoušel jsem jeho verzi zobrazení RDS informací, která funguje mnohem lépe než ta moje. Kromě jiného například zobrazuje i přijatý reálný čas. Původně jsem uvažoval, že bych ji použil, ale pak jsem od toho upustil, protože bych musel docela zásadně předělat celý firmware. (V hlavní smyčce programu by se dekódovaly a zobrazovaly informace z RDS, zatímco ostatní funkce - ladění a podobně, by byly odskoky z této smyčky. Teď to mám přesně obráceně.)
Mechanické provedení
FM přijímač sestava zepředu
FM přijímač sestava
FM přijímač funkční
Celý FM přijímač je na jednom plošném spoji. Většina aktivních i pasivních součástek je v smd provedení. Pouze tlačítka, rotační enkodéry, stabilizátory napětí, velké elektrolytické kondenzátory a konektory jsou THT. (Občas mi někdo e-mailem vytýká, že používám ty smd součástky. Bohužel, spousta součástek se dnes již v klasickém THT provedení nevyrábí a pokud ano, jsou mnohem dražší, často i několikanásobně).
Aby se mi tam vešel displej 2,8 palce, musel jsem destičku poněkud zvětšit oproti minulé verzi. Tím pádem jsem mohl dát na přední panel i druhý rotační enkodér, takže nastavení kmitočtu a hlasitosti jsou teď nezávislé a není potřeba přepínat funkci enkodéru tlačítkem. Aby rotační enkodéry příliš nevyčnívaly dopředu, jsou přišroubovány k plošnému spoji zezadu pomocí centrální matice a vývody jsou propojeny s DPS kousky drátku.
Displej je přišroubován k DPS přijímače čtyřmi šroubky M3 a propojen čtyřmi kousky drátku. Přední panel je opět vyroben jako plošný spoj. Sestavit vše dohromady vyžaduje několik šroubků M3x4mm, matiček M3, několik podložek, dvě dvojice distančních sloupků a také chvilku přemýšlení. Občas je potřeba doladit rovnoběžnost přidáním nějaké podložky. Přední panel přesahuje DPS přijímače na všech stranách o 2mm. Tím je připraven na vyrobení krabičky spájením z materiálu na výrobu plošných spojů. K tomu jsem se ale zatím nedostal.
V sekci DOWNLOAD je uložen jeden .zip soubor obsahující Gerber soubory na výrobu plošného spoje. Dále jsou tam .hex a .bin soubory na nahrání do jednočipu Atmega328PB a také soubory .HMI a .tft pro konfiguraci displeje. Jsou tam také fotografie ve větším rozlišení. Až trochu zpřehledním a okomentuji zdrojový kód v Bascom_AVR, uložím ho sem také.
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ů.