Zvukový přehrávač v jednočipuNávod jak snadno zkonvertovat libovolný zvukový záznam pro jednočip i příklad jeho použití v osmibitovém procesoru s 1 a 1,5 bitovým audio výstupem.Vzhledem k rostoucí oblibě nejrůznějších multimediálních aplikací přichází stále častěji požadavek i na vývoj zařízení schopného mluvit lidskou řečí, či přehrávajícího melodie. U větších projektů není takový požadavek žádný problém. Zvukový záznam ve WAV, případně i MP3 formátu se uloží do velké externí Flash paměti a poté se přehrává pomocí kvalitního D/A převodníku či přímo audio kodeku. Pokud však pracujeme na menší aplikaci, kde není kladen přílišný nárok na věrnost a kvalitu výstupního zvuku, můžeme použít následující aplikaci. Principy D/A převodu: - Použít externího D/A převodník, případně i celého audio kodek, kterých je v dnešní době doslova nepřeberné množství. Takové řešení přináší nejvyšší kvalitu generovaného signálu, je však především vykoupeno vyšší cenou výsledné aplikace. - Druhou možností je použít osm či dokonce šestnáct I/O pinů procesoru a vytvořit na nich jednoduchý odporový D/A převodník. Výhodou takového řešení je solidní zvukový výstup (viz například známé převodníky na paralelní port starších počítačů), nevýhodou však příliš velká ztráta I/O pinů. - třetí a závěrečnou možností, o které je i tento článek je použít na generování analogového signálu jeden, maximálně dva I/O piny, doplněné o primitivní integrační článek. Nevýhodou je potřeba výpočtu (převodu) audio záznamu. Výhodou je však značná úspora jak cenová a pinová, tak i kapacitní na uložení zvukového záznamu. Ten totiž není potřeba ukládat v osmi či šestnácti bitech, postačí totiž jednobitový stream. 1-bit a 1,5-bit bitstream:
Jelikož se jedná o integrační
články, je princip samotného D/A převodu jednoduchý. Jakmile
je výstupní pin procesoru přepnut na logickou jedničku, začne
se kondenzátor C nabíjet přesně danou rychlostí, určenou násobkem
hodnot R*C. Je-li tedy například potřeba vytvořit napěťový
střed pro „ticho“ ve zvukovém záznamu, stačí neustále měnit
stav výstupního pinu z 1 na 0 a zpět. Pokud je následně potřeba
vygenerovat napětí o určité velikosti, stačí na požadovanou
dobu zapnout či naopak vypnout výstupní pin. Samozřejmě je pro správnou funkci potřeba, aby zatížení kondenzátoru C následným zesilovačem bylo pokud možno minimální. Pak je i přes značnou jednoduchost D/A převodníku i úspory v objemu zvukového záznamu dosaženo více než uspokojivých výsledků. Jediným problémem tedy zůstává samotný převod audio záznamu do vhodného jednobitového streamu. BTc Sound Encoder 2.0:
Program je možné zdarma stáhnout z oficiálního webu autora, který je uveden na konci článku. Stejně tak je možné na konci článku stáhnout zálohu tohoto programu doplněnou o některé ze zde publikovaných ukázek. Samotné ovládání programu je
velice intuitivní. Volbou File->Open wave file se načte
originální zvukový záznam.
Nyní již stačí v dolní části
hlavního okna programu zvolit zda chceme použít jednobitový
(jednopinový) či jedenapůlbitový (dvoupinový) výstupní
integrační článek (volba Alogr. type). Při použití druhé
volby doporučuji přečíst si programový help, kde se dozvíte
jak z datového streamu získat data pro druhý pin. Tím je základní nastavení
dokončeno. Případně je možné v menu Edit ještě zvolit některý
ze speciálních filtrů. Ve vygenerovaném souboru, případně i v menu Special->Output Filter Model je možné získat hodnoty pro potřebný integrační článek.
Příklady výsledných
zvukových záznamů: Originální záznam: 1,5bit BTc16: 1bit BTc16: 1,5bit BTc64: 1bit BTc4: Jak je ze záznamů patrné, výsledný zvukový výstup je i při nejnižší kvalitě dostatečný pro celou řadu aplikací. Vyšší kvalita a vyšší vzorkovací frekvence pak zajistí i velice uspokojivý výsledek. Samozřejmě ani nejvyšší kvalita se nikdy nemůže rovnat použití externího D/A převodníku a tak pro profesionální použití vždy doporučuji nešetřit. Konkrétní aplikace s
jednočipem: Je v něm použit osmibitový procesor PIC s interní pamětí Flash velikosti 32kB. Do té je uložen jak jednoduchá přehrávací smyčka, tak i celý datový stream. Aby byla výsledná kvalita zvuku alespoň dobrá, byla použita vzorkovací frekvence 16kHz. Tomu odpovídá i vyšší nárok na objem audio dat a tak bylo možné do procesoru uložit jen několik vteřin záznamu. Zde je zvukový záznam pořízený připojením kondenzátoru C5 přímo na vstup Line-In zvukové karty. To samozřejmě není nejideálnější řešení a v praxi by mělo být použito oddělení například operačním zesilovačem. Firmware i s uloženým zvukovým záznamem je ke stažení na konci článku. Celé zapojení bylo sestaveno na kontaktním poli.
Závěr: Odkazy & Download:
Upozornění!
Všechny zde zveřejněné články, konstrukce a návody mají sloužit pouze jako studijní materiál a zdroj informací. Autor samotného článku, ani správce webu nikoho nenabádá k jejich stavbě ani případnému porušení zákonů té které země. Neručí ani za případné újmy na majetku, natož pak na zdraví.
|
![]() |
![]() |
(c) 2000 - 2008 Pandatron.cz, elektrotechnický magazín ISSN 1803-6007 |
Napište nám | Reklama | Vše o Pandatronu | RSS export |