|
Nějaký čas jsem v mých QRP rádiích používal jako NF zesilovač integrovaný obvod TDA7052A. Jedná se o NF zesilovač v můstkovém zapojení, jehož zesílení se nastavuje stejnosměrným napětím na řídícím vstupu. Průběh je v závislosti na napětí přibližně logaritmický. Tím pádem jsem nepotřeboval logaritmický potenciometr a hlasitost jsem mohl ovládat z jednočipu, nastavením stejnosměrného napětí pomocí PWM.
Doplněno 5.9.2023
|
Tenhle integrovaný obvod se však již nevyrábí a zdá se že zásoby prodejců došly. Jelikož jsem za něj nenašel náhradu, přemýšlel jsem, jak nastavovat hlasitost bez použití mechanického logaritmického potenciometru.
Jako jedna z možností se jeví použití digitálního potenciometru. Jde o integrovaný obvod, který obsahuje vícestupňový odporový dělič napětí, jehož výstup se nastavuje pomocí nějakého sériového protokolu. Obvykle I2C, nebo SPI. Ten napěťový dělič má obvykle 64, 128 nebo 256 kroků, takže při použití na nastavení hlasitosti jde prakticky o plynulou změnu. Všechny, které jsem objevil, mají "lineární" průběh, což zase pro nastavení hlasitosti není zrovna ideální.
Abych je vyzkoušel, rozhodl jsem se postavit si malý stereofonní zesilovač s obvody LM386, kde na nastavení hlasitosti použiji dvojici MCP41050 (hodnota 50 kΩ, výrobce Microchip) v smd pouzdře SOIC-8. Jako ovládací MCU jsem použil Attiny44. MCP41050 se ovládají pomocí SPI a spotřebují tedy 3 piny jednočipu (pouze do nich posílám data, nepotřebuji je číst).
Firmware pro Attiny44 jsem napsal v mém oblíbeném Bascom-AVR (verze 2.086). Používá vnitřní RC oscilátor jednočipu 8MHz.
První verze:
V různých diskuzích a článcích na internetu jsem našel, že se lepší průběh hlasitosti s lineárním potenciometrem zajistí připojením pevného odporu velikosti přibližně 1/10 hodnoty potenciometru na výstup mezi běžec a zem.
Hodnoty jsem nastavoval po jedné, tedy 256 kroků (0-255). Zkoušel jsem na běžec potenciometru připojovat různé odpory, ale žádný zázrak to nebyl. Průběh se sice nějak nepatrně měnil, ale nijak mne to nenadchlo.
Naproti tomu nastavení balance (vyvážení stereo) fungovalo docela pěkně. Samozřejmě jen uprostřed rozsahu hlasitosti. Aby to fungovalo rozumně i na okrajích, musel bych použít druhý potenciometr. (Použití pouze jednoho potenciometru zároveň na hlasitost i vyvážení je docela problém :-)
Využití 4 tlačítek a 3 LED:
- Bt1: Hlasitost +
- Bt2: Hlasitost -
- Bt3: Balance L
- Bt4: Balance R
- LED1, LED2: Indikují dosažení krajních hodnot
- LED3: Zablikáním Indikuje uložení hodnot do Eeprom
Druhá verze:
Nejdříve jsem si vytvořil tabulku (pole) šestnácti hodnot (17 včetně nuly), kdy vždy následující číslo je přibližně 1,41 násobkem předchozí hodnoty. Musel jsem je samozřejmě zaokrouhlit na celá čísla. Do MCP41050 pak posílám data z této tabulky. Takto je regulace hlasitosti mnohem přirozenější. U horního konce rozsahu se mi ale zdály příliš velké skoky v hlasitosti, a tak jsem přidal ještě 3 mezihodnoty, pro jemnější nastavení. Teď má tedy tabulka 20 hodnot včetně nuly.
Využití tlačítek a LED:
- Bt1: Hlasitost +
- Bt2: Hlasitost -
- Bt3: Mute
- Bt4: Unmute
- LED1, LED2: Indikují dosažení krajních hodnot
- LED3: Zablikáním indikuje uložení hodnot do Eeprom. Trvalý svit indikuje MUTE.
Zdá se, že tento druhý způsob by mohl být ve QRP rádiích docela použitelný. Nevýhoda oproti původnímu řešení s TDA7052A je, že to spotřebuje 3 piny jednočipu, tedy o 2 více.
Doplněno 5.9.2023
Přišlo mi pár dotazů (ano, přeně 2) na program pro Attiny44 a dokumentaci pro plošný spoj, tak jsem oboje uložil jako .zip soubor do sekce DOWNLOAD. Gerber soubory v jednom .zip souboru jsou přesně tak, jak jsem je poslal čínskému výrobci (JLCPCB). Program je pro výše uvedenou druhou verzi. Ještě připomínám, že zdrojový kód je v jazyce pro BASCOM-AVR (Není to .ino pro Arduino). (Zkompilovaný binární kód zabírá v paměti jednočipu asi 37%, tedy cca 1,5kB. Data v Eeprom paměti zabírají přesně 2 bajty.)
Konfigurační bity souhrnně:
- Lockbits:FF
- Fusebits:E2
- Fusebits High:DC
- Fusebits Extended:FF
Jarda, OK1HDU