Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Domowe audio Granata - Procesor DSP

Granat :) 09 Aug 2020 20:19 4992 13
Tespol
  • Prezentowane urządzenie jest prywatną konstrukcją użytkownika forum i nie ma nic wspólnego z wyrobami firmy, którą reprezentuje w podpisie.

    Witam,

    Chcę przedstawić Wam swój domowy sprzęt audio, którego używam obecnie i który powstawał przez ostatnie kilka lat. W tym wątku będzie to procesor dsp. Linki do pozostałych sprzętów znajdują się na dole posta.

    Wszystkie elementy wykonałem sam, w sposób zgodny ze swoim poczuciem estetyki. Główny nacisk położyłem na stronę użytkową i praktyczną, a mniejszy na wizualną. Dlatego np. łatwiej było mi stworzyć pojedynczy egzemplarz układu na płytce uniwersalnej niż drukowanej.

    Domowe audio Granata - Procesor DSP

    To urządzenie to w zasadzie taki dodatek do całego zestawu. Ma wiele możliwości, ale wiele zależy od samego programu wgranego do procesora. Sercem urządzenia jest procesor dsp ADAU1701, zainstalowany jako karta do płyty głównej.

    Domowe audio Granata - Procesor DSP

    W późniejszej wersji również dostępny mocniejszy ADAU1452.

    Domowe audio Granata - Procesor DSP

    Płyta główna z kolei zawiera takie układy jak:
    - trzy kanałowy mikser stereo
    - wskaźnik wysterowania
    - cyfrowy regulator głośności
    - mikrokontroler zarządzający pracą całego urządzenia, obsługą wyświetlacza, zmiany i ładowania tzw. presetów procesora dsp

    Domowe audio Granata - Procesor DSP

    Urządzenie posiada trzy wejścia i jedno wyjście stereo. Każde wejście ma oddzielną regulację czułości. Po przekroczeniu poziomu 0,7V zaświeca się dioda informująca, że do przesterowania przetwornika ADC zostało ok. 10dB. Następnie sygnał trafia na przetwornik ADC wbudowany w układ scalony ADAU1701. Tutaj następuje właściwa obróbka audio, w zależności od programu procesora skompilowanego w SigmaStudio. W moim projekcje dostępnych jest 9 banków pamięci. Procesor ten jest dość szybki. U mnie w jednym banku pamięci zmieściły się takie wirtualne urządzenia jak:
    - 4-pasmowy kompresor
    - generator parzystych harmonicznych
    - regulacja głębi stereo w trybie M/S, każde z osobna
    - limiter wyjściowy

    Domowe audio Granata - Procesor DSP Domowe audio Granata - Procesor DSP

    Po wyjściu sygnału z przetwornika DAC, analogowy sygnał trafia na koniec do regulatora głośności DS1803. Regulacja głośności, oraz wybór jednego z 9 zapamiętanych programów dsp odbywa się za pomocą przycisków lub pilota 433MHz i jest wyświetlana na wyświetlaczu LED. Możliwa jest też regulacja parametrów samego programu dsp w czasie rzeczywistym, jednak narazie z tego nie korzystam.

    Domowe audio Granata - Procesor DSP

    Port usb służy do sterowania procesorem dsp w czasie rzeczywistym, wprowadzania i zapamiętywania programów.

    Urządzenie posiada jeszcze wejście sterujące przekaźnikiem od transformatora, za pomogą którego można go zdalnie włączać i wyłączać.

    ---
    linki do pozostałych konstrukcji:
    Procesor dsp:
    https://www.elektroda.pl/rtvforum/topic3719635.html

    Subwoofer:
    https://www.elektroda.pl/rtvforum/topic3719634.html

    Kolumny:
    https://www.elektroda.pl/rtvforum/topic3719632.html

    Przedwzmacniacz:
    https://www.elektroda.pl/rtvforum/topic3719629.html

    Wzmacniacz:
    https://www.elektroda.pl/rtvforum/topic3719626.html

    Cool? Ranking DIY
    Can you write similar article? Send message to me and you will get SD card 64GB.
    About Author
    Granat :)
    Level 34  
    Offline 
    Oficjalny profil. Przegląd produktów, informacje o nowościach:
    -- >> Granat-audio na FB << --

    granataudio.pl
    Has specialization in: systemy nagłośnieniowe
    Granat :) wrote 2989 posts with rating 575, helped 202 times. Live in city Jaworzno. Been with us since 2004 year.
  • Tespol
  • #2
    _lazor_
    Moderator of Designing
    ADAU1701 to dziwny twór, bo niby procesor DSP ale samodzielnie napisać kodu się nie da. Widziałem uzasadnienia, że używają algorytmów między innymi od Dolby i nie chcą aby ktoś zrobił im reverse engineering.

    W sumie dzięki takiemu podejściu można mniejszymi nakładami czasu zrobić bardzo ciekawe projekty.
  • Tespol
  • #3
    fifi_22
    Level 7  
    Jakiś czas temu próbowałem zacząć z Adau1701, niestety nic z tego nie wyszło. Sygnały generowane w dsp np. Sinus są ok, ale przy próbie użycia adc, są jakieś szumy i bzyczenie. Próbowałem różnych filtrów itd, nic nie pomogło. Pisałem nawet na forum analoga, to mi gość "zdiagnozował" użycie płytki 2-stronnej. Mógłbym liczyć na pomoc przy ponownej próbie uruchamiania?
  • #4
    Granat :)
    Level 34  
    Może nie rozdzieliłeś masy analogowej od cyfrowej, lub gdzieś się zapętla, albo zapomniałeś o jakimś kondensatorku gdzieś.
    Tak u mnie wygląda układ wejściowy. Przed nim jest bufor w postaci wzmacniacza operacyjnego, a za nim bezpośrednio nóżki procesora.
    Domowe audio Granata - Procesor DSP
  • #5
    katakrowa
    Level 22  
    Podziwiam wykorzystanie płytki uniwersalnej, nawet jeśli jest dobrej jakości to wolałbym narysować wszystko w jakimś programie wyprasować i wytrawić chyba suma summarum i tak byłoby szybciej niż na uniwersalnej.

    Kilka pytań:

    1. Po co osobne cyfrowe sterowanie głośnością skoro można było to zrobić na ADAU ( można skonfigurować wybrane piny tak aby sterowały głośnością balansem oraz innymi parametrami - kwestia odpowiedniego przygotowania wsadu w SigmaStudio ).
    2. Gdzie trzymasz alternatywne "programy" dla ADAU w pamięci programu ATMEG`i czy jest tam może jeszcze jakiś EEPROM, którego nie widać na zdjęciach?
    3. Czy możesz udostępnić kod źródłowy bo w sumie to chyba jedyna ciekawa rzecz w tym projekcie ?
    4. Co to za układ do wskaźnika wysterowania z 2 diodami ?
    5. Możesz wypisać jakie są te 3 pozostałe układy scalone na zdjęciu?
  • #6
    Granat :)
    Level 34  
    katakrowa wrote:
    Podziwiam wykorzystanie płytki uniwersalnej, nawet jeśli jest dobrej jakości to wolałbym narysować wszystko w jakimś programie wyprasować i wytrawić chyba suma summarum i tak byłoby szybciej niż na uniwersalnej.

    To czy szybciej zależy od tego kto by to robił :) Wiem jak to jest przy uruchamianiu jakiegoś układu pierwszy raz. Niby wszystko przemyślane, a tu o jakimś kondensatorku się zapomniało, albo coś trzeba inaczej podłączyć i już przeróbki na płytce.


    1. Dla bezpieczeństwa głośników, albo raczej słuchacza. Programowa regulacja głośności lubi płatać figle. Czasem coś strzeli przy zmianie parametrów, lub presetu. Czasem się przypadkowo wdusi myszą nie ten suwak co potrzeba.
    2. Pamięć programu adau1701 jest w zewnętrznym eepromie na płytce z dsp.
    3. Kod źródłowy w zasadzie nie jest ciekawy. Tzn. funkcjonalność dsp którą stworzyłem raczej nie będzie przydatna dla innych. Lepiej jak każdy sobie po swojemu ułoży z bloczków.
    4. To TL084 w układzie prostownika liniowego i komparatora stereo.
    5. ADAU1701, STM8S003, SST25VF016, Atmega8, TL084, TL082, DS1803, NJM5532.
  • #7
    katakrowa
    Level 22  
    Granat :) wrote:
    1. Dla bezpieczeństwa głośników, albo raczej słuchacza. Programowa regulacja głośności lubi płatać figle. Czasem coś strzeli przy zmianie parametrów, lub presetu. Czasem się przypadkowo wdusi myszą nie ten suwak co potrzeba.

    To robisz w kodzie/programie ADAU1701 wtedy z AtMega sterujesz tylko "guzikami" Vol+ / Vol- ( nic nie przeładowujesz / chyba, że masz na myśli przeładowania programu a nie parametrów ADAU ).

    A czy DS1803 to nie jest przypadkiem potencjometr z liniową charakterystyką ( a wydaje mi się że tak )?
    Jeśli tak to cała regulacja znajduje się właściwie na końcu skali i w sumie mimo 256 pozycji potencjometru to w istotnym dla odsłuchu zakresie pracy potencjometru masz kroki co kilka dB ( czyli nie będzie możliwości precyzyjnego ustawienia głośności ).
  • #8
    Granat :)
    Level 34  
    Chciałem, żeby sterowanie głośnością było poza procesorem, w torze analogowym.
    Nie ma znaczenia jaki jest potencjometr. Ważne jest jak zrobisz sterowanie. Zrobiłem sobie 32-elementową tablicę i każdy kolejny krok jest co 1dB. Max poziom to jest oczywiście bez tłumienia. Minimalny poziom jest -31dB, a 0 (mute) to wyciszenie, całkowite odcięcie sygnału.


    Tak wygląda wykres tłumienia DS1803-50 w zależności od pozycji wirtualnego suwaka. Pozycja suwaka dzielone przez 4 na osi poziomej, tłumienie w dB na pionowej. To jest wykres z włączonym jeszcze opornikiem 15k między wyjście wirtualnego suwaka a masę. Czasem dodaje się taki opornik, żeby z potencjometru liniowego zrobić logarytmiczny. Z marnym skutkiem, ale lepiej tak niż w ogóle.
    Domowe audio Granata - Procesor DSP
    Natomiast tak jak pisałem wyżej: wybrałem sobie z tej krzywej 32 punkty i mam 32-punktową regulację co 1dB.
  • #10
    Granat :)
    Level 34  
    Układ ADAU1701 ma opisane nóżki masy jako GDN i AGND. Te AGND to jest masa analogowa. Tak samo masy z wszystkich filtrów z wejścia i wyjścia podłączamy do masy analogowej. Później te masy muszą się ze sobą połączyć w jednym i tylko jednym punkcie, np. w zasilaczu.
  • #11
    Granat :)
    Level 34  
    Postanowiłem, że pokażę jeden z moich programów. Nie wiem czy komuś się to przyda, można to potraktować jako ciekawostkę. Funkcjonalność tego programu można porównać do procesora masteringowego, finalizera. Podobnych układów używa się w radio, tuż przed generatorem sygnału MPX. Oczywiście, ze względu na ograniczoną moc procesora ADAU1701, wiele algorytmów zostało uproszczonych do niezbędnego minimum, przy zachowaniu użyteczności, zwłaszcza do zastosowań amatorskich. Algorytmy te dość mocno ingerują w sygnał, dlatego aby na wyjściu uzyskać zadowalające brzmienie należy mieć duże doświadczenie w używaniu procesorów dynamiki.

    Program służy do uzyskania jednolitej barwy i głośności sygnału wyjściowego, przy zmieniających się sygnałach wejściowych. Jak można się domyślić, działa to w pewnych granicach dynamiki, dlatego ważne jest, żeby sygnał wejściowy zawierał się w pewnym rozsądnym przedziale: od -20 do -6dBFS RMS.
    Na wejściu stereo mamy filtr dolno-zaporowy w celu odcięcia ewentualnej składowej stałej, w raz z regulacją wstępnego wzmocnienia. Następnie sygnał przechodzi przez blok automatycznego dopasowania wzmocnienia (w skrócie z ang. AGC), skąd trafia na wzmacniacz efektu stereo. Później sygnał rozdzielany jest na 4 pod-pasma: basów, tonów niskich, tonów średnich i tonów wysokich. Każde pasmo trafia na kolejny stopień automatycznej regulacji wzmocnienia, a następnie limiter. Sygnały wszystkich pasm są sumowane i trafiają na ręczną regulację wzmocnienia (np. w celu skompensowania utraty głośności na poprzednich stopniach). Następnie sygnał wchodzi jednocześnie na dwa bloki: pseudo generator harmonicznych i pogłos. Stąd mamy 4 kanały: lewy, prawy oraz pogłos, które wchodzą na końcową regulację głośności i stamtąd już na wyjście procesora.
    Tak wygląda główne okno programu.
    Domowe audio Granata - Procesor DSP


    Teraz opiszę wszystkie bloki funkcyjne po kolei.

    Blok wejściowy składa się z jednego filtra górno-przepustowego 2-rzędu Butterwortha, z możliwością regulacji wzmocnienia. Wstępna regulacja wzmocnienia przydać się może do dopasowania poziomu sygnału wejściowego do zalecanych -15dB.
    Domowe audio Granata - Procesor DSP

    Blok pełniący funkcję automatycznej kontroli wzmocnienia składa się z procesora dynamiki, którego charakterystyka przetwarzania przypomina limiter. Nie jest to jednak peak-limiter, a raczej limiter RMS z nastawionym, długim czasem ataku i odpuszczenia. Limiter ten sterowany jest przez zewnętrzne źródło, tzw. sidechain. Pod wejście sidechain podpięty jest sumator L+R oraz filtr środkowo-przepustowy o charakterystyce zbliżonej do krzywej korekcji dB(A). Takie podłączenie pozwala automatyce bardziej naturalnie reagować na docierający sygnał.
    Domowe audio Granata - Procesor DSP

    Blok nazwany stereo imager służy do poszerzenia bazy stereo w nagraniach stereofonicznych. Sam z siebie niczego nie dodaje, a w nagraniach monofonicznych nie zmienia niczego. Jego działanie polega na przejściu z sygnału lewy prawy, na sumę i różnicę kanałów (z ang. M/S). Po sumowaniu lub odejmowaniu kanałów, szczytowy poziom jest wyższy o 6dB niż poziom dla pojedynczego kanału L lub R. Dlatego na sumie L+R mamy tłumik 6dB, a na różnicy go nie ma. W ten sposób, na wyjściu bloku, sygnał stereo ma większe wzmocnienie niż część monofoniczna, która pozostała bez zmian.
    Domowe audio Granata - Procesor DSP

    Blok 4D filter to 4-drożny crossover, służący do podziału na 4 pod-pasma. Jest to prosty zestaw filtrów Linkwitz-Riley'a 4-rzędu. Częstotliwości podziału to 120, 1800 i 5500Hz. Od tej pory każde pod-pasmo będzie traktowane przez dalszą część automatyki osobno, aż do ponownego zsumowania.
    Domowe audio Granata - Procesor DSP

    Blok o nazwie 4D AGC, jak już można się domyślić, służy do automatycznej regulacji wzmocnienia każdego z 4 pod-pasm indywidualnie. Jeśli w sygnale wejściowym jest np. za mało góry, wówczas wzmocnienie dla pod-pasma wysokich tonów będzie większe niż pozostałych, itp. itd. Tutaj również użyłem dynamiki na zasadzie limitera RMS. Jego działanie jest dość głębokie, dlatego należy poświęcić dużo uwagi podczas ustawiania parametrów ataku i odpuszczenia. Zbyt krótki czas ataku spowoduje częste i nagłe zmiany wzmocnienia dla danego pasma. Natomiast zbyt krótki czas odpuszczenia da efekt pompowania i znacznie zwiększy zagęszczenie dźwięków. Z kolei zbyt długie czasy zmniejszą skuteczność urządzenia. Ustawień tych należy dokonywać w zależności od rodzaju muzyki jak i własnych upodobań.
    Domowe audio Granata - Procesor DSP

    Blok 4D limiter to 4-pasmowy peak-limiter. Zbudowany został w topologii tzw. Look-Ahead limiter. To znaczy, że automatyka limitera reaguje z wyprzedzeniem na docierający sygnał, nie powodując dzięki temu zniekształceń. Wszystkie 4 pod-pasma są zbudowane tak samo. Najpierw sygnał wchodzi na ręczny regulator poziomu sygnału, którym ustawiamy wysterowanie limitera. Suwak bardziej w górze, to większe wysterowanie. Powoduje ono, że większa część amplitudy sygnału znajduje się powyżej punktu zadziałania limitera (threshold). A więc oznacza to bardziej skompresowany, mniej dynamiczny dźwięk. Mniejsze wysterowanie skutkuje mniejszym ograniczaniem peaków, co za tym idzie w rezultacie dźwięk o większej dynamice. Następnie sygnał trafia jednocześnie na opóźnienie i na sidechain automatyki limitera. To stąd limiter zawczasu 'wie', że za chwile otrzyma głośny peak i należy zmniejszyć wzmocnienie. Te opóźnienie jest różne dla różnych częstotliwości. Największe dla basu, najmniejsze dla góry. Dlatego na wyjściu jest dodatkowe opóźnienie kompensujące, dzięki któremu sygnały ze wszystkich czterech pod-pasm są ze sobą w fazie. Na samym końcu jest ręczny regulator poziomu dla każdego pasma. Można nim wyregulować końcowy balans tonalny.
    Domowe audio Granata - Procesor DSP

    Później następuje zsumowanie wszystkich pasm z powrotem w całość, oraz dostępna jest ręczna, wyjściowa regulacja wzmocnienia całości.

    Blok generator harmonicznych jest jednym z najbardziej uproszczonych algorytmów. Nie mniej, dość dobrze odbierany przez ludzki słuch. Działa na zasadzie dodawania w takt muzyki, odfiltrowanego szumu. W większości przypadków, słuchając normalnej, dobrej jakości muzyki, algorytm ten będzie zbędny. Jednak np. przy odtwarzaniu muzyki z rozgłośni telewizyjnej, gdzie na niektórych kanałach pasmo zawężone jest do 13kHz, użycie tego algorytmu może poprawić sytuację, dodając dźwiękowi tzw. blasku, powietrza. Suwakiem opisanym jako poziom harmonicznych można regulować siłę działania efektu.
    Domowe audio Granata - Procesor DSP

    Blok pogłos to również jeden z uproszczonych algorytmów generujących pseudo pogłos. Tym razem urządzenie nic od siebie nie dodaje, wykorzystując jedynie zawarte w sygnale informacje stereo. Zasada działania jest podobna jak w dawnym dolby surround. Algorytm bierze informację o składowej stereofonicznej i przekazuje ją na zestaw filtrów oraz opóźnienie. Dodanie opóźnienia jest niezbędne do prawidłowej lokalizacji dźwięków z kolumn przednich. W użytym procesorze DSP ADAU1701 nie ma wystarczającej pamięci dla odpowiednio dużego opóźnienia, dlatego zastosowano największe możliwe. Na wyjściu jest jeszcze dodatkowe opóźnienie i regulacja wzmocnienia dla jednego z wyjść. To akurat jest potrzebne wyłącznie mi, do skompensowania różnicy w odległości między głośnikami surround a słuchaczem.
    Domowe audio Granata - Procesor DSP

    Poniżej wrzucam do pobrania plik z programem.
    ---
    [edit]
    ver 4c:
    - wyrzucono końcową regulację wzmocnienia
    - na rzecz regulacji efektu stereo
    Attachments:
  • #12
    conisl
    Level 10  
    Witam,

    Trochę dziwi mnie to, że potencjometry oraz włącznik zasilania umieściłeś na tylnej ściance obudowy, a na przedniej miałeś tyle wolnego miejsca. Trochę to chyba niewygodne...

    Pozdrawiam
  • #13
    Granat :)
    Level 34  
    Słuszna uwaga. W sumie nie opisałem jak działa całość zestawu.
    Potencjometry służą jedynie dopasowaniu wzmocnienia podłączonego źródła. Robi się to raz i więcej nie rusza. Natomiast co do wyłącznika: urządzenie posiada gniazdo, na które podając napięcie można włączać i wyłączać procesor. To pudełko stanowi część zestawu, a całość włączam jednym wyłącznikiem na innym urządzeniu.
    Panel frontowy procesora jest za mleczną szybą (stąd też taki duży wyświetlacz). Zazwyczaj i tak steruje się pilotem. Poza tym radiowym, dorobiłem również pilota rc-5.

    Zachęcam wszystkich, którzy bawią się tym popularnym układem (ADAU1701), aby pobrali i przetestowali sobie mój program. Można uzyskać ciekawe brzmienie. Wszystko jest wstępnie dostrojone.