- dwa ośmiobitowe potencjometry cyfrowe o rezystancji 10 kΩ (lub innej, po zmianie układu scalonego),
- dwa jednoobrotowe potencjometry mechaniczne do zadawania położenia ślizgacza w układach cyfrowych,
- regulacja obu kanałów oddzielna lub współbieżna (wybierana zworką),
- dwa tryby działania potencjometru cyfrowego: najniższa pozycja może być odłączana od zacisku wejściowego lub nie, wybierane zworką,
- możliwość dodania rezystorów dla regulacji pseudo-logarytmicznej,
- zasilanie napięciem stałym 3…5 V,
- pobór prądu około 6 mA przy zasilaniu 5 V.
W jaki sposób uczynić potencjometr regulacji głośności (niemal) wiecznym? Audiofilskie regulatory wykonane na hermetycznych przekaźnikach sygnałowych są z pewnością trwałe, ale drogie i potrafią mieć niemałe gabaryty. Z kolei zwykłe, jednoobrotowe potencjometry mechaniczne ze ścieżką węglową z czasem się zużywają, choćby były nie wiadomo jak dobrze wykonane. Z kolei cena tych bardzo dobrych jakościowo potrafi powalić na kolana.
Czy można uczynić potencjometr za kilkadziesiąt groszy tak trwałym, jak najdroższe regulatory, a jednocześnie całkiem niedrogim? Owszem! Wystarczy sprzęgnąć go z potencjometrem cyfrowym, który będzie pobierał z tego pierwszego informację o położeniu ślizgacza. Przy okazji, rozrzut między kanałami będzie zdecydowanie mniejszy niż ma to miejsce w typowych potencjometrach stereofonicznych.
Budowa i działanie
Schemat ideowy układu znajduje się na rysunku 1. Układ US1 typu MCP42010 to półprzewodnikowy, dwukanałowy, ośmiobitowy potencjometr liniowy o rezystancji ścieżek oporowych wynoszącej 10 kΩ. Steruje się nim poprzez interfejs SPI, którym z kolei zarządza mikrokontroler US2 typu ATtiny24A. Rezystor R1 blokuje wejście sygnału zegarowego magistrali SPI w sytuacji, kiedy mikrokontroler nie nadaje. Rezystory R1 i R2 pozwalają na uzyskanie pseudo-logarytmicznej charakterystyki regulacji zamiast liniowej, (co wyjaśnię w dalszej części artykułu). Złącza J1 i J2 są podłączone do wyprowadzeń potencjometrów i opisane tak, jak gdyby sterowany głośnością:
- IN (wejście) - górny kraniec ścieżki oporowej, dołączany do OUT przy maksymalnym ustawieniu,
- GND (masa) - dolny kraniec ścieżki oporowej, dołączany do OUT przy minimalnym ustawieniu,
- OUT (wyjście) - ślizgacz potencjometru, "przesuwający" się pomiędzy IN a GND.
Wspomniany już mikrokontroler US2 można programować poprzez złącze J3. Wyprowadzono na nie linie interfejsu ISP, przeznaczonego do programowania mikrokontrolerów z rodziny AVR. Rezystory drabinki RN1 podciągają te wyprowadzenia do dodatniego potencjału zasilania, kiedy nie są używane. Kondensatory C2 i C3, ulokowane blisko wyprowadzeń zasilania US2, odsprzęgają jego zasilanie.
Nastawy potencjometru cyfrowego są pobierane z przetwornika analogowo-cyfrowego, który został wbudowany w mikrokontroler. Potencjometry mechaniczne P1 i P2 zostały włączone jako dzielniki napięcia zasilającego, więc na ich ślizgaczach pojawia się (względem masy) napięcie wprost proporcjonalne do kąta skręcenia osi. Obwody RC filtrują to napięcie z zakłóceń, w tym również z trzasków, jakie mogłyby wprowadzać potencjometry mechaniczne po dłuższej eksploatacji. Zawężają również pasmo szumowe, więc na wyjściu przetwornika pojawia się dziesięciobitowa liczba odpowiadająca położeniu ślizgacza każdego z potencjometrów. Ucinając dwa najmłodsze bity można sterować wprost potencjometrem cyfrowym, bez dodatkowego skalowania. Zworką JP2 można sprawić, by obie sekcje potencjometru cyfrowego regulowały się współbieżnie, więc można nie montować jednego z potencjometrów mechanicznych i łatwo uzyskać regulacją stereofoniczną.
Zworka JP1 służy do ustawiania trybu pracy potencjometru cyfrowego. Jeżeli jest rozwarta, wówczas linia MODE przyjmuje wysoki stan logiczny, co mikrokontroler interpretuje jako konieczność sterowania potencjometrem cyfrowym używając jedynie jego rejestrów: wartość 0 (0x00) odpowiada najniższej pozycji, zaś 255 (0xFF) najwyższej. Jeżeli świat byłby idealny, wówczas ta zworka nie byłaby potrzebna, lecz histogram znajdujący się na rysunku 2 świadczy o tym, że niestety tak nie jest. Na tymże histogramie przedstawiono liczbę układów spośród badanej grupy 400 sztuk, które miały określoną rezystancję ślizgacza. Widać wyraźnie, że przeważająca większość badanych sztuk znalazła się w przedziale 51…54 Ω przy zasilaniu napięciem 5 V.
Co to oznacza? Po ustawieniu takiego potencjometru cyfrowego na minimum, będzie on nadal "przepuszczał" sygnał. Dokładniej, wprowadzi tłumienie wynoszące około 46 dB - zakładając, że "górna" rezystancja dzielnika napięciowego wyniesie 10 kΩ, zaś "dolna" 53 Ω. To nie jest wiele, bowiem w układach audio spotyka się regulację głośności o dynamice 60 dB lub więcej, chcielibyśmy też całkowitego wyciszenia po ustawieniu gałki regulatora w skrajnie lewej pozycji. Cóż więc można zrobić?
Najprostszym rozwiązaniem, które zostało w tym projekcie zostało zaimplementowane, jest wyłączenie potencjometru cyfrowego. Służy do tego linia SHDN, która w trakcie normalnej pracy znajduje się w wysokim stanie logicznym. Jeżeli jednak zworka JP1 będzie zwarta, wówczas mikrokontroler przełączy SHDN w stan niski po skręceniu obu potencjometrów P1 i P2 na minimum. Wtedy zacisk IN jest odłączany od ścieżki rezystancyjnej, natomiast OUT i GND są ze sobą zwierane, rezystancją rzędu 50 Ω. Umożliwia to całkowite wyciszenie sygnału audio po skręceniu obu potencjometrów na minimum.
Montaż i uruchomienie
Układ został zmontowany na jednostronnej płytce drukowanej o wymiarach 50×60 mm, której schemat został pokazany na rysunku 3. W odległości 3 mm od krawędzi płytki znalazły się cztery otwory montażowe, każdy o średnicy 3,2 mm.
Montaż proponuję rozpocząć od elementów o najmniejszej wysokości obudowy, czyli rezystorów. Pod układy scalone proponuję zastosować podstawki. Na sam koniec polecam wlutować potencjometry P1 i P2 lub złącza śrubowe (np. ARK3/500 z oferty sklepu AVT) którymi można podłączyć te potencjometry zamontowane w innym miejscu, na przykład na panelu czołowym obudowy. Dystans między środkami osi potencjometrów wynosi 30 mm. Gotowy układ można zobaczyć ze szczegółami na fotografii tytułowej.
Na etapie uruchamiania jest konieczne zaprogramowanie pamięci Flash mikrokontrolera dostarczonym wsadem oraz zmiana jego bitów zabezpieczających. Oto ich nowe wartości:
Low Fuse = 0xE2
High Fuse = 0xDD
Szczegóły są widoczne na rysunku 4, który zawiera widok okna konfiguracji tychże bitów z programu BitBurner. W ten sposób zostanie uruchomiony wewnętrzny generator RC o częstotliwości oscylacji 8 MHz oraz Brown-Out Detector, który wprowadzi mikrokontroler w stan zerowania, jeżeli jego napięcie zasilające spadnie poniżej 2,7 V. To znacznie zmniejsza ryzyko zawieszenia się mikrokontrolera podczas uruchamiania.
Poprawnie zaprogramowany układ jest od razu gotowy do działania. Zasilać go można napięciem z przedziału 3…5 V, choć polecam wartość wyższą, o czym dalej. Warto, aby owe napięcie było dobrze filtrowane, a najlepiej stabilizowane. Pobór prądu przy 5 V wynosi około 6 mA.
Układ MCP42010 można zasilać napięciem wynoszącym już 2,7 V, lecz nie jest to korzystne z dwóch powodów. Po pierwsze, maksymalne napięcie przyłożone do ślizgacza nie może przekraczać napięcia zasilającego, co ogranicza wartość międzyszczytową sygnału, który chcemy tłumić. Po drugie, rezystancja ślizgacza jest wówczas znacznie wyższa i ulega silnym zmianom w zależności od składowej stałej sygnału - rysunek 5. Dlatego, jeżeli tylko zaistnieje taka możliwość, lepiej byłoby użyć napięcia 5 V do zasilania niniejszego układu.
Z potencjometrami cyfrowymi wiążą się dwa istotne ograniczenia. Pierwsze jest takie, że potencjał któregokolwiek zacisku potencjometru nie może zejść poniżej potencjału masy, nie może też wzrosnąć powyżej napięcia zasilającego. Jeżeli chcemy regulować amplitudę przemiennego sygnału analogowego, trzeba mu nadać składową stałą, najlepiej wynoszącą połowę napięcia zasilającego. Przykład takiego podłączenia jest na rysunku 6. To tylko jedno z wielu możliwych rozwiązań.
Drugą wadą, która w wielu przypadkach nie jest bardzo dotkliwa, jest wysoki rozrzut rezystancji ścieżki oporowej (R). Faktyczna rezystancja może ulegać rozrzutom aż o 20% względem nominalnej - tabela 1. Natomiast zaletą jest bardzo wysoka współbieżność regulacji, rozrzut między obiema sekcjami nie przekracza 1% (ΔR/R). To bardzo dobry wynik, rzadko spotykany wśród potencjometrów z węglową ścieżką oporową.
Oprócz układów MCP42010, w sprzedaży są dostępne również MCP42050 oraz MCP42100. Mają one inne rezystancje ścieżek oporowych, odpowiednio 50 kΩ i 100 kΩ. Ich zastosowanie nie wymaga jakichkolwiek modyfikacji w układzie.
Układ umożliwia liniową regulację tłumienia przez potencjometr cyfrowy, lecz w niektórych zastosowaniach wymagana jest inna charakterystyka, chociażby logarytmiczna - na przykład w układach audio. Można z dobrym przybliżeniem zrealizować taką charakterystykę poprzez włączenie między zaciski OUT i GND w potencjometrze cyfrowym rezystora stałego. Zostały na to przewidziane rezystory R1 i R2 na schemacie ideowym. Ich wartość można ustalić doświadczalnie, ale moje testy wykazały, że jego rezystancja powinna wynosić 20…25% całkowitej rezystancji ścieżki potencjometru liniowego. Oznacza to, że układ MCP42010 (10 kΩ) wymagałby rezystorów o wartości z przedziału 2…2,5 kΩ. Najlepiej, aby były to niskoszumne rezystory metalizowane, na przykład o rezystancji 2,2 kΩ.
Michał Kurzela, EP
- R1, R2: opis w tekście
- R3…R6: 10 kΩ
- RN1: 4×10 kΩ SIL5
- P1, P2: 10 kΩ liniowy, jednoobrotowy do ścianki
- C1, C2, C4, C5, C7: 100 nF raster 5 mm MKT
- C3, C6: 22 μF 25 V raster 2,5 mm
- US1: MCP42010 (DIP14)
- US2: ATtiny24A-PU (DIP14)
- J1, J2: ARK3/500
- J3: goldpin 5 pin męski 2,54 mm THT
- J4: ARK2/500
- JP1, JP2: goldpin 2 pin męski 2,54 mm THT + zworka
- Dwie podstawki DIP14