DTMF dekodér

Tónová volba DTMF se používá hlavně v telekomunikační technice, např. k vytáčení telefonního čísla, ovládání nejrůznějších služeb přes telefon, jako selektivní volba u radiostanic atd. Jednotlivým znakům jsou přiřazeny různé dvojice tónů. Popisovaný dekodér zobrazuje přijaté znaky na LED displeji a ukládá je do paměti, odkud je lze později vyvolat. Nezávisle na tom umožňuje určitou sekvencí znaků zapínat a vypínat vhodně připojený přístroj. V praxi může být dekodér zabudován např. ve vysílači a napojen na modulační linku, vysílač lze poté na dálku zapínat a vypínat nebo lze například spouštět parametr indikující dopravní hlášení TA v RDS. Potřebná sekvence tónů může být součástí jinglu.

dtmfdec.jpg (28065 bytes)

Technické údaje:

Napájení: 8-20 V, cca 20 mA
Počet paměťových míst: 54

Schéma

dtmfdecs.gif (7459 bytes)

Součástky

R1 - trimr 100 k mini
R2 - 82 k
R3 - 100 k
R4 - 270 k

C1, C2, C3 - 100 nF mini
C4 - 10 uF
C5 - 27 pF

D1 - 1N4148
D2 - Zenerova dioda 2.7 nebo 3 V, 0.5 W, viz dále
D3 - HDSP-5701, LED displej

IO1 - 78L05
IO2 - MT8870
IO3 - PIC16F84 + patice, viz dále
IO4 - 74HC164

X1 - krystal 3,579545 MHz, tolerance 0.1 %
Tl1, Tl2 - tlačítko mini, např. GM: P-B1720B

Download programu pro PIC

dtmf_dec.hex - do programátoru
dtmf_dec.asm - pro další úpravy

Nastavení v programátoru: Oscilátor: XT, WDT: on

Plošný spoj je zde.

Popis zapojení

K dekódování DTMF signálů je použit známý obvod MT8870, který vyžaduje jen minimum dalších součástek. Úroveň vstupního signálu se nastaví trimrem R1. Odpory R2 a R3 určují zesílení vstupního zesilovače. Kmitočet oscilátoru je použit i pro taktování řídicího obvodu - mikrokontroléru PIC16F84. Zapojení displeje je běžné s posuvným registrem 74HC164. Pro zjednodušení je displej napájen pouze přes Zenerovu diodu, kdy jas displeje poněkud závisí na tom, kolik segmentů je rozsvícených. Osvědčilo se spojení dvou 3 V diod paralelně. Pozor na to, že vyšší jas displeje znamená výrazně vyšší proudový odběr, což může vadit hlavně při napájení z baterie.

Popis funkce

Dekodér umí zobrazit všechny znaky použité v DTMF, tedy číslice 0 až 9, písmena A až D, znak "*" jako "H" a znak "#" jako "o". Další použité symboly jsou "-" pro pauzu, "_" pro prázdnou pozici a tři vodorovné pruhy oddělují poslední a první pozici.

Přijímané znaky se ihned zobrazují na displeji a zároveň postupně obsazují jednotlivé pozice v paměti. Při naplnění paměti se znaky ukládají na poslední pozici a přepisují zde předchozí. Pokud je prodleva po posledním přijatém znaku delší než asi 4 sekundy, vloží se znak pauzy. Tím lze skupiny znaků časově oddělit. Pokud zrovna nejsou přijímány žádné znaky, lze tlačítky v paměti listovat, stiskem obou tlačítek dojde k resetu a vyprázdnění paměti. Během příjmu znaku svítí navíc tečka.

Pokud je přijata sekvence znaků 32065, objeví se na výstupu RA2 log. 1, pokud je přijata sekvence znaků 48976, objeví se na výstupu RA2 log. 0. Tato funkce pracuje bez ohledu na zaplnění paměti. Prodleva mezi jednotlivými znaky nesmí být delší než asi 4 sekundy. Po zapnutí je výstup RA2 ve stavu log. 0. Při resetu stiskem obou tlačítek se stav nezmění.

Příklad použití

Pro dálkové ovládání vysílače může být použito např. následující zapojení:

dtmfdcon.gif (2097 bytes)

Úpravy zapojení

Při využití dekodéru pouze pro spínání výstupem RA2 lze vypustit součástky IO4, D2, D3, Tl1 a Tl2.

Program pro PIC si můžete upravit dle libosti.