Elektroda.pl
Elektroda.pl
X
Relpol
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Multiplekser audio sterowany przez port USB

Kubald 28 Kwi 2013 17:49 29664 15
  • Multiplekser audio sterowany przez port USB

    Autor zwykł korzystać naprzemiennie z głośników i słuchawek. Częściej używał jednak tych drugich, ale kiedy chciał uruchomić głośniki, potrzeba było odłączyć słuchawki i przyłączyć głośniki do wyjścia karty dźwiękowej. Autor chciał ten kłopot rozwikłać już od dłuższego czasu, ale żadne rozwiązanie nie przychodziło mu do głowy, dopóki nie zobaczył projektu przełącznika audio w serwisie Hackaday.

    Zdecydował wtedy zbudować własny, prosty multiplekser audio.

    Multiplekser audio sterowany przez port USB

    Cechy urządzenia:
    1 wejście, 2 wyjścia (lub na odwrót)
    Zbudowany w oparciu o układ FT232R (dostępne są sterowniki dla systemów Windows, MacOS i Linux)
    Prosty do obsługi z wykorzystaniem dowolnego programu terminala
    Pobiera zaledwie około 15 mA prądu
    Odizolowana masa analogowa
    Typowe złącza audio 3,5 mm

    Więc, po prostu, jest to pobierający niewiele prądu, sterowany przez USB przekaźnik służący przełączaniu sygnałów audio.
    Po podłączeniu urządzenia do komputera zostaje ono wykryte przez system operacyjny jako wirtualny port szeregowy (COMx w systemach Windows, /dev/ttyUSBx w systemach Linux).
    Z urządzeniem można się komunikować za pomocą dowolnego programu terminala i kontrolować jego pracę za pomocą trzech jednoznakowych komend.

    Autor do sterowania multiplekserem wykorzystuje program Terminal v1.9b.

    Multiplekser audio sterowany przez port USB

    Obsługiwane są następujące komendy:
    a - aktywuj kanał A
    b - aktywuj kanał B
    t - przełącz kanały
    Po realizacji każdej komendy urządzenie przekazuje komunikat, w którym wskazany jest aktualnie aktywny kanał.
    Na przykład po wysłaniu komendy "b" urządzenie odpowie komendą "CH B", potwierdzając aktywację kanału B.
    Jeśli wysłana zostanie jakakolwiek inna, niż wymienione, komenda, urządzenie odpowie komunikatem "Unknown".





    Projekt:

    Multiplekser audio sterowany przez port USB

    Jak widać, masa analogowa została całkowicie odizolowana od masy cyfrowej. Autor dodatkowo wykorzystał górną warstwę miedzi na płytce drukowanej jako ekran dla obu mas. Pomaga to ograniczyć wpływ szumu wyłapywanego w części audio, a pochodzącego od części cyfrowej układu i innych źródeł pola elektromagnetycznego.

    Multiplekser audio sterowany przez port USB

    Schemat blokowy urządzenia jest bardzo prosty:

    port USB<—>FT232R<—>ATtiny13A<—>przekaźnik

    Autor wyjaśnił tylko niektóre aspekty związane z projektem urządzenia.
    Przekaźnik nie jest podłączony bezpośrednio do wyprowadzenia mikrokontrolera - dołączone są elementy R3 i C2. Ma to na celu obniżenie poboru prądu przez przekaźnik z 28 mA do około 12 mA. Autor opisał ten sposób w innym artykule: Using Relays (Tips & Tricks). Może to być pomocne w przypadku urządzeń przyłączanych do "zatłoczonego" huba USB, gdzie różnica w poborze prądu wynosząca nawet 15 mA ma duże znaczenie. Nie jest oczywiście konieczne każdorazowe stosowanie takiej metody.

    Wyprowadzenie PB3 procesora przyłączone jest do pinu CBUS3 układu FT232R przez rezystor podciągający 10 kΩ, co pozwala uwzględnić zastosowanie opcji oszczędzania energii lub może być wykorzystane do dostarczania sygnału taktującego do procesora ATTiny13A. Użytkownik może zmieniać funkcje wyprowadzeń CBUS układu FT232R, stosując program FT_Prog dostępny na stronie producenta układu.
    Koralik ferrytowy na szynie zasilania z portu USB ma na celu redukcję zakłóceń, których źródłem może być układ FT232R. Więcej na ten temat można przeczytać w karcie katalogowej układu.

    Multiplekser audio sterowany przez port USB

    Na początku autor chciał wykonać urządzenie na płytce jednostronnej, ale rozważał też użycie dwustronnego laminatu. W zaprojektowanym urządzeniu złącze USB znajduje się od spodu płytki, natomiast złącza audio montowane są przewlekanie, od góry. Oczywiście sposób montażu można dowolnie zmieniać.

    Multiplekser audio sterowany przez port USB

    Jeśli identyczny, jak użyty w urządzeniu przekaźnik nie jest dostępny, można wykorzystać jakikolwiek inny przekaźnik DPDT na 5 VDC, który poborem prądu nie będzie przewyższał wydajności prądowej portów mikrokontrolera.
    Dla innego przekaźnika konieczna może być zmiana wartości elementów R3 i C2 (jeśli jednak pobór prądu nie jest czynnikiem kluczowym, w ich miejsce można zastosować zworę).

    Wybór procesora i oprogramowanie:
    Do tak prostego zadania autor postanowił wyszukać tani mikrokontroler (najlepiej od Atmela lub Microchipa), z niewielką liczbą wyprowadzeń i sprzętowym UARTem. Najtańszym procesorem okazał się być PIC16F688T od Microchipa.
    Jednak 14 wyprowadzeń, jakie posiadał, było zbędne w tak prostym urządzeniu, więc autor wykorzystał procesor ATTiny13A. UART w przypadku tego procesora zrealizowano programowo. Autor posiłkował się notą aplikacyjną Atmela AVR304 pt. “Half Duplex Interrupt Driven Software UART”. Wykorzystany został w tym celu 8-bitowy timer i jedno przerwanie zewnętrzne, co jest nawet dużą przesadą w tak prostym urządzeniu. Można zaimplementować UART bez wykorzystania przerwań i timerów, sposób ten pochłonie też niewiele pamięci.
    Przed zaprogramowaniem procesora załączonym kodem należy ustawić fusebity tak, by taktowanie wynosiło 4,8 MHz.

    Problemy:
    Jedyny kłopot w pracy urządzenia sprawiał wewnętrzny oscylator RC procesora ATTiny13A. Transmisja UART jest bardzo wrażliwa na zmiany częstotliwości taktowania. Wewnętrzny oscylator procesora jest kalibrowany dla zasilania 3V i temperatury otoczenia 25°C, ale w opisywanym urządzeniu zasilany jest on wyższym napięciem i może nawet nie uruchamiać się poprawnie po zaprogramowaniu. Dlatego możliwa jest konieczność skorygowania liczby cykli timera w kodzie źródłowym (opisane jest to w komentarzach do kodu).
    Problem można też wyeliminować, stosując układ FT232R jako źródło sygnału zegarowego, mając nadzieję, że wewnętrzny oscylator w kości FT232R jest dokładniejszy, niż ten w procesorze. Można też do układu FT232R podłączyć zewnętrzny kwarc - byłoby to idealne rozwiązanie. Autor planuje, że kiedyś porówna stabilność oscylatorów w układach FT232R i ATTiny13A. Jeśli komuś udało się dokonać takiego porównania, autor będzie wdzięczny za przedstawienie wyników.

    Na stronie źródłowej dostępny jest projekt urządzenia (w formacie Eagle’a) i kod źródłowy.


    Fajne! Ranking DIY
  • Relpol
  • #2 28 Kwi 2013 21:45
    Xaveri
    Poziom 17  

    Porażka... Mając FT232 jeszcze procka ładował do tego.

  • Relpol
  • #3 28 Kwi 2013 21:50
    neo_dc
    Poziom 32  

    Wystarczyłby przełącznik dwubiegunowy + 2 gniazda, kawałek przewodu i jeden wtyk minijack. Tutaj nieco strzał z armaty do muchy, ale sam projekt bardzo schludny :)

  • #4 28 Kwi 2013 22:49
    seg
    Poziom 12  

    Glupie to. Łatwiej mu wejść w terminal niż przepiąć kabel? Proponuję rozwiązanie Kolegi z wcześniejszego postu, lub 2 przyciski, bistabilny przekaźnik, 3 gniazda i gotowe, skoro ma być "automatyka ;)" nie wspominając o "żadnym" poborze prądu. Po cholerę utrudniać sobie życie.

  • #5 29 Kwi 2013 07:23
    hardtmuth
    Poziom 20  

    Można również, skoro korzysta z FT232, wykorzystać linie DTR/RTS podłączone do przekaźnika.

  • #6 29 Kwi 2013 11:03
    webmortiz
    Poziom 20  

    Projekt fajny, ale sztuka dla sztuki. Sam potrzebowałem jakiś czas temu coś podobnego bo miałem podobny problem, jednak moje założenia były następujące:

    1. dwa wejścia - możliwość przełączania dwóch źródeł (dałem żonie możliwość puszczania dźwięku z jej laptopa na głośnikach, lub ewentualnie jak PS2 podłączałem żeby pograć w FF12)
    2. dwa wyjścia - standard - słuchawki i głośnika
    3. Jako że korzystam dużo ze skype dodałem typową przelotkę na mikrofon żeby nie rozrywać kabla od majka przy słuchawkach i wszystko było w jednym miejscu

    Z początku też chciałem zrobić jakieś czary z mleka z procesorami, podświetleniem i sterowaniem z kompa ale skończyło się na dwóch przełącznikach, 6 wejściach minijack, garści kabelków i jakiejś standardowej plastikowej obudowie. Właśnie jestem na etapie przerabiania żeby trochę schludniej wyglądało, może nawet kiedyś się tym pochwalę ale nie wiem czy przy tak prostej konstrukcji jest się czym chwalić.

  • #7 29 Kwi 2013 21:58
    adambehnke
    Poziom 24  

    Sam osobiście szukam jakiegoś schematu który umożliwi mi przełączanie toru audio(mono) z jednego wejścia na 8 wyjść ale za żadne skarby nie chcę używać przekaźników.
    U mnie wygląda to tak że procesor generuje na jednym z pinów dźwięk (dokładnie odtwarzam wav-y z karty pamięci) i właśnie w tym miejscu muszę sobie umieścić jakiś selektor wyjść gdyż układ który robię ma za zadanie przełączać "gadaczkę" centrali alarmowej między ośmioma pomieszczeniami.
    Oczywiście każdy głośniczek w danym pomieszczeniu będzie musiał posiadać swój własny wzmacniacz audio.
    Chcę aby nie było słychać jakichkolwiek "trzasków" i innych niepotrzebnych dźwieków podczas przełączania pomieszczeń.
    Oczywiście owy przełącznik musi być sterowany programowo z procesora.
    Może ktoś z kolegów może mnie lekko naprowadzić na trop.
    Dodam że cały układ jaki projektuje będzie pracować na 5v.

  • #8 29 Kwi 2013 22:39
    Piotrek1970
    Poziom 16  

    adambehnke: jeżeli ma być prosto to proponuje CD4051 1-->8 multiplexer, ważne aby zasilić go napięciem symetrycznym -na przykład dodać ICL7660 i odchodzi Ci przebudowa zasilania. To tylko propozycja, pewnie znajdą się rozwiązania bardziej profi ;-)

    Pzdr, Piotrek

  • #9 29 Kwi 2013 23:55
    adambehnke
    Poziom 24  

    Nie musi być prosto. Chcę to zrobić raz a porządnie. Jestem na etapie projektowania(wytrawianie PCB najwcześniej w połowie maja) więc wszystko możliwe.

  • #10 30 Kwi 2013 09:29
    SylwekK
    Poziom 29  

    Nieeee, to lekki przerost formy... można było przynajmniej użyć jakiejś scalonej struktury do przełączenia sygnału zamiast mechanicznego przekaźnika jak już angażujemy procek do tak prostej czynności.

  • #11 30 Kwi 2013 10:07
    n6210
    Poziom 15  

    "UART bez wykorzystania przerwać" - raczej miało być "przerwań" :)

    No cóż ja też bardzo lubię ATtiny13 i wykorzystuję je gdzie się tylko da ale w tym projekcie wykorzystałbym raczej jedną z linii modemowych do sterowania :)
    Zgadzam się z przedmówcą, że procesor to jednak przerost formy nad treścią. Pewnie chodziło o wykorzystanie tego softwarowego UARTa czy coś.

  • #14 30 Kwi 2013 21:51
    861309
    Użytkownik usunął konto  
  • #15 02 Maj 2013 16:36
    neo_dc
    Poziom 32  

    miomol - niektóre karty dźwiękowe słabiej radzą sobie z mniejszą impedancją dwóch urządzeń, dlatego lepiej jest fizycznie odłączyć drugie urządzenie.

  • #16 05 Maj 2013 13:11
    elektryku5
    Poziom 37  

    Warto jeszcze wspomnieć o tym, że wzmacniacze/głośniki często mają wyjście na słuchawki i po wpięciu gniazdo rozłącza głośniki dając sygnał na słuchawki, raczej szybciej będzie wpiąć jack niż tyle kombinować, albo jak tego nie ma, to wspomniany przełącznik i po sprawie.

  Szukaj w 5mln produktów