- Zbudowany z użyciem wzmacniacza PGA2311 o cyfrowo regulowanym tłumieniu/wzmocnieniu.
- Sterowany mikrokontrolerem PIC16F1936.
- Złożony z trzech płytek: sterownika, regulatora i zasilacza.
- Wyposażony w czytelny wyświetlacz LCD.
- Możliwość zdalnego sterowania pilotem na poczerwień.
- Zegar czasu rzeczywistego.
- Selektor wejść umożliwia wybór 1 z 3 źródeł.
- Przełączanie źródeł za pomocą przekaźników.
Wzmacniacz wstępny został zbudowany w topologii wzmacniacza odwracającego. Rezystancja wejściowa takiego wzmacniacza jest równa wartości rezystancji R2 (tu – 47 kΩ). Wzmocnienie G=R1/R2=1. Użyto tu podwójnego wzmacniacza operacyjnego w obudowie DIL8 (lub SMD na tak zwanym stoliku).
Wybierając układ scalony wzmacniacza, należy zachować ostrożność. Zastosowanie układu o dużym paśmie przenoszenia może skutkować wzbudzaniem się. Pojedyncze, szybkie wzmacniacze umieszczane w obudowach 8-nóżkowych mają wejście do kompensowania pasma przenoszenia (na przykład AD797). Podwójne wzmacniacze takiego wejścia nie mają. W testowanym układzie wzbudzał się układ OPA2406. To podwójny szybki wzmacniacz o paśmie przenoszenia 20 MHz.
Nie było natomiast problemów ze wzmacniaczami projektowanymi do układów audio: NE5532 i OPA2134. Dobierając wzmacniacz scalony, należy sprawdzić oscyloskopem, czy się on nie wzbudza. Na wejściu układu zamontowano kondensator C5 odcinający składową stałą. Najlepiej, gdyby to był kondensator foliowy o dobrych parametrach lub elektrolityczny – bipolarny. Ja zastosowałem kondensatory elektrolityczne, bipolarne o pojemności 4,7 μF produkowane przez japońską firmę Nichicon.
Jeżeli mamy pewność, że w torze nie ma i nie będzie składowej stałej w żadnym z doprowadzonych sygnałów, to kondensatory C5 i C6 można zewrzeć. Wydajność prądowa wzmacniacza operacyjnego gwarantuje, że obciążenie wyjścia rezystancją PGS2311 nie spowoduje wzrostu zniekształceń. Wzmacniacz wstępny, chociaż według mnie bardzo wskazany, nie jest niezbędny. Można go pominąć przez zdemontowanie U1 i zrobienie zwór pomiędzy nóżkami 6-7 i 1-2.
Układ U1 jest zasilany napięciem symetrycznym ±12 V. To napięcie dostarczane przez moduł zasilacza jest dodatkowo filtrowane kondensatorami C13 i C15 o pojemności 220 μF oraz blokowane parami kondensatorów: ceramicznym 100 nF i tantalowym elektrolitycznym 10 μF.
Regulator sygnału audio
Schemat ideowy Regulacja sygnału audio jest wykonywana przez układ PGA2311. Ponieważ działanie tego układu pokrótce omówiono na początku artykułu, zajmiemy się teraz jego aplikacją. Sygnały z wyjścia wzmacniacza wstępnego INL1 i INR1 są podawane na wejście ViL i ViR, a po regulacji wzmocnienia/tłumienia trafiają na wyjście VoL i VoR. Te wyjścia są jednocześnie wyjściami wewnętrznego wzmacniacza operacyjnego i dlatego na wyjściu nie zastosowałem kolejnego wzmacniacza zbudowanego w oparciu na wzmacniaczu operacyjnym, bo to rozbudowałoby układ, a efekt byłby żaden. Część analogowa PGA2311 jest zasilana napięciem ±5 V. Podobnie jak w przypadku zasilania układu U1, zastosowałem dodatkowe filtrowanie kondensatorami 220 μF i blokowanie kondensatorami 100 nF i tantalowym 10 μF.
Wejście sterujące ZCEN jest przeznaczone do włączania/wyłączania układu regulacji poziomu w zerze sygnału. Jeżeli ten układ jest włączony, to zmiana cyfrowych nastaw poziomu sygnału wyjściowego odbywa się w momencie, kiedy sygnał wejściowy ma amplitudę równą 0 V (potencjał AGND). Zapobiega to powstawaniu zaburzeń w momencie sterowania poziomem, ale wprowadza dodatkowe opóźnienie sterowania. Takie opóźnienie w naszym urządzeniu zupełnie nie przeszkadza i dlatego regulacja w zerze jest włączona na stałe.
Wejście MUTE służy do sterowania wyciszaniem układu. Wymuszenie logicznego stanu niskiego powoduje sprzętowe wpisanie do rejestrów sterujących wartości 0x00, czyli całkowite wyciszenie układu. U nas ten mechanizm jest wyłączony (poziom logiczny wysoki). Sprzętowe sterownie wejściem MUTE z racji izolacji galwanicznej mas musiałoby być izolowane transoptorem. Taki sam efekt można osiągnąć przez programowe zapisanie rejestrów sterujących.
Wyjście sygnału może być zwierane do masy przez przekaźnik K5 MUTE. To dodatkowe rozszerzenie układu umożliwia wyeliminowanie stuków generowanych przez układ w momencie włączania zasilania układów analogowych. Sterownik mikroprocesorowy najpierw uaktywnia sygnał MUTE i zwiera poprzez rezystory 100 Ω wyjście PGA2311. Potem włącza zasilanie sekcji analogowej, odczekuje zadany czas i dezaktywuje sygnał MUTE. W czasie włączania zasilania, kiedy na wyjściu PGA2311 mogą się pojawić stany nieustalone, to wyjście jest zwarte. Kiedy układ jest zasilony i wszystko się ustabilizuje, przekaźnik K5 rozwiera styki i zwarcie do masy jest usuwane. Tego nie można osiągnąć przez programowe lub sprzętowe sterowanie wyciszaniem w układzie PGA2311.
Sterowanie regulatorem audio
Za sterowanie regulatorem odpowiada program sterujący zapisany w pamięci mikrokontrolera PIC16F1936. Program został napisany w języku C i skompilowany kompilatorem MPLAB XC8. Do napisania, skompilowania, uruchomienia i zapisania w pamięci Flash mikrokontrolera użyłem pakietu MPLAB X IDE. Bardzo użyteczna okazała się również firmowa wtyczka MCC – MPLAB Code Configurator. Użyłem jej do szybkiego skonfigurowania układów peryferyjnych: licznika, układu PWM, portów i interfejsu I²C.
Każde urządzenie, które jest obsługiwane przez człowieka, musi być wyposażone w interfejs użytkownika. Za jego pomocą można wprowadzać nastawy do urządzenia i odczytywać dane przekazywane przez urządzenie. W tym przedwzmacniaczu interfejs jest zbudowany z: alfanumerycznego wyświetlacza LCD o rozdzielczości 4×20 znaków, impulsatora (enkodera obrotowego) z przyciskiem zintegrowanym z osią oraz odbiornika podczerwieni IR, w komplecie z pilotem zdalnego sterowania pracującym w kodzie RC5.
Interfejs użytkownika jest oparty na programowych procedurach obsługujących wyświetlacz i jego podświetlenie, enkoder i układ zdalnego sterowania.
Po włączeniu zasilania lub zerowaniu mikrokontrolera w pierwszej kolejności są wykonywane procedury inicjalizacyjne. Najpierw jest wywoływana funkcja SYSTEM_Initialize() wygenerowana przez wtyczkę MCC MPLAB Code Configurator.
Zastosowałem to bardzo użyteczne narzędzie po to, aby szybko i poprawnie wprowadzić nastawy:
- Bitów konfiguracyjnych mikrokontrolera.
- Układ taktowania.
- Porty wejścia/wyjścia.
- Kontroler przerwań.
- Licznik/timer TMR0 do odliczania opóźnień.
- Układ PWM ECCP, łącznie z licznikiem TMR2.
Bity konfiguracyjne ustawiają taktowanie przez wewnętrzny oscylator RC i włączają liczniki opóźnień przy włączaniu zasilania (PWRT=ON). Programowanie niskonapięciowe jest wyłączone (LWP=OFF), wyłączony jest też licznik watchdog (WDTE =OFF).