Wzmacniacz wstępny
Wzmacniacz wstępny został zbudowany w topologii wzmacniacza odwracającego – jego schemat ideowy zamieszczono na rysunku 8. Rezystancja wejściowa takiego wzmacniacza jest równa wartości rezystancji R2 (tu – 47 kV). 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 mF 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 mF oraz blokowane parami kondensatorów: ceramicznym 100 nF i tantalowym elektrolitycznym 10 mF.
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 mF i blokowanie kondensatorami 100 nF i tantalowym 10 mF.
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 V 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.
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 I2C.
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).
Mikrokontroler jest taktowany częstotliwością 16 MHz z wewnętrznego oscylatora RC. Okno MCC z ustawieniami taktowania i bitów konfiguracyjnych zostało pokazane na rysunku 9. Do odliczania kalibrowanych użyto licznika TMR0. Odlicza on interwały o długości 1 ms i zgłasza przerwanie. Na rysunku 10 pokazano inicjalizację licznika z poziomu MCC. MCC generuje kod z inicjalizacją licznika (listing 1) i po zaznaczeniu opcji Enable Interrupt – funkcję obsługi przerwania, która wywołuje procedurę użytkownika TMR0-CallBack (listing 2). Oprócz odliczania opóźnień co 1 ms jest wywoływana funkcja obsługi enkodera obrotowego i jest sprawdzany warunek wyświetlania czasu z zegara RTC.
Interfejs I2C używany do komunikacji z układem zegara RTC typu DS1307 jest również konfigurowany przez MCC. W tym wypadku jest to więcej niż konfiguracja, bo MCC generuje również kompletne, nieblokujące procedury obsługi magistrali oparte na systemie przerwań. Częstotliwość zegara transmisji SCL ustalono na 100 kHz (rysunek 11). Na listingu 3 zamieszczono funkcje inicjalizacji interfejsu.
Przebieg PWM użyty do sterownia podświetleniem wyświetlacza jest generowany przez sprzętowy moduł ECCP1, współpracujący z licznikiem Timer2. Początkowo chciałem zrealizować przebieg PWM programowo z wykorzystaniem przerwań od licznika TMR2. Jednak dla tego mikrokontrolera byłoby to za duże obciążenie. Jak wykazały próby, procedura generująca PWM przeszkadzała procedurze przerwania od TMR0 i przez to źle działały obsługa enkodera i wyświetlacza.
Moduł ECCP jest rozbudowany. Ma możliwość generowania 2 przebiegów PWM do sterowania mostkiem. Nam będzie potrzebny zwykły przebieg PWM z możliwością sterowania wypełnieniem. Skonfigurujemy ECCP1, aby jego częstotliwość wynosiła ok 16,6 kHz (rysunek 12). Ta częstotliwość jest równa częstotliwości przepełniania się licznika TMR2.
Konfigurator MCC generuje standardowo procedurę inicjalizacyjną i przydatne funkcje, między innymi EPWM1_LoadDutyValue() ustalającą współczynnik wypełnienia – pokazano ją na listingu 4. Na listingu 5 zamieszczono funkcje System_Initialize() i OSCILLATOR_Initialize().
Po inicjalizacji taktowania i używanych modułów peryferyjnych program wywołuje funkcję BOARDInit(). Ustala ona wartości początkowe, takie jak: poziom sygnału, aktywne wejście, jasność podświetlenia. Odczytuje też z pamięci EEPROM wcześniej zaprogramowane kody RC5. Te wartości są w trakcie obsługiwania urządzenia zapisywane do pamięci EEPROM i w czasie inicjalizacji odtwarzane. Pokazana na listingu 6 funkcja BOARDInit() inicjuje również działanie wyświetlacza LCD, zegara RTC oraz włącza zasilanie układów analogowych modułu regulatora.
Obsługa wyświetlacza LCD
Jak wspomniano, zastosowano wyświetlacz alfanumeryczny mieszczący 4 linie po 20 znaków. Sterownik ST7066U wyświetlacza różni się od uznawanego za standard HD44780 i wymaga nieco innej inicjalizacji. Magistrala sterująca, organizacja rejestrów sterujących i pamięci obrazu jest identyczna. Kiedy użyłem swoich wielokrotnie sprawdzonych procedur inicjalizacji, to niestety wyświetlacz nie chciał działać. Dla ułatwienia samodzielnego zastosowania tego wyświetlacza, wykonaną i sprawdzoną przeze mnie procedurę inicjalizacyjną (4-bitowa szyna danych) zamieściłem na listingu 7.
Zegar RTC jest taktowany typowym oscylatorem kwarcowym, „zegarkowym” o częstotliwości 32768 Hz. Oscylator jest dołączony do wyprowadzeń X1 i X2 bez kondensatorów obciążających, ponieważ te są zamontowane w strukturze układu. Na wszelki wypadek, na płytce przewidziano miejsce na kondensatory, ale w prototypie nie są one wlutowane. Układ DS1307 jest typowym zegarem z kalendarzem. Czas jest odmierzany z dokładnością do 1 sekundy. Dostęp do zegara i kalendarza odbywa się przez interfejs I2C. Wykaz rejestrów układu DS1307 umieszczono w tabeli 2.
Funkcja InitRtc() (listing 8) zapisuje do rejestru konfiguracyjnego wartość 0x10: SQWE=1i RS2:RS1=00. Na wyjściu SQW/OUT jest generowany przebieg o częstotliwości 1 Hz i wypełnieniu 50%. Mikrokontroler testuje stan tego wyjścia w obsłudze przerwania od TMR0 co 1 ms (listing 9) i jeżeli wykryje zbocze opadające, to odczytuje zawartość rejestrów zegara. Wykrycie zmiany licznika minut powoduje wywołanie procedury wyświetlenia godziny i daty.
Po wykonaniu wszystkich czynności inicjalizacyjnych program wyświetla ekran główny i przechodzi do pętli głównej. W pętli głównej można wykonać następujące działania:
− Regulować poziom sygnału w całym zakresie od -95 do +32 dB z krokiem co 1 dB. Regulacja odbywa się poprzez obracanie osi
− Wyłączyć całą analogową część regulatora (Power Off) – tylko za pomocą zaprogramowanego wcześniej przycisku pilota.
− Wejść do menu funkcyjnego po przyciśnięciu ośki enkodera obrotowego.
Pętlę menu głównego pokazano na listingu 10.
Na początku pętli jest wykonywane sprawdzenie, czy nie została obrócona lub przyciśnięta oś enkodera i czy na linii dołączonej do wyjścia odbiornika podczerwieni nie wykryto poziomu niskiego (początek nadawania kodu RC5). Jeżeli żaden z tych warunków nie został spełniony, to jest tylko wywoływana funkcja DispCzas() sprawdzająca, czy trzeba wyświetlić godzinę (zmienił się stan licznika minut od ostatniego wyświetlania) i ewentualnie ją wyświetla. Wyświetlanie godziny jest też uwarunkowane ustawieniem w menu. Można tak skonfigurować sterownik, aby godzina nie była w ogóle wyświetlana.
Obrócenie ośki w prawo lub odebranie kodu równego wartości stałej RC5_UP powoduje zmniejszenie tłumienia o 1 dB, wyświetlenie nowej wartości na ekranie wyświetlacza i ewentualnie zmodyfikowanie linijki obrazującej wartość poziomu sygnału. Po osiągnięciu wartości +35 dB dalsze zwiększanie wzmocnienia nie jest możliwe. Bardzo podobnie działa zwiększenie tłumienia po obrocie ośki w lewo lub odebraniu kodu o wartości RC5_DWN. Po osiągnięciu tłumienia -95 dB dalsze zwiększanie tłumienia nie jest wykonywane. Podczas regulowania poziomu sygnału audio nastawy są zapisywane do PGA2311 poprzez magistralę SPI. Każda sekwencja zapisywania rozpoczyna się wyzerowaniem linii CS. Jeden cykl zapisu polega na przesłaniu słowa 16-bitowego: pierwsze 8 bitów określa poziom sygnału w kanale prawym, a kolejne 8 bitów poziom sygnału w kanale lewym. Bity są przesyłane od najstarszego w czasie narastającego zbocza zegara (rysunek 13). Po przesłaniu 16 bitów linia CS musi być ustawiona. Interfejs SPI transmitujący słowa 16-bitowe zrealizowano programowo (listing 11).
Funkcja SendPGA ma dwa 8-bitowe argumenty volL i volR określające ustawiany poziom sygnału. Z tych dwóch 8-bitowych wartości jest tworzona zmienna 16-bitowa vol i jej zawartość jest wysyłana przez SPI bit po bicie. Jak wiemy, transmisja odbywa się poprzez barierę galwaniczną zrealizowaną na transoptorach. W czasie przełączania w transoptorze przeznaczonym do zastosowań uniwersalnych „dodawane” są opóźnienia rzędu dziesiątek mikrosekund. Dla naszego transoptora TLP281 są to czasy Ton=2 ms, ts=25 ms i Toff=40 ms (rysunek 14). Z tego powodu częstotliwość przełączania poziomów logicznych na wyjściu transoptora jest ograniczona.
Jeżeli zsumujemy te czasy, to otrzymamy 67 ms i maksymalna częstotliwość sygnału to ok. 15 kHz. W czasie uruchamiania urządzenia dołączyłem 2-kanałowy oscyloskop – jeden kanał do przebiegu zegarowego SCK na wyjściu portu mikrokontrolera i drugi do wyjścia transoptora SCKI. Do cyklicznie wywoływanej procedury SendPGA() dodałem programowe opóźnienia del(). Tak dobrałem jego czas, aby sygnał na wyjściu z kolektora tranzystora transoptora nie był zniekształcony w porównaniu z przebiegiem źródłowym.
Przyciśnięcie ośki enkodera w pętli głównej wywołuje menu funkcyjne sterownika. Jego obsługę zaimplementowano w pokazanej na listingu 12 funkcji MenuFun(). Menu jest wielopoziomowe i pozwala na:
− Zmianę aktywnego wejścia selektora sygnału audio.
− Ustawienie zegara i kalendarza.
− Zaprogramowanie kodów pilota RC5.
− Ustawienie podświetlania wyświetlacza LCD i włączenie/wyłączenie wyświetlania godziny i daty na ekranie głównym.
Funkcję przeznaczoną do wykonania wybiera się przez kręcenie osią enkodera obrotowego. Wybraną funkcję wskazuje strzałka z lewej strony ekranu LCD.
Jedną z ważniejszych funkcji z punktu widzenia możliwości obsługi jest programowanie kodów pilota RC5. W trakcie programowania są sekwencyjnie wybierane funkcje wykonywane przez przycisk na pilocie. Po naciśnięciu przycisku kod jest odbierany przez odbiornik, wyświetlany na ekranie i zapamiętywany w pamięci EEPROM mikrokontrolera (listing 13).
Montaż i uruchomienie
Przedwzmacniacz jest zbudowany z trzech modułów umieszczonych na osobnych płytkach: płytce sterownika, płytce regulatora i płytce zasilacza. Wszystkie płytki mają identyczne wymiary i są przeznaczone do zamontowania w obudowie o wymiarach 165 mm×85 mm×125 mm.
Płytka sterownika Schemat montażowy płytki sterownika pokazano na rysunku 15. Jej montaż rozpoczynamy od przylutowania elementów po stronie elementów. Montujemy tu wszystkie elementy oprócz wyświetlacza i enkodera obrotowego. Do wyprowadzeń wyświetlacza trzeba przylutować przyciętą na długość listwę goldpinów o rastrze 2,54 mm. Potem wyświetlacz trzeba przykręcić na tulejkach dystansowych, przylutować listwę do wyprowadzeń od umownej strony lutowanie (solder side) płytki drukowanej sterownika, tak jak to zostało pokazane na fotografii 16. Od tej samej strony lutujemy enkoder obrotowy. W przednim panelu obudowy wycinamy otwór na wyświetlacz i otwór na oś enkodera i za pomocą wkrętów mocujemy do panelu przedniego. Z lewej strony panelu trzeba wywiercić otwór na soczewkę odbiornika IR. Widok przedniego panelu został pokazany na fotografii 17.
Płytka zasilacza Schemat montażowy płytki zasilacza zamieszczono na rysunku 18. Płytkę zasilacza po zamontowaniu przykręciłem do spodu obudowy za pomocą wkrętów i tulejek dystansowych. Pomiędzy płytką a metalowym spodem umieściłem na dystansach starą płytkę o takich samych wymiarach, jak płytka zasilacza. Ta płytka ma za zadanie dystansować kable biegnące pod zasilaczem od fragmentów płytki, przez które jest przesyłane napięcie 230 V AC. Dotknięcie kabla sygnałowego do punktu lutowniczego z tym napięciem i przebicie izolacji kabla może skutkować porażeniem. W takim rozwiązaniu nie ma możliwości, aby kabel dotknął wrażliwego miejsca na płytce drukowanej zasilacza. Przy umieszczaniu płytki zasilacza we własnych obudowach wykonanych z metalu trzeba o tym pamiętać. Sposób zamontowania płytki zasilacza w obudowie z zamontowanym panelem przednim został pokazany na fotografii 19.
Płytka regulatora Montaż płytki regulatora zaczynamy od zamontowania wszystkich elementów oprócz gniazd cinch (schemat montażowy na rysunku 20). Do zamontowania wzmacniacza operacyjnego U1 i regulatora U2 można zastosować precyzyjne podstawki. Płytka regulatora została przewidziana do montażu na tylnym panelu obudowy. Złącza cinch są stojące, do wlutowania w druk. Montuje się je po umownej stronie lutowania, jak wyświetlacz i enkoder obrotowy w płytce sterownika (fotografia 21). W tylnym panelu trzeba wywiercić otwory o średnicy ok. 11 mm i przymocować płytkę na tulejkach dystansowych. Widok panelu tylnego pokazano na fotografiach 22 i 23.
Uruchomienie układu
Uruchamianie zmontowanego układu rozpoczynamy od sprawdzenia zasilacza. Transformator T1 ma włączane napięcie pierwotne przez styki przekaźnika K1 załączanego z modułu sterownika. Aby można było sprawdzić poprawność działania zasilacza sekcji regulatora, trzeba przyłączyć napięcie 230 V AC do złącza P7. Następnie sprawdzamy poprawność napięć ±5 V, ±12 V oraz +5 V (+5 VDA). Sprawdzony zasilacz można przyłączyć do modułu regulatora złączami P4 (zasilacz) i P12 (regulator) za pomocą taśmy. Przy wyjętych układach U1 i U2 w regulatorze można sprawdzić poprawność podłączenia napięć zasilających.
Jeżeli wszystko jest w porządku, sprawdzamy poprawność napięcia +VDD. Napięcie 230 V AC doprowadzamy do złącza P6 zasilacza. Przy zastosowanym transformatorze, bez obciążenia to napięcie wynosi ok. +11 V. Następnie łączymy kablem zasilacz ze sterownikiem: złącze P5 (zasilacz) i P2 (sterownik), i sprawdzamy poprawność napięcia +5 V zasilającego układy cyfrowe.
Prawidłowo zasilony mikrokontroler można zaprogramować. Do tego celu przewidziano złącze J1 o wyprowadzeniach zgodnych z wyprowadzeniami programatora PicKit-3. Po zaprogramowaniu mikrokontrolera i połączeniu wszystkich modułów kablami zasilania i sterowania, można uruchomić tor analogowy. Ja do tego celu użyłem starego generatora G430 produkowanego kiedyś przez firmę Meratronik i oscyloskopu 2-kanałowego. Po podaniu na wybrane selektorem wejście sygnału sinusoidalnego o częstotliwości 1 kHz można obserwować regulowany sygnał na wyjściu P15 i P14. Obserwacja tego sygnału pozwala na określenie, czy tor się nie wzbudza i czy w sygnale wyjściowym nie ma innych zaburzeń lub zniekształceń. Trzeba jednak wiedzieć, że ten pomiar nie służy do szacowania zniekształceń, ale do określenia, czy w sygnale nie występują duże zaburzenia i czy tor audio pracuje poprawnie. Jeżeli ktoś chciałby wykonać pomiar zniekształceń nieliniowych, to musiałby użyć specjalnych przyrządów pomiarowych.
|
|
Po włączeniu zasilania sterownik załącza zasilanie części analogowej i wyświetla ekran główny pokazany na rysunku 24. Umieszczone są na nim: wartość tłumienia/wzmocnienia toru, linijka określająca zgrubnie wartość tłumienia i aktywne wejście. W tym momencie nie mamy zaprogramowanych kodów pilota i obsługa może się odbywać tylko za pomocą enkodera obrotowego. Obracanie osi powoduje regulowanie poziomu sygnału i wyświetlanie zmodyfikowanej wartości. Po naciśnięciu osi enkodera program wchodzi do menu funkcyjnego (rysunek 25). Funkcję przeznaczoną do wykonania zaznacza się przez obracanie osią. Przesuwa się wtedy znacznik w postaci strzałki z lewej strony ekranu. Wskazana funkcja jest wykonywana po naciśnięciu osi.
Pierwsza funkcja „Zmień wejście” pozwala na zmianę aktywnego wejścia selektora. Wejścia są zmieniane sekwencyjnie w czasie obrotu osi enkodera (rysunek 26). Wyjście z funkcji następuje po naciśnięciu osi enkodera. Wybrany numer wejścia jest zapisywany w pamięci EEPROM i odtwarzany po właczeniu zasilania.
Funkcja „Ustawienia” zawiera podmenu umożliwiające ustawienie godziny, daty, określenie, czy godzina i data mają być wyświetlane na ekranie głównym oraz ustawienie jasności podświetlania (rysunek 27).
Ustawianie czasu i daty jest wykonywane przez funkcje „Ustaw czas” i „Ustaw datę”. Obie działają podobnie. Po wejściu do nastaw godziny najpierw są ustawiane minuty przez kręcenie osią enkodera. Żądana wartość jest akceptowana przyciśnięciem osi i program automatycznie przechodzi do ustawiania godzin przez kręcenie osią (rysunek 28). W momencie przyciśnięcia osi jest zerowany licznik sekund, do układu zegara DS1307 są transmitowane nastawy sekund, minut i godzin oraz jest uruchamiane zliczanie czasu. Ekran funkcji ustawiania daty pokazano na rysunku 29. Funkcja „Wysw. daty” włącza i wyłącza wyświetlanie czasu i daty na ekranie głównym w dolnej linijce wyświetlacza. Zostało to pokazane na rysunkach 30 i 31.
Ważną funkcją sterownika jest programowanie kodów „Kody RC5”. Po jej wywołaniu trzeba skierować nadajnik pilota w stronę odbiornika IR i nacisnąć przycisk odpowiadający wyświetlanej funkcji. Odebrany kod zostanie wyświetlony na ekranie zamiast czterech kresek (rysunek 32). Zatwierdzenie kodu i przejście do następnego jest wykonywane po naciśnięciu osi enkodera obrotowego. Funkcja kończy swoje działanie po zaprogramowaniu wszystkich kodów.
Ostatnią funkcją przewidzianą w tej wersji oprogramowania jest ustawienie jasności podświetlania wyświetlacza LCD. Można to zrobić w zakresie od 0 do 10. Wartość 0 wyłącza podświetlenie, a 10 włącza podświetlenie, a 10 włącza je z pełną mocą. W praktyce dobre efekty zależnie od jasności pomieszczenia uzyskuje się w zakresie od 3 do 6. Wartości są ustawiane przez kręcenie osią. Jednocześnie zmienia się jasność podświetlania. Po naciśnięciu osi ustawiona wartość jest zapisywana w pamięci EEPROM, a funkcja kończy swoje działanie (rysunek 33).
Podsumowanie
Opisywany tu przedwzmacniacz od jakiegoś czasu jest użytkowany bez najmniejszych problemów eksploatacyjnych. Głównym źródłem sygnału jest opisywany przeze mnie na łamach „Elektroniki Praktycznej” przetwornik cyfrowo-analogowy z układami Wolfsona WM8741 oraz stary tuner FM firmy Sansui. Od czasu do czasu, do jednego z wejść jest przyłączane wyjście słuchawkowe dość leciwego smartfona i są odtwarzane pliki MP3. Wyjście przedwzmacniacza steruje dwoma monoblokami wzmacniacza Ugoda. Ugoda jest znaną fanom DIY audio bardzo dobrą konstrukcją wzmacniacza na tranzystorach bipolarnych.
W czasie eksploatacji okazało się, że podstawowe funkcje przedwzmacniacza działają poprawnie. Nie ma problemów z zawieszaniem się wyświetlacza lub całego sterownika. W przyszłości jest planowane dopisanie funkcji regulowania balansu, a przede wszystkim funkcji programowanego offsetu wzmocnienia przypisanego do wejść 2 i 3. Offset będzie programowany w odniesieniu do bazowego poziomu wejścia 1. Pozwoli to na wyrównanie poziomów sygnałów pomiędzy wyjściem przetwornika i wyjściem tunera FM.
Tomasz Jabłoński, EP