Řešení zvukového výstupu (tóny) pro PIC16F1938

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Odpovědět
Zpráva
Autor
Uživatelský avatar
VirtualMan
Příspěvky: 63
Registrován: 18 bře 2005, 00:00
Bydliště: Brno

Řešení zvukového výstupu (tóny) pro PIC16F1938

#1 Příspěvek od VirtualMan »

Ahoj!
Dnešek jsem trávil marným hledáním řešení zvukového výstupu pro PIC (16F1938, interní osc 16 MHz).
Původně jsem si myslel, že to obejdu nějakým PWM výstupem na kterém budu jen nastavovat frekvenci, duty nechám na 50% a repráček se s tím obdélníkem nějak srovná. Jenomže jsem zjistil, že na PWM nenastavím nižší frekvenci než 1 kHz. (no, měl jsem pochybnosti i o dosažitelné hlasitosti...)
Tak jsem začal hledat jějaký chytrý obvod, který bych pověsil na i2C. Našel jsem KX1400.
Bylo mi na něm sympatické že nejen umí přehrávat uložené zvuky, ale i vydávat tóny o zadané frekvenci, dá se u něj řídit výstupní hlasitost a obsahuje nf zesilovač třídy D, takže i na 5 nebo 3.3 V by mohla hlasitost být dobrá.
Nepatrná spotřeba (1uA ve standby), široký rozsah napájecího napětí (2.7-5.5V), a to všechno v SOIC 20 pouzdře. no zkrátka miláček.
Má jedinou nevýhodu - že už se nedělá :(

A aby těch požadavků nebylo málo, rád bych něco, u čeho se dá tón třeba i měnit (ulaďovat) Něco podobného můžete slyšet třeba tady. To by se s tím KX1400 asi dalo.
Nejraději bych byl, kdyby to zvládlo i dva nebo více tónů současně (aby se na tom dalo zahrát něco jako složený akord)

Napadá vás něco? Máte s nějakým takovým obvodem třeba i vlastní dobré zkušenosti?[/url]

Díky za každé nakopnutí správným směrem!
Vladimír
Uživatelský avatar
weed_smoker
Příspěvky: 2673
Registrován: 02 pro 2011, 00:00
Bydliště: Jaroměř

#2 Příspěvek od weed_smoker »

Napadá mě COVOX,třebarayerův bez těch 4 diod BAT (ty jsou tam jenom na získání napájení z výstupů ovládání,místo nich se dá k OZ 5V z aplikace).Ovládá se to jako převodník D/A (jde s tim generovat vpodstatě cokoliv).Nevýhoda je,že to sebere celej jeden port MCU a někdy složitost kódu.
Uživatelský avatar
FHonza
Příspěvky: 1443
Registrován: 20 lis 2012, 00:00
Bydliště: Praha

#3 Příspěvek od FHonza »

Při stavbě hraček pro děti (železniční přejezd a ZOO) jsem se pro zvukový výstup inspiroval zde. Je to vlastně primitivní 1bit D/A převodník. Jako "zesilovač" jsem použil klasické zapojení s LM386. Výsledek je překvapivě dobrý.
Uživatelský avatar
VirtualMan
Příspěvky: 63
Registrován: 18 bře 2005, 00:00
Bydliště: Brno

#4 Příspěvek od VirtualMan »

Nojo, no právě to je ten problém, že u těchto řešení musím zaměstnat procesor kompletním generováním té sínusovky. Já bych moc rád nějaké řešení s obvodem podobným tomu, který jsem uvedl prve, do kterého jen po sběrnici pošlu frekvenci a dobu trvání, a dál se nestarám. On už je ten procesor tak dost zaměstnaný provozem na sériové lince a spoustou matematických operací, které musí zvládat v reálném čase :(
Uživatelský avatar
serviceman
Příspěvky: 4093
Registrován: 09 črc 2013, 00:00

#5 Příspěvek od serviceman »

Tak jeden další procesor.
Nebojte se skloňovat (i cizí slova).
Uživatelský avatar
VirtualMan
Příspěvky: 63
Registrován: 18 bře 2005, 00:00
Bydliště: Brno

#6 Příspěvek od VirtualMan »

... a zase to napadlo někoho jiného dřív než mě.... :evil:
No, možná to tak dopadne. Ono to ve výsledku může být i levnější řešení, než s nějakým specializovaným obvodem.
Já jsem tak nějak tajně doufal, že třeba někdo zná nějakou novější variantu toho KX1400 nebo nějaký podobný. No, co naplat, asi se už nic takového nedělá... :cry:
Uživatelský avatar
FHonza
Příspěvky: 1443
Registrován: 20 lis 2012, 00:00
Bydliště: Praha

#7 Příspěvek od FHonza »

A co něco takového ? Na 1GB se vejde hodně vzorků
Uživatelský avatar
VirtualMan
Příspěvky: 63
Registrován: 18 bře 2005, 00:00
Bydliště: Brno

#8 Příspěvek od VirtualMan »

No, nevyčetl jsem nikde, že by to umělo generovat zvuk, asi jen přehrávat. S nějakým zesilovačem už to zabere trochu víc místa, než bych tomu chtěl obětovat.
Přesto dík za snahu. Každý tip může být užitečný, třeba i pro někoho, kdo řeší podobný problém.
Dneska se mi podařilo najít eshop, kde ten KX1400 mají za příjemné dva dolary. Má to jediný háček. Poštovné do ČR mi to napsalo 60 USD :( Takže vlastně zase nic..
Uživatelský avatar
Celeron
Příspěvky: 20524
Registrován: 02 dub 2011, 00:00
Bydliště: Nový Bydžov

#9 Příspěvek od Celeron »

To je odrazovací poplatek pro rozvojové země. Taky jsem se s tím už párkrát setkal:cry:
Jirka
Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“