W części pierwszej zilustrowałem przebieg naprawy i budowę wewnętrzną pewnego zestawu audio z dawnych lat. W poniższym tekście opiszę jak ulepszyłem wzmacniacz, aby stał się wreszcie, w pełni funkcjonalną i niezależną jednostką, potrafiącą poradzić sobie z obsługą niededykowanego pilota (Panasonic EUR648251) i analogowych sygnałów wejściowych, bez potrzeby angażowania dodatkowych elementów wieży.
Koncepcja modularna niespójność skalarna
Po wielu godzinach wspólnych przygód, spoglądając z perspektywy na budowę zestawu, odniosłem wrażenie, jakby trochę na siłę rozdzielono moduły, które wcześniej miały swojego protoplastę w postaci znanych nam audio kombajnów zawierających wszystkie elementy w jednej obudowie.
Najbardziej niespójna w mojej ocenie jest koncepcja dwóch szyn transmisyjnych (system control). Gdzie każda żyje swoim życiem, i jedyne sensowne co mają wspólnego to linia AC i Aubus. Mimo fizycznego rozdzielenia, każdy element zestawu (oprócz odtwarzacza CD) jest w jakiś sposób nierozerwalnie związany z zresztą urządzenia. Nie będzie nam zbyt wygodnie bez pilota zdalnego sterowania (tuner), a bez możliwości podłączenia źródeł dźwięku (tape cassette) „niczego nie będzie”
Bezmyślne wleczenie czy sprytne dzielenie ?
Byłem nieco zdziwiony kiedy okazało się, że sygnał z tunera, jest ciągnięty do wzmacniacza, przez 'system control 1' aby tam przesiąść się na 'system control 2' i wylądować w decku (mux), a następnie wrócić się z powrotem do wzmacniacza. Dlaczego do żarzenia VFD tunera wykorzystano to samo zasilanie co we wzmacniaczu, ale do magnetofonu i cd już nie ? Dlaczego w odtwarzaczu CD użyto dodatkowy kilku watowy transformator w celu uzyskania min. napięcia 32V dla VFD, zamiast wypuścić to bezpośrednio na złącze systemowe ? A może te niespójności mają związek z podziałem zadań między zespoły ludzi które miały problemy z komunikacją ? (niespójne nazewnictwo modułów na schemacie serwisowym mogło by to sugerować). Może jest w tym jakiś głębszy sens, ja jednak jestem przekonany, że koncepcję połączenia elementów zestawu dało by się zrealizować w bardziej logiczny a równie oszczędny sposób, bez szkody dla parametrów.
Power Save Mod
Jak wspomniałem w pierwszej części tekstu o MHC-4700, urządzenie powstało w czasach, gdy spekulacje cenami energii, nie były zbyt dotkliwe, więc nikt nie przywiązywał wagi ile prądu ciągnie jego sprzęt podłączony do sieci w stanie nicnierobienia. W dzisiejszych czasach 10W pobierane non stop na przestrzeni miesiąca rozliczeniowego może stanowić już wartość, którą woleli byśmy spożytkować w inny sposób. W dużym przybliżeniu i zaniżeniu kursu do 1zł za kWh, MHC-4700 nic nie robiąc zeżarłby nam 7.2zł. (Ciekawostka w roku 1992 cena 1kWh wynosiła około 20gr )
Ponieważ byłem bardzo ciekawy czy można w miarę prosty sposób przystosować sprzęt do oszczędnego trybu zasilania, bez degradacji właściwości użytkowych, szybko przeprowadziłem badania obiecujące poprawę tej poprzednio-epokowej rozrzutności.
Urządzenie posiada zasilacz dostarczający wielu różnych napięć i prądów. Jednak do podtrzymania życia wystarczające jest jedynie zasilanie głównego mikrokontrolera (u nas również mikrokontrolera w tunerze, który szczęśliwym trafem jest zasilany z tej samej szyny). Łatwo odnaleźć na schemacie dwie linie 5.6V, z czego jedna o oznaczeniu 5.6UB jest właśnie tym czego poszukujemy. Trick polegał będzie na wyłączeniu wielkiego transformatora, w zamian włączając mały zasilacz (np. impulsowy) który w trybie standby dostarczy potrzebnego prądu.
Prace rozpocząłem od podłączenia napięcia 5V na ową linię, jednak okazało się, że procesor tak czy siak, po odłączeniu a następnie zasilaniu głównego trafa, tracił ustawienia. Przyczyną takiego zachowania było podawanie sygnału reset z układu LDO (Nie ma tutaj pomyłki, takie kiedyś dziwactwo wymyślono – scalony stabilizator dostarczający sygnału resetującego). Przedpotopowe ukontrolery rzadko albo w ogóle miały wbudowany autonomiczny reset i tak jak w tym przypadku dostawały ten sygnał z zewnątrz. Po podciągnięciu linii do poziomu wysokiego problem ustąpił, więc kolejnym krokiem było zbudowanie osobnego generatora resetu, zależnego tylko od napięcia zasilnia cpu.
W tym przypadku użyłem układu RT9001 z programowalnym poziomem napięcia , ustawionym na około 3V. Ale może to być dowolny układ z aktywnym stanem niskim. Nie chcąc przerabiać pcb, postanowiłem ulokować układ w taki sposób, by ewentualne zmiany dotyczyły tylko wylutowania lub dolutowania elementów. Na zdjęciach widać nowy układ resetujący, oraz rezystor 0402 pomiędzy nogami CPU, który to nie ma aktywnych pulupów, i w przypadku resetu z otwartym drenem należało dołożyć rezystor, w tym przypadku 4k7. Na tym etapie mamy już poprawnie startujący procesor, niezależnie od stanów zasilania transformatora.
Kolejny etap, to zautomatyzowanie przełączania zasilaczy. Zdecydowałem, że dosyć dobrym pomysłem będzie włączenie zasilacza pomocniczego w szereg z uzwojeniem pierwotnym oraz sterowanie przełączaniem przez umieszczenie przekaźnika na zaciskach tego mniejszego. Użyłem płytki z pradawnej ładowarki do telefonu na układzie TNY254. Posiada ona zabezpieczenia oraz kondensator filtrujący na wejściu, który idealnie nada się w tym miejscu gasząc nieco ewentualne przepięcia powstające na uzwojeniu w momencie przełączania prądu przekaźnikiem. Z drugiej strony w stanie nieaktywnym uzwojenie pierwotne 100W transformatora wydaje się być kompensacją reaktancji pojemnościowej impulsowego zasilacza. Przekaźnik z relpolu na napięcie 5V w stanie aktywnym pobiera prąd około 20mA. Ponieważ w momencie wciśnięcia guzika standby (lub odebraniu kodu po Aubus) Procesor załącza napięcie 5.6V. Wystarczy użyć tej informacji do aktywowania przekaźnika. Okazało się jednak, że w przypadku zasilania systemu tylko jednym napięciem, wartość na linii przed aktywacją tranformatora głównego wynosi jedynie 1.5V. W rezultacie wymusiło to sterowanie przekaźnika przez tranzystor npn z otwartym kolektorem .
Po zastosowaniu wyżej opisanego rozwiązania, cały proces załączania i wyłączania transformatora przebiega automatycznie, a procesor jest cały czas zasilany pamiętając ustawione parametry. To by było na tyle jeżeli o zasilacz chodzi. Zyskaliśmy 7zł w kieszeni każdego miesiąca, straciliśmy zegarek który wyświetlany był na tunerze. Niebawem jednak użyjemy avrka min. do dodatkowego sterowania przekaźnikiem, co w pewnym stopniu zwróci nam tę funkcjonalność
Audiobus
Po pewnych rozterkach doszedłem do wniosku, że korzystanie z decka mija się z celem, podobnie jak używanie go jedynie jako multipleksera sygnałów wyjściowych. Nawet jeżeli kiedyś go naprawię, to nie koniecznie musi on być stałym elementem ekspozycji.
Jak już wiecie z pierwszego odcinka, nasz zestaw zbudowany jest w oparciu o japońskie mikrokontrolery wymieniające między sobą dane magistralą 'Audiobus'. Część komunikatów to zreplikowane bajty odebranej przez tuner ramki pilota IR. Inne są generowane bezpośrednio po naciśnięciu klawiszy w odtwarzaczach, bywają też jednobajtowe komunikaty potwierdzeń. Przykładowo, kiedy naciśniemy w pilocie sony przycisk volume up, wygenerowany zostanie kod B7E0, powtarzany co 1s gdy trzymamy przycisk, a po puszczeniu wygenerowane będzie 0x0000 (dwukrotnie). Zwielokrotnienie komunikatu to jak mniemam zabezpieczenie przed ewentualnym zakłóceniem, które spowodowało by brak zatrzymania silnika. Jednak drugim zabezpieczeniem jest sam 1 sekundowy timeout. Pozostałe przyciski generują tylko jeden kod 0x0000 po zwolnieniu nadawania. Co ciekawe, magistralą Aubus wędrują zarówno 8 jak i 16 bitowe dane w ramce.
Poniżej transakcja kodów gdy budzik ustawiony w tunerze budzi cały zestaw w celu załączenia muzyki z CD:
| dane | źródło | funkcja | 0xBF | ST | power on request | 0x1F | TA | power on commit | 0x11D7 | TA | mux set CD | 0x09EE | ST | track 9 | 0x0000 | ST | command clear | 0x6F | CD | start | 0x66 | CD | playback |
Tak skolei wygląda automatyczne wyłączenie zegarem (lub po odebraniu kodu power z pilota IR):
| dane | źródło | funkcja | 0xBE | ST | power off request | 0x1E | TA | ack |
Przełącznik źródeł (MUX)
Na przykładzie widać wyraźnie jak elementy zestawu między sobą gadają.
Analizując podejrzane dane, sprawdziłem też dokładnie jakie kody sterują multiplekserem, w celu zbudowania jego godnego następcy, który następnie zostanie wbudowany do wzmacniacza, jako integralna część, która w pierwowzorze z niewyjaśnionych przyczyn znalazła się w magnetofonie
*Wstępne założenia projektowe części sprzętowej nowego muxatora:*
Łatwy dostęp do pcb w celu upgradeu firmware w kontrolerze
Użycie HEF4052 jako przełączników
Zasilanie części analogowej z linii +-8V
Zasilanie części cyfrowej z +5.6VBU (cały czas)
Wzmacniacz operacyjny o dynamice co najmniej jak oryginalny M5218
Filtry dolnoprzepustowe przed kluczami jak w oryginale
Minimum 2 gniazda jack mini z tyłu obudowy wzmacniacza.
Przesyłanie odebranych kodów pilota na Aubus
Odbiornik IR za szybką wyświetlacza lub tak by nie zmieniać nic w obudowie
*Po realizacji:*
Łatwy dostęp do programowania (po otwarciu obudowy).
Mux przełącza wszystkie 6 sygnałów plus 1 jack sygnału za buforem (3x Jack, 2xRCA)
Zasilanie dla kluczy analogowych od strony + zasilania jest obniżone z 8V do 6.5V. Co gwarantuje dobrą współpracę z logiką kontrolera zasilaną 5V. (Co ciekawe, największy w miarę liniowy zakres pracy kluczy analogowych znajduje się właśnie nieco powyżej połowy napięcia zasilającego, ale przy amplitudach w zakresie 1vpp i tak nie ma to większego znaczenia).
Opamp użyty docelowo jako bufor to OPA2822, nieco z przypadku, ale ma on dobre parametry, a ja nie miałem nic lepszego w dilu, poza tym pełnoletnim samplem od TI
Filtry przed kluczami zostały nieco zmodyfikowane ze względu na niewygodę prowadzenia połączeń na płytce uniwersalnej. Kondensatory filtrujące są za rezystorami, a nie przed.
Dostępne jest 5 gniazd, przy czym jedno z nich to sygnał 'Tape' na złączu rca połączony równolegle z sygnałem na złączu systemowym. Jedno gniazdo Jack to sygnał wyjściowy zza przedwzmacniacza. Sygnały tunera oraz cd są pobierane tylko ze złącz systemowych.
Sygnał 'Tape' jest rutowany przez klucz, w przypadku podłączenia decka do taśmy, będzie normalnie obsługiwany, jednak tym razem mux decka pozostanie zignorowany (funkcje nagrywania z radia i CD powinny pozostać nie zakłócone).
Jednym z większych wyzwań tego projektu, było wymyślenie gdzie zostanie zainstalowana płytka przełączników. Z początku rozważałem możliwość umieszczenia jej na zewnątrz obudowy, jednak z praktycznych względów lepiej gdyby moduł był integralnym elementem TA. Ostatecznie płytka znajduje się w pewnym zaułku, gdzie ma dość blisko do linii sygnałowych, oraz dodatkowych gniazd znajdujących się z tyłu obudowy wzmacniacza. Ulokowanie jej, jest też korzystne ze względu na bliskość radiatora znajdującego się na potencjale masy, pomagającego w ekranowaniu układu. Jak widać na zdjęciach, kolejnym zadaniem było zadecydowanie rozwiązania 'portów' wejściowych. Z pomocą przyszedł sam wtrysk tylnej ścianki obudowy, w którym można było znaleźć miejsca wydające się być przeznaczone na takoweż. Z całą pewnością było na niej miejsce na 4 gniazda RCA, które były montowane w jednej z wersji wzmacniacza. Pozwoliłem sobie zatem użyć oryginalnego, podwójnego gniazda (zgadnijcie skąd go wziąłem), i dodać jeszcze 3 gniazda mini jack. Otwory pod jacki nawierciłem w taki sposób, że te są osadzone na wcisk bez kleju a naprawdę potrzeba by dużo siły żeby je wcisnąć do obudowy. Na schemacie widać jak płytka jest połączona z zasilaniem +5, +-8V, oraz z zasilaczem standby, któremu dostarcza/pobiera zasilanie, oraz steruje jego przekaźnikiem.
Zdalne sterowanie
Pierwotna wersja odbiornika, zakładała zwykłe przekazywanie kodów odebranych oryginalnym pilotem na magistralę Aubus, tak jak działo się to za pośrednictwem tunera ST6600. Po pewnym czasie doszedłem jednak do wniosku, że pilot do obsługi zestawu, jest bajerancki, ale wysuwanie i zasuwanie w celu obsługi urządzenia jest nieco uciążliwe i niepraktyczne (Poza tym nie udało mi się naprawić wyświetlacza - pęknięte grafitowe pcb). W związku z tym ostatecznie zdecydowałem się na translacje pilota z innej wieży, który najważniejsze funkcje ma na wierzchu, a brakujące guziki udało się obsłużyć w 'sposób kombinowany'
Od mechanicznej strony, sam dbiornik podczerwieni został umieszczony w dość specyficznym miejscu od spodu obudowy, ale nie było nic lepszego do dyspozycji, a wsadzanie go w pobliże vfd uznałem za niezbyt komfortowe:). W zakresie 5m nie ma problemu z działaniem pilota (przy zachowaniu w miarę kierunku na odbiornik głównie góra dół).
Total recall
Długi czas nie wiedziałem, że w latach 90 pamięci eeprom były traktowane przez inżynierów z sony z taką dozą nieufności. Podłączenie w to miejsce analizatora wykazało jedynie aktywność odczytania jednego bajtu pamięci w momencie startu cpu. Nic więcej nigdy nie udało mi się tam zaobserwować. Myślałem, że może zawartość pamięci uległa uszkodzeniu, i procesor nie odczytawszy poprawnej sygnatury olewa korzystanie z tej pamięci, lub służyła ona jakimś innym celom o których nie miałem zielonego pojęcia. Niestety nie pamiętałem w jaki sposób zachowywał się zestaw 30 lat temu, czy pamiętał ustawienia po odłączeniu zasilania. Do momentu gdy natrafiłem na funkcjonalność zapisu ustawień EQ do pliku (tak do pliku w pamięci eeprom właśnie). Okazało się, że pamięć służy tylko i wyłącznie do przechowania sześciu ustawień użytkownika (pochodnych kombinacji predefiniowanych profili i poziomu efektu). Projektanci nie wpadli jednak na pomysł, by użyć jej do zapamiętania, jakie parametry zostały ostatnio użyte, by przywrócić je po zaniku zasilania. Nawet poziom zaprogramowanej głośności budzika jest zapisywany jedynie w ulotnej pamięci RAM.
Translator i Multi pilot
Oryginalny nadajnik kodów zdalnego sterowania to kolejne ciekawe rozwiązanie w tej awangardowej konstrukcji. Zależnie od tego, jakie urządzenie zostanie wybrane na klawiaturze, te same przyciski funkcyjne, będą generowały różne kody. Więc raz pilot będzie od CD, innym razem od tunera itd. W celu ułatwienia odnalezienia się w tej wielofunkcyjności, projektanci wbudowali w niego wyświetlacz lcd ukazujący aktualny tryb pracy. Niestety w moim eksponacie wyświetlacz nie działa prawidłowo z powodu pękniętego pcb, ale może uda się naprawić problem grafitowym klejem przewodzącym. O działaniu oryginału wspominam w kontekście programu emulującego to zachowanie, który w zależności od ostatnio odebranego kodu (preset,tape,cd), funkcje pilota panasonic transkoduje w odmienny sposób. Niestety nie mamy tutaj ułatwienia w postaci napisu na wyświetlaczu, ale można się przyzwyczaić do tej niedogodności. Najważniejsze że wieża sony współpracuje z pilotem panasonic
Podsumowując działanie kodu translatora. Program tłumacza, w zależności od ostatnio odebranego kodu (użytego muxa CD,TAPE,TUNER,...). Będzie używał kodów pasujących do wybranego urządzenia. Najbardziej kłopotliwe było wymyślenie przełączania wszystkich muxów na 'wybrakowanym' pilocie. Ale zrealizowałem to na przycisku preset EQ, który musiał posiąść podwójną funkcjonalność. Przyciśnięty raz w odstępie czasu >2s przełącza na tryb preset (wtedy klawisze numeryczne są wyborem charakterystyk korekcji – pilot jest jakoby od wzmacniacza). Przytrzymany dłużej inkrementuje mux w kolejności diod na wzmacniaczu. Dodatkowo po czasie wyświetlania komunikatu na vfd, tryb z 'preset' jest przywracany na ostatnio używane urządzenie.
Ciekawostka, to brak przycisku play na pilocie panasonica. Z tego powodu w trybie 'preset' przyciski nad wyborem urządzeń są przypisane do ich kodów 'stop'. Ze względu na tą specyficzną guzikologię, przycisk pause/play w trybie CD/Tape został przypisany do przycisku stop pilota.
Ciekawe, czy w wieży panasonica, samo wybranie urządzenia powodowało start odtwarzania ?
ST6600emu (program)
Sterownik wymagał napisania biblioteki obsługującej SIRC i Audiobus oraz 48 bitowy standard kodów ir panasonica (Miałem na stanie takiego pilota od jakiejś starej wieży i zawsze chciałem go do czegoś użyć). Na koniec należało stworzyć kod emulujący zachowanie tunera, który jak wiemy zajmował się retransmisją danych z pilota IR w celu min. sterowania muxem sygnałowym.
Na ten moment jednak program mikrokontrolera implementuje translator kodów z pilota panasonic, jako że jest on wygodniejszy w codziennym użytkowaniu i bardziej poręczny.
Przyciski 'timer' oraz 'display' umożliwia załączenie zasilania transformatora bez załączania systemu, co powoduje zaświecenie zegarka na tunerze na czas około 1 minuty.
Procesor na płytce może mierzyć swoje napięcie, temperaturę i napięcie +8V, ale tylko ostatniego używamy by rozpoznać czy system jest w stanie aktywnym (i tak ostateczna wersja programu wymagała okrojenia adc, bo jak się okazało 4kB kodu to było trochę mało) .
Dodatkowo, po pierwszym włączeniu systemu (repower) procek wysyła do wzmacniacza rozkazy ładujące ustawienia equalizera z 'file 1' (taki substytut nieistniejącej we wzmaku funkjci pamiętania ustawień po zaniku zasilania).
Reflector (program)
Ostatnią fanaberią, konieczną do sterowania tunera 'cudzym' pilotem, było napisanie programu który dostarczy kody sircom rozpoznawane przez tuner od strony odbiornika IR. Na poprawne kody od strony Aubus niestety nie reagował. Zainstalowałem więc taką procesorową łatkę w postaci Tiny402 na płytce tunera. Akurat wszystkie potrzebne sygnały były w niewielkiej odległości od siebie, a sam procesor udało się przylutować na trzech nogach w miarę stabilnie i prawie estetycznie
Schemat (nieco poglądowy) przedstawia moduły emulatora tunera oraz zasilacza standby. Schematu reflectora brak, załączam w zamian źródło jego kodu, opartego o wspomniane wcześniej biblioteki (niestety asm). Dwa pliki zawierają pełną listę kodów z obydwu pilotów (pozyskane dane niezbędne do zbudowania translatora).
W następnym odcinku opowiem wreszcie o dźwięku z naszego 'hi endu' lat 90tych.
Pokażę wyniki pomiarów dynamiki i zniekształceń. Dowiemy się, jak mroczną marketingową tajemnicę kryje owa konstrukcja i czy tamto świetne brzmienie, w dzisiejszych czasach, nadal ucieszy ucho (nie?)przeciętnego słuchacza.
Fajne? Ranking DIY
