Przedwzmacniacz ma się dobrze, pierwsze wersja jest akurat u mnie do pisania programu.
Na sam koniec zostawiłem sobie sprawdzenie czy w ogóle cały przedwzmacniacz gra

Ale jak się spodziewałem, zero problemów. Nic nie szumi, nic nie brumi, gra świetnie ( właśnie idzie -
https://www.youtube.com/watch?v=kBk5vMti6r8 ).
Mała różnica rezystorów w buforze wejściowym i już minimalnie zmienione wzmocnienie względem wejścia (0dB na PGA2320, żółty to wejściowy):
Taz oczywiście nie mógł obyć się bez dodania mi do zabawy jakiegoś pilota, który nie wiadomo jaki miał protokół. No to sprawdzamy:
Pierwsze skojarzenie po czasie trwania przejścia - RC5. I taki właśnie był
Jeszcze w sumie ciekawiło mnie ile trwa przesłanie informacji do PGA2320:
42 us - brzmi nieźle, w końcu to Atmega16 taktowana tylko zegarem 8 MHz (8 taktów na 1 us).
Sam ekran i wyświetlane informacje bez rewelacji:
Jako, że przedwzmacniacz lubi piloty, to dlaczego ograniczać się do jakichkolwiek kodów jednego producenta?
Niestety, jedyny minus tego wszystkiego jest taki, że w danej chwili oprogramowanie może być skompilowane z obsługą NEC lub RC5 (nie oba naraz). Dlatego trzeba na starcie wybrać protokół komunikacyjny, chociaż może się to zmienić w przyszłości (i pewnie się zmieni).
Podsumowując:
1) Przedwzmacniacz może tylko tłumić sygnał (moim zdaniem nie ma co używać PGA2320 jako wzmacniacza sygnału, chociaż to kwestia jednej linijki kodu). Generalnie jest to bodajże od -90 dB (lub mute) do 0 dB.
2) Dwa enkodery, jeden obsługuje głośność, a drugi wejścia (6 wejść możliwych - w danej chwili nazwy to PC, CD, TUNER, AUX1, AUX2, AUX3), wciśnięcie enkodera od głośności spowoduje włączenie opcji wyciszenia całkowitego w PGA2320, a drugi raz - jej wyłącznie. Przycisk na drugim enkoderze po naciśnięciu włącza proces uczenia się pilota.
3) Obsługa pilotów - każdy z protokołem NEC lub RC5, więc w sumie większość. Przedwzmacniacz musi się nauczyć 5 przycisków - głośność w górę, głośność w dół, całkowite wyciszenie, następne źródło, poprzednie źródło.
4) Zapisywanie konfiguracji (głośność, wejścia, mute, kody pilota) do EEPROM i wczytywanie jej podczas startu programu.
5) Inne rzeczy, które w danej chwili nie pamiętam.