Mikser audio ze sterowaniem cyfrowym P R O J E K T Y Mikser audio ze sterowaniem cyfrowym, część 1 kit AVT-490 Konstrukcja urzÄ…dzenia, ktÛre niu tÅ‚umienia sygnaÅ‚u. NapiÍcia prezentujemy w artykule, jest bar- z suwakÛw oÅ›miu potencjomet- dzo prosta. Schemat blokowy mik- rÛw sÄ… doÅ‚Ä…czone do wejśĘ portu sera z cyfrowym sterowaniem mikrokontrolera, ktÛre skonfigu- przedstawiono na rys. 1. BÍdzie rowano jako wejÅ›cia analogowe pomocny w wyjaÅ›nieniu zasady wewnÍtrznego przetwornika A/C. Tym razem w îProjekcie dziaÅ‚ania urzÄ…dzenia. Mikrokontroler kolejno mierzy z okÅ‚adkiî siÍgnÍliÅ›my po W odrÛÅ‚nieniu od analogo- wszystkie napiÍcia, a nastÍpnie niezwykle interesujÄ…cy ukÅ‚ad wych konsol mikserskich, w na- szeregowo wysyÅ‚a odpowiednie scalony firmy Analog Devices szym mikserze potencjometry tyl- sÅ‚owo sterujÄ…ce do scalonej kon- - SSM2163. Na bazie tego ko poÅ›rednio wpÅ‚ywajÄ… na amp- soli mikserskiej - ukÅ‚adu ukÅ‚adu powstaÅ‚ 8-kanaÅ‚owy litudÍ sygnaÅ‚u danego kanaÅ‚u, SSM2163. WewnÍtrzne tÅ‚umiki mikser audio, o bardzo tzn. sygnaÅ‚ Å‚adnÄ… drogÄ… audio nie tego ukÅ‚adu wpÅ‚ywajÄ… na ampli- dobrych parametrach ìprzechodziî przez nie. SpeÅ‚niajÄ… tudÍ sygnaÅ‚Ûw podawanych na akustycznych. one natomiast rolÍ ürÛdeÅ‚ napiÍĘ wejÅ›cie wzmacniacza sumujÄ…ce- NajwiÍkszÄ… zaletÄ… tego odniesienia, ktÛrych wartośĘ nie- go, ktÛry stanowi integralnÄ… czÍśĘ sie informacjÍ o poÅ‚Ä…danym stop- ukÅ‚adu SSM2163. miksera jest to, Å‚e zastosowane w nim potencjometry nigdy nie bÍdÄ… trzeszczeĘ, co jest najwiÍkszÄ… zmorÄ… discjockeyÛw. W pierwszej czÍÅ›ci artykuÅ‚u przedstawimy konstrukcjÍ urzÄ…dzenia, w kolejnej sposÛb jego komputerowego sterowania. Rys. 1. Sposób sterowania ukÅ‚adu SSM2163. Elektronika Praktyczna 2/99 42 Mikser audio ze sterowaniem cyfrowym (adres z informacjÄ… o doÅ‚Ä…czeniu Tab. 1. do kanaÅ‚Ûw, dane), ktÛrych cha- WejÅ›cie W DoÅ‚Ä…cz Numer W Współczynnik rakterystykÍ zawarto w tab. 1. do wejÅ›cia tÅ‚umienia (tab. 2) WartoÅ›ci wspÛÅ‚czynnika tÅ‚umie- kanaÅ‚u nia, w zaleÅ‚noÅ›ci od wartoÅ›ci za- CH1 1 x x L R 0 0 0 0 x D5 D4 D3 D2 D1 D0 pisanej na szeÅ›ciu mÅ‚odszych bi- CH2 1 x x L R 0 0 1 0 x D5 D4 D3 D2 D1 D0 tach bajtu danej, przedstawiono CH3 1 x x L R 0 1 0 0 x D5 D4 D3 D2 D1 D0 w tab. 2. CH4 1 x x L R 0 1 1 0 x D5 D4 D3 D2 D1 D0 Interfejs szeregowy ukÅ‚adu CH5 1 x x L R 1 0 0 0 x D5 D4 D3 D2 D1 D0 SSM2163 moÅ‚e wspÛÅ‚pracowaĘ CH6 1 x x L R 1 0 1 0 x D5 D4 D3 D2 D1 D0 z mikrokontrolerem na dwa spo- CH7 1 x x L R 1 1 0 0 x D5 D4 D3 D2 D1 D0 soby: CH8 1 x x L R 1 1 1 0 x D5 D4 D3 D2 D1 D0 - jako interfejs 3-przewodowy W - oznacza bit wskazujÄ…cy bajt adresowy (=1) lub danych (=0) (sygnaÅ‚y !WRITE i !LOAD poÅ‚Ä…- Jeżeli bit L lub R jest ustawiony na 1, adresowane wejÅ›cie jest doÅ‚Ä…czone do wskazanego nim czone razem) - rys. 4; wyjÅ›cia. - jako interfejs 4-przewodowy z rozdzielonymi fazami zapisu Po krÛtkiej analizie tego opisu Opis miksera bajtu i jego przesÅ‚ania do odpo- moÅ‚na stwierdziĘ, Å‚e zastosowany ObjaÅ›nienia rozpoczniemy od wiedniego rejestru - rys. 5. w urzÄ…dzeniu proces sterowania skrÛtowego omÛwienia dziaÅ‚ania Na rys. 6 przedstawiono sche- jest jak ìmasÅ‚o maÅ›laneî, ponie- ukÅ‚adu SSM2163, ktÛry jest naj- mat najbardziej interesujÄ…cego, waÅ‚ analogowe wielkoÅ›ci (poÅ‚oÅ‚e- waÅ‚niejszym elementem miksera. z punktu widzenia programisty, nie suwaka potencjometru, war- Jego schemat blokowy przedsta- fragmentu cyfrowego interfejsu tośĘ napiÍcia na nim) sÄ… przetwa- wiono na rys. 2. ukÅ‚adu SSM2163. DziÍki szerego- rzane na postaĘ cyfrowÄ… po to, Podstawowym blokiem ukÅ‚adu wemu wyjÅ›ciu (SDO) jest moÅ‚liwe aby w ukÅ‚adzie SSM2163 ponow- SSM2163 sÄ… programowalne, 64- szeregowe Å‚Ä…czenie wielu takich nie zostaÅ‚y zamienione na ìpra- pozycyjne tÅ‚umiki rezystancyjne ukÅ‚adÛw ze sobÄ…, co uÅ‚atwia wieî analogowÄ… wielkośĘ, czyli (DCA), doÅ‚Ä…czone do matrycy konstruowanie konsol mikserskich amplitudÍ sygnaÅ‚u na wyjÅ›ciu. Na przeÅ‚Ä…czajÄ…cej sygnaÅ‚y audio i - o bardziej skomplikowanej archi- pierwszy rzut oka takie operacje dalej - dwÛch wzmacniaczy su- tekturze i wiÍkszych, niÅ‚ w na- nie majÄ… gÅ‚Íbszego sensu, lecz nie mujÄ…cych. Uproszczony schemat szym przypadku, moÅ‚liwoÅ›ciach. bez powodu Analog Devices wy- toru audio pokazano na rys. 3. UrzÄ…dzenie skÅ‚ada siÍ z dwÛch myÅ›liÅ‚ ukÅ‚ad SSM2163. UkÅ‚ad SSM2163 ma 8 wejśĘ zasadniczych czÍÅ›ci: dla sygnaÅ‚u audio, ktÛre moÅ‚na - gÅ‚Ûwnego moduÅ‚u miksera z za- doÅ‚Ä…czaĘ (w dowolnej silaczem, wzmacniaczem mocy, kombinacji) do dwÛch cyfrowym potencjometrem i mik- wyjśĘ, dziÍki czemu ope- rokontrolerem sterujÄ…cym (sche- rator konsoli miksujÄ…cej mat na rys. 7); ma ogromnÄ… swobodÍ - moduÅ‚u wskaünika wysterowa- projektowania przestrze- nia (schemat elektryczny przed- ni düwiÍkowej. Wszyst- stawiono na rys. 8). kie nastawy sÄ… wpisywa- Zadanie mikrokontrolera US1 ne do ukÅ‚adu SSM2163 jest bardzo proste - odczytuje poprzez szynÍ szeregowÄ… kolejno napiÍcie na analogowych w 8-bitowych pakietach wejÅ›ciach CH1..8 (port PB) i po Rys. 2. Schemat blokowy ukÅ‚adu SSM 2163. Rys. 3. Budowa pojedynczego toru audio. Elektronika Praktyczna 2/99 43 Mikser audio ze sterowaniem cyfrowym Tab. 2. WartoÅ›ci współczynnika tÅ‚umie- nia w zależnoÅ›ci od stanu bitów D5..0. TÅ‚umienie D5 D4 D3 D2 D1 D0 0dB 0 0 0 0 0 0 -1 dB 0 0 0 0 0 1 -2 dB 0 0 0 0 1 0 -3 dB 0 0 0 0 1 1 Ë% Ë% Ë% Ë% Ë% Ë% Ë% Ë% Ë% Ë% Ë% Ë% Ë% Ë% Ë% Ë% Ë% Ë% Rys. 4. 3-przewodowe sterowanie ukÅ‚adem SSM2163. -62 dB 1 1 1 1 1 0 -63 dB 1 1 1 1 1 1 dwukanaÅ‚owego wskaünika z pro- gramowanym peak-holdem oraz skomplikowanym ukÅ‚adem steru- jÄ…cym matrycÍ LED. DziÍki zasto- sowaniu systemu zÅ‚oÅ‚onego mul- tipleksowania, 24 diody Å›wiecÄ…ce sterowane sÄ… przez zaledwie 10 wyprowadzeÒ! Rys. 5. 4-przewodowe sterowanie ukÅ‚adem SSM2163. Potencjometry P3 i P4 sÅ‚uÅ‚Ä… do przetworzeniu przez wewnÍtrzny UkÅ‚ad US3 pracuje w trybie wyskalowania wskaünika. Zmiana przetwornik 8-bitowy na postaĘ stereofonicznym, z wyÅ‚Ä…czonÄ… re- wartoÅ›ci elementÛw C52, R4 oraz cyfrowÄ…, nieco obrobione dane gulacjÄ… balansu. Do zaciskÛw wir- C53, R5 wpÅ‚ywa na staÅ‚Ä… czasowÄ… wysyÅ‚a szeregowo do ukÅ‚adu US2. tualnych suwakÛw potencjomet- podtrzymania wskazania szczyto- RolÍ 3-przewodowego interfejsu rÛw US3 doÅ‚Ä…czone sÄ… potencjo- wej wartoÅ›ci sygnaÅ‚u. MoÅ‚na jÄ… szeregowego speÅ‚niajÄ… wyprowa- metry P1 i P2, ktÛre sÅ‚uÅ‚Ä… do dobraĘ zaleÅ‚nie od indywidual- dzenia PA0..2. ustalenia maksymalnego poziomu nych upodobaÒ. SygnaÅ‚y analogowe doÅ‚Ä…czane sygnaÅ‚u na wyjÅ›ciu wzmacniacza PrzeÅ‚Ä…czniki Sw1 i Sw2 sÅ‚uÅ‚Ä… sÄ… do wejśĘ VIN1..8 miksera. SkÅ‚a- mocy US4. UkÅ‚Ä…d ten speÅ‚nia rolÍ do regulacji gÅ‚oÅ›noÅ›ci na wyjÅ›ciu dowÄ… staÅ‚Ä… napiÍcia wejÅ›ciowe- wzmacniacza monitorujÄ…cego syg- wzmacniacza monitorujÄ…cego US4, go separujÄ… kondensatory elek- naÅ‚y z wyjśĘ VOUTR i VOUTL ktÛry znajduje siÍ na pÅ‚ytce ba- trolityczne C38..45. PoniewaÅ‚ miksera US2. Do jego wyjśĘ moÅ‚- zowej. ukÅ‚ad US2 jest zasilany niesy- na doÅ‚Ä…czyĘ sÅ‚uchawki lub zestaw metrycznie napiÍciem +5V, ko- gÅ‚oÅ›nikowy o impedancji mini- Oprogramowanie nieczne byÅ‚o spolaryzowanie je- mum 4&!. mikrokontrolera go wejśĘ napiÍciem ìsztucznego Jak Å‚atwo zauwaÅ‚yĘ na sche- Oprogramowanie sterujÄ…ce pra- zeraî, ktÛre znajduje siÍ na macie z rys. 7, dośĘ znacznie cÄ… mikrokontrolera jest - dziÍki wyjÅ›ciu ACOM (poÅ‚Ä…czenie rozbudowano system zasilania zastosowaniu mikrokontrolera ACOM z masÄ… analogowÄ… miksera. Praktycznie kaÅ‚dy ukÅ‚ad ST62T10 - bardzo proste (list. 1). AGND). WartośĘ napiÍcia na jest zasilany z osobnego stabiliza- Autor zaÅ‚oÅ‚yÅ‚, Å‚e ukÅ‚ad SSM2163 tym wyjÅ›ciu jest rÛwna poÅ‚owie tora, dziÍki czemu zminimalizo- bÍdzie pracowaÅ‚ jako mikser 8- napiÍcia zasilania. wano moÅ‚liwośĘ powstania zakÅ‚Û- kanaÅ‚owy, przy czym sygnaÅ‚ z kaÅ‚- SygnaÅ‚y z wyjśĘ wzmacniaczy ceÒ w przetwarzanym sygnale. Po- dego wejÅ›cia moÅ‚e pojawiĘ siÍ na sumujÄ…cych ukÅ‚adu US2 podawa- niewaÅ‚ moduÅ‚ wskaünika pozio- obydwu wyjÅ›ciach tego ukÅ‚adu. ne sÄ… na zÅ‚Ä…cze Zl7 oraz na mu pracuje w sposÛb dynamiczny Nic nie stoi na przeszkodzie, aby wejÅ›cie cyfrowego potencjometru (diody LED sterowane sÄ… multi- zaÅ‚Ä…czony program dostosowaĘ do US3 i na wejÅ›cia wtÛrnikÛw na- pleksowo), w jego liniÍ zasilajÄ…cÄ… wÅ‚asnych potrzeb, nieco go mo- piÍciowych US6. Zadaniem ukÅ‚a- wÅ‚Ä…czono dÅ‚awik L1, ktÛry mini- dyfikujÄ…c. du US6 jest odseparowanie obwo- malizuje skÅ‚adowÄ… zmiennÄ… zakÅ‚Û- dÛw wyjÅ›ciowych US2 od wejśĘ ceÒ. DziÍki zastosowaniu na wej- wskaünika wysterowania, ponie- Å›ciu zasilania mostka prostowni- waÅ‚ generuje on dośĘ duÅ‚e za- czego w ukÅ‚adzie Graetza, polary- kÅ‚Ûcenia o czÍstotliwoÅ›ciach akus- zacja doÅ‚Ä…czonego napiÍcia moÅ‚e tycznych. byĘ dowolna. Wyprowadzenia zaznaczone na rys. 7 ramkÄ… z szarym wypeÅ‚nie- niem sÅ‚uÅ‚Ä… do poÅ‚Ä…czenia moduÅ‚u bazowego ze wskaünikiem wyste- rowania. Zastosowano w nim in- teresujÄ…cy ukÅ‚ad sterujÄ…cy, sÅ‚abo znany w naszym kraju produkt firmy Rohm - BA6822. Integruje Rys. 6. Struktura rejestrów ukÅ‚adu on w sobie wszystkie elementy SSM2163. Elektronika Praktyczna 2/99 44 Mikser audio ze sterowaniem cyfrowym Rys. 7. Schemat elektryczny miksera (pÅ‚ytka audio). Elektronika Praktyczna 2/99 45 Mikser audio ze sterowaniem cyfrowym Rys. 8. Schemat elektryczny wskaznika wysterowania. Program pracuje w pÍtli zaczy- drugÄ… (widok na zdjÍciu), w czym tansowe. PÅ‚ytki naleÅ‚y poÅ‚Ä…czyĘ najÄ…cej siÍ etykietÄ… start i steruje bÍdÄ… pomocne otwory montaÅ‚o- ze sobÄ… elektrycznie w szeÅ›ciu pomiarem napiÍcia na kolejnych we. Do prawidÅ‚owego zmontowa- oznaczonych punktach, przy po- wejÅ›ciach analogowych portu PB. nia niezbÍdne bÍdÄ… tulejki dys- mocy odcinkÛw srebrzanki (w Po kaÅ‚dym pomiarze informacja o poÅ‚oÅ‚eniu suwaka odpowiednie- go potencjometru jest wysyÅ‚ana WYKAZ ELEMENTÓW do ukÅ‚adu SSM2163. Za transfer PÅ‚ytka bazowa US8, US9: 78L05 adresu (jest on zapisany w rejes- Rezystory M1: 1A/50V trze adres) i danej (zapisana w da- R1: 4,7k&! Różne ta) odpowiada procedura send. R2, R3: 100&! L1: 22mH (lub rezystor ok. 20&!) Przed jej wywoÅ‚aniem program P1, P2: 10k&! - miniaturowe X1: 8MHz wykonuje prostÄ… konwersjÍ wyni- potencjmetry ceramiczne, stojÄ…ce Zl1: zÅ‚Ä…cze zasilania do druku ku pomiaru za pomocÄ… procedury P5..P12: 10k&!/A - potencjometry Zl2: stereofoniczne gniazdo rotate. ObrÛbka wyniku pomiaru suwakowe sÅ‚uchawkowe do druku (minijack) polega na usuniÍciu jego dwÛch Kondensatory Zl3..7: podwójne zÅ‚Ä…cza Cinch do najmÅ‚odszych bitÛw (rejestr da- C1: 1000µF/25V druku nych ukÅ‚adu SSM2163 jest 6- C6, C7, C8, C9, C10, C13, C14, Wskaznik wysterowania bitowy) i przesuniÍciu pozostaÅ‚ych C16, C17, C20, C22, C23, C46: Rezystory bitÛw na sześĘ mÅ‚odszych pozycji. 100nF P2, P3: 10k&! NastÍpnie dwa najstarsze bity sÄ… C2, C3, C21: 470µF/16V R4, R5, R16: 39k&! zerowane (instrukcja andi C4, C11: 47µF/16V a,00111111b), dziÍki czemu bajt R6, R7, R8, R9, R10, R11: 270&! C5, C15, C38, C39, C40, C41, w data ma wymagany przez R12, R13, R14, R15: 2,2k&! C42, C43, C44, C45: 10µF/16V SSM2163 format bajtu danej. Kondensatory C12, C19, C26, C27, C28, C29: C47: 100nF 100µF/16V MontaÅ‚ i uruchomienie C48, C49: 100µF/16V C18: 22µF/16V Mikser zmontowano na dwÛch C50, C51: 2,2µF/16V C24, C25: 220µF/16V pÅ‚ytkach drukowanych, ktÛrych C52, C53: 22µF/16V C30, C31: 220nF widok przedstawiono na wkÅ‚adce C54: 10nF C32, C33: 30pF wewnÄ…trz numeru. Na rys. 9 Półprzewodniki znajduje siÍ schemat montaÅ‚owy C34, C35: 470nF US10: BA6822 pÅ‚ytki bazowej, a na rys. 10 pÅ‚ytki C36, C37: 2,2µF/16V US11: 78L05 wskaünikÛw. MontaÅ‚ elementÛw Półprzewodniki T1, T2, T3, T4: BC558 na pÅ‚ytkach nie jest zbyt skom- US1: ST62T10HWD lub ST62T10C D1, D2, D3, D4, D5, D6, D7, D8, plikowany. Warto zastosowaĘ pod- (zaprogramowany) D9, D10, D11, D12, D13, D14, stawki pod ukÅ‚ady scalone. Trud- US2: SSM2163 D15, D16, D17, D18, D19, D20, nośĘ moÅ‚e sprawiĘ zdobycie pod- US3: DS1802 D21, D22, D23, D24: LED stawki dla ukÅ‚adu BA6822, ponie- US4: TEA2025B (prostokÄ…tne) waÅ‚ jego wyprowadzenia majÄ… US5: DS1813 Różne nietypowy raster. US6: LM358 lub podobny Sw1, Sw2: Digitast Po wlutowaniu elementÛw, US7: 78L10 pÅ‚ytki sÄ… montowane jedna nad Elektronika Praktyczna 2/99 46 Mikser audio ze sterowaniem cyfrowym Rys. 10. Rozmieszczenie elementów na pÅ‚ytce drukowanej wskaznika wysterowania. miksera. W przypadku zastoso- regulacja. NiezbÍdny do jej prze- wania bardzo dÅ‚ugich przewo- prowadzenia bÍdzie generator dÛw Å‚Ä…czÄ…cych potencjometry przebiegu sinusoidalnego lub pÅ‚y- z pÅ‚ytkÄ… bazowÄ…, warto zastoso- ta testowa audio (np. wydana waĘ dodatkowo kondensatory przez miesiÍcznik ìEstrada i Stu- blokujÄ…ce o pojemnoÅ›ci np. dioî). 100nF, wÅ‚Ä…czone pomiÍdzy suwak potencjometru i masÍ zasilania. Podczas mon- towania potencjo- metrÛw w obudo- wie naleÅ‚y zwrÛ- ciĘ uwagÍ na to, Å‚e suwak zwarty z masÄ… (GNDPOT) powoduje naj- mniejsze tÅ‚umie- nie sygnaÅ‚u, a zwarcie suwaka z plusem zasilania (+5VPOT) maksy- malnie tÅ‚umi syg- naÅ‚ wejÅ›ciowy. Rys. 11. Sposób podÅ‚Ä…czenia potencjometrów Na rys. 12 po- regulacyjnych do urzÄ…dzenia. kazany zostaÅ‚ ìzrzutî ekranu os- cyloskopu cyfro- wego, przy pomo- cy ktÛrego monito- rowano szynÍ sze- regowÄ…. PrzesyÅ‚ana dana ma wartośĘ ì0î (suwak poten- cjometru zwarty z masÄ… zasilania), Rys. 9. Rozmieszczenie elementów na adresowany jest bazowej pÅ‚ytce drukowanej. kanaÅ‚ CH8 doÅ‚Ä…- czany do obydwu izolacji!) lub zwykÅ‚ych przewo- wyjśĘ ukÅ‚adu dÛw. SSM2163. Na rys. 11 pokazano sposÛb NajwaÅ‚niejszym podÅ‚Ä…czenia potencjometrÛw regu- etapem uruchomie- Rys. 12. PrzykÅ‚adowa ramka przesyÅ‚ana do ukÅ‚adu lacyjnych do wejśĘ sterujÄ…cych nia miksera jest jego SSM2163. Elektronika Praktyczna 2/99 47 Mikser audio ze sterowaniem cyfrowym Mikser audio ze sterowaniem cyfrowym SygnaÅ‚ testowy (zaleca- ny jest przebieg sinusoi- dalny o czÍstotliwoÅ›ci 1kHz i amplitudzie 775mV) naleÅ‚y doÅ‚Ä…czyĘ do dowolnego wejÅ›cia miksera. Suwak potencjo- metru ustalajÄ…cego poziom sygnaÅ‚u z tego wejÅ›cia na- leÅ‚y ustawiĘ w pozycji w obydwu kanaÅ‚ach, ìtÅ‚umienie 0dBî, co odpo- jednoczeÅ›nie dobierajÄ…c je tak, wiada zwarciu go z masÄ…. aby odtwarzany sygnaÅ‚ nie byÅ‚ Za pomocÄ… potencjometrÛw Å›cia wzmacniacza mocy znieksztaÅ‚cony. MoÅ‚na to zrobiĘ P3 i P4 naleÅ‚y ustaliĘ wskazanie i za pomocÄ… przycisku Sw1 usta- ìna sÅ‚uchî. ì0dBî, ktÛremu odpowiada za- wiĘ maksymalnÄ… gÅ‚oÅ›nośĘ moni- Na tym koÒczymy regulacjÍ - Å›wiecenie diod D8/D20. NastÍp- torowanego sygnaÅ‚u. Za pomocÄ… moÅ‚na rozpocząĘ prÛby ìna Å‚y- nie naleÅ‚y doÅ‚Ä…czyĘ sÅ‚uchawki potencjometrÛw P1 i P2 naleÅ‚y woî. lub zestaw gÅ‚oÅ›nikowy do wyj- wyrÛwnaĘ poziomy sygnaÅ‚Ûw Piotr ZbysiÅ„ski, AVT List. 1. ;******************************************************************* ;* Sterownik miksera cyfrowego SSM2163 * ldi orb,00000100b ; wlacza CH3 ;******************************************************************* ldi adcr,00110000b ; inicjuje pomiar .title SSM2163 ldi adres,10011010b ; adres kanalu 3 (sygnal OUT na obydwa .input REJESTRY.A62 wyjscia) .vers st6210 wait6 ldi wdr,0feh .romsize 2 jrr 6,adcr,wait6 .w_on ld a,adr call rotate ; na wyjsciu tej procedury DATA na 6 LSB ; piny transmisji danych PA call send do .set 0 clk.set 1 ldi orb,00000010b ; wlacza CH2 write .set 2 ldi adcr,00110000b ; inicjuje pomiar ldi adres,10011001b ; adres kanalu 2 (sygnal OUT na obydwa adres .def 84h ; zmienna przechowujaca aktualny adres rejestru SSM wyjscia) data .def 85h ; aktualna dana do wyslania wait7 ldi wdr,0feh jrr 6,adcr,wait7 ld a,adr ;******************************************************************* call rotate ; na wyjsciu tej procedury DATA na 6 LSB ; PROGRAM call send ;******************************************************************* .org 880h ldi orb,00000001b ; wlacza CH1 reset ldi wdr,0feh ldi adcr,00110000b ; inicjuje pomiar ldi ddra,00000111b ; PA0..2 ustawione jako wyjscia ldi adres,10011000b ; adres kanalu 1 (sygnal OUT na obydwa ldi ora,00000111b ; wyjscia) ldi dra,00000100b wait8 ldi wdr,0feh jrr 6,adcr,wait8 ldi ddrb,0 ld a,adr ldi orb,0 call rotate ; na wyjsciu tej procedury DATA na 6 LSB ldi drb,0ffh ; PB jako wejscia analogowe call send ; wybierane wpisem 1 na ORB jp start ldi adcr,00010000b ; wlacza konwerter A/C reti ; ROTATE - procedura przesuwania zawartosci A, dzieki czemu na 6 LSB ; jest dana a dwa MSB sa rowne 0. ;******************************************************************* ; Dana w DATA jest gotowa do wyslania! ; Pomiar napiecia na liniach potencjometrow rotate andi a,11111100b ; zeruje dwa LSB - nie sa wazne! ;******************************************************************* rlc a start ldi orb,10000000b ; wlacza CH8 rlc a ldi adcr,00110000b ; inicjuje pomiar rlc a ldi adres,10011111b ; adres kanalu 8 (sygnal OUT na obydwa rlc a wyjscia) rlc a wait1 ldi wdr,0feh rlc a jrr 6,adcr,wait1 rlc a ld a,adr andi a,00111111b ; zeruje dwa najstarsze bity call rotate ; na wyjsciu tej procedury DATA na 6 LSB ld data,a ; w DATA jest dana do wyslania call send ldi wdr,0feh ret ldi orb,01000000b ; wlacza CH7 ; SEND - procedura wyslania adresu i danej do SSM2163. ldi adcr,00110000b ; inicjuje pomiar ; Adres bierze z ADRES, dana z DATA. Musza tam byc juz spreparowane dane! ldi adres,10011110b ; adres kanalu 7 (sygnal OUT na obydwa send res write,dra ; zeruje !WR&!LD wyjscia) ld a,adres wait2 ldi wdr,0feh ldi x,8 ; ilosc bitow do wyslania jrr 6,adcr,wait2 send3 rlc a ld a,adr ldi wdr,0feh call rotate ; na wyjsciu tej procedury DATA na 6 LSB jrc dat1 ; dana = 1 call send res do,dra ; ustawia dana =0 jp send1 ldi orb,00100000b ; wlacza CH6 dat1 set do,dra ; ustawia dana =1 ldi adcr,00110000b ; inicjuje pomiar send1 set clk,dra ldi adres,10011101b ; adres kanalu 6 (sygnal OUT na obydwa res clk,dra ; generuje impuls zegarowy wyjscia) dec x wait3 ldi wdr,0feh jrz send2 jrr 6,adcr,wait3 jp send3 ld a,adr call rotate ; na wyjsciu tej procedury DATA na 6 LSB send2 set write,dra call send nop res write,dra ; zeruje !WR&!LD ldi orb,00010000b ; wlacza CH5 ld a,data ldi adcr,00110000b ; inicjuje pomiar ldi x,8 ; ilosc bitow do wyslania ldi adres,10011100b ; adres kanalu 5 (sygnal OUT na obydwa send_3 rlc a wyjscia) ldi wdr,0feh wait4 ldi wdr,0feh jrc dat_1; dana = 1 jrr 6,adcr,wait4 res do,dra ; ustawia dana =0 ld a,adr jp send_1 call rotate ; na wyjsciu tej procedury DATA na 6 LSB dat_1 set do,dra ; ustawia dana =1 call send send_1 set clk,dra res clk,dra ; generuje impuls zegarowy ldi orb,00001000b ; wlacza CH4 dec x ldi adcr,00110000b ; inicjuje pomiar jrz send_2 ldi adres,10011011b ; adres kanalu 4 (sygnal OUT na obydwa jp send_3 wyjscia) send_2 set write,dra wait5 ldi wdr,0feh ret jrr 6,adcr,wait5 ld a,adr .org 0ffeh call rotate ; na wyjsciu tej procedury DATA na 6 LSB resjp reset call send Elektronika Praktyczna 2/99 48 Mikser audio ze sterowaniem cyfrowym P R O J E K T Y Mikser audio ze sterowaniem cyfrowym, część 2 kit AVT-490 Przedstawiony w pierwszej lewym zmiksowane sygnaÅ‚y au- czÍÅ›ci artykuÅ‚u sposÛb sterowa- dio z wejśĘ VIN5..VIN7 natomiast nia mikserem jest naturalny, jed- sygnaÅ‚ audio z wejÅ›cia VIN8 ma nak rozwiÄ…zanie takie nie w peÅ‚- byĘ dodawany do prawego i le- Druga czÍśĘ artykuÅ‚u ni wykorzystuje moÅ‚liwoÅ›ci ukÅ‚a- wego kanaÅ‚u wyjÅ›ciowego. Opisa- dotyczy komputerowego du SSM2163. UkÅ‚ad SSM2163 na konfiguracja wejśĘ jest dosyĘ sterowania pracÄ… miksera. zapewnia elastyczne konfiguro- zawiÅ‚a - sytuacjÍ takÄ… ilustruje wanie wejśĘ audio (tab. 1 w pier- rys. 13. Wyraünie widaĘ, Å‚e uzys- Przedstawiona zostanie wszej czÍÅ›ci artykuÅ‚u), jednak kanie takiej konfiguracji bez kom- przykÅ‚adowa procedura wyposaÅ‚enie w te funkcje konsoli putera byÅ‚oby skomplikowane, wysyÅ‚ania danych do miksera mikserskiej znacznie skompliko- wiÍc sterowanie komputerowe oraz sposÛb poÅ‚Ä…czenia waÅ‚oby budowÍ komputera z mikserem. urzÄ…dzenia. Przy- kÅ‚adem ilustrujÄ…- cym przewagÍ ste- rowania kompute- rowego nad trady- cyjnym (oczywiÅ›- cie w przypadku, gdy istotnym czynnikiem jest cena urzÄ…dzenia) niech bÍdzie na- stÍpujÄ…ca sytuacja: w kanale wyjÅ›cio- wym prawym na- leÅ‚y uzyskaĘ zmiksowane syg- naÅ‚y audio z w e j Å› Ę VIN1..VIN4, w ka- Rys. 13. PrzykÅ‚adowa konfiguracja wejść audio miksera możliwa do uzyskania w programie nale wyjÅ›ciowym sterujÄ…cym. Elektronika Praktyczna 3/99 70 Mikser audio ze sterowaniem cyfrowym List. 2. Procedura wysÅ‚ania danych do miksera. TabBajt: array[0..7] of Byte; {tablica z jedynkami } kanal := B; ..... { wartość adresu do wysÅ‚ania jest już obliczona } OutPort( CentrPort, 3 ); { 0 na D2 rozpoczyna zapis } for i:=7 downto 0 do TabBajt[0] := 1; begin TabBajt[1] := 2; B := kanal; TabBajt[2] := 4; TabBajt[3] := 8; if (B and TabBajt[i]) <> 0 then { czyli bit jest ustawiony } TabBajt[4] := 16; B := TabBajt[1] { 00000010 } TabBajt[5] := 32; else TabBajt[6] := 64; B := 0; { 00000000 } TabBajt[7] := 128; OutPort( CentrPort, B ); { wartość wysÅ‚ana } ..... B := B or TabBajt[0]; { 000000x1 - CLK zapis } OutPort( CentrPort, B ); { zbocze narasta } const CentrPort = $378; { adres portu drukarkowego } OutPort( CentrPort, 0 ); { zbocze opada } end; ..... OutPort( CentrPort, TabBajt[2] ); { 1 na D2 koÅ„czy zapis bajtu} procedure OutPort( PortWy: Word; BajtWy: Byte ); begin { obliczenie wartoÅ›ci do wysÅ‚ania } BajtWy := not BajtWy; B := wartosc and (not TabBajt[7]); { 0 na D7 } asm wartosc := B; mov dx,PortWy { wartość do wysÅ‚ania jest już obliczona } mov al,BajtWy OutPort( CentrPort, 1 ); { 0 na D2 rozpoczyna zapis } out dx,al for i:=7 downto 0 do end; { asm } begin end; { OutPort } B := wartosc; if (B and TabBajt[i]) <> 0 then { czyli bit jest ustawiony } ..... B := TabBajt[1] { 00000010 } else B := 0; { 00000000 } procedure Send( kanal: Integer; wartosc: Integer ); { D0 = CLK; D1 = DATA } OutPort( CentrPort, B ); { wartość wysÅ‚ana } var B: Byte; B := B or TabBajt[0]; { 00000011 - CLK zapis } i: Integer; OutPort( CentrPort, B ); { zbocze narasta } begin { obliczenie adresu } OutPort( CentrPort, 0 ); { 00000000 } B := kanal or TabBajt[7]; { 1 na D7 } { zbocze opada } end; B := B or TabBajt[5]; { 1 na D5 } OutPort( CentrPort, TabBajt[2] ); { 1 na D2 koÅ„czy zapis bajtu} B := B or TabBajt[6]; { 1 na D6 } end; { wyslij } mikserem jest w peÅ‚ni uzasadnio- - bit 2 rejestru danych ne zarÛwno ze wzglÍdu na koszt - do wejÅ›cia !WRITE urzÄ…dzenia, jak i wygodÍ sterowa- & !LOAD ukÅ‚adu nia. US2; Znaczenie bitÛw PoÅ‚Ä…czenie miksera 0..2 jest takie samo z komputerem jak w przypadku ste- Mikser jest sterowany kompu- rowania ukÅ‚adem terem poprzez port drukarkowy. SSM2163 za pomocÄ… Zdecydowano siÍ na ten port ze procesora US1. Ponie- wzglÍdu na to, Å‚e nie wymagaÅ‚o waÅ‚ poczÄ…tkowo nie to przebudowania ukÅ‚adu elekt- przewidywano kom- rycznego miksera a zaimplemento- puterowego sterowa- wanie protokoÅ‚u wpisywania da- nia pracÄ… miksera, na nych do ukÅ‚adu SSM2163 jest pÅ‚ytce drukowanej nie Å‚atwe. Przed poÅ‚Ä…czeniem miksera wyznaczono miejsc, z komputerem naleÅ‚y wyjąĘ z pod- do ktÛrych moÅ‚na do- stawki procesor US1. W poÅ‚Ä…cze- lutowaĘ przewody Å‚Ä…- niu wykorzystano trzy bity portu czÄ…ce z portem dru- drukarkowego, ktÛre sÄ… doÅ‚Ä…czone karkowym. Z tego w nastÍpujÄ…cy sposÛb: wzglÍdu przewody te - bit 0 rejestru danych - do naleÅ‚y dolutowaĘ do wejÅ›cia CLK ukÅ‚adu US2; odpowiednich wejśĘ - bit 1 rejestru danych - do ukÅ‚adu US2. Dodatko- Rys. 14. Schemat elektryczny ukÅ‚adu wejÅ›cia DATA ukÅ‚adu US2; wo jako zabezpiecze- zabezpieczajÄ…cego z transoptorami. Elektronika Praktyczna 3/99 71 Mikser audio ze sterowaniem cyfrowym nie naleÅ‚y zastosowaĘ dodatkowy interfejs z transoptorami - sche- mat elektryczny takiego ukÅ‚adu pokazano na rys. 14. Procedura wysyÅ‚ania danych Algorytm wysyÅ‚ania danych jest taki sam jak w przypadku sterowania mikserem za pomocÄ… mikroprocesora US1. Na listingu 2 pokazano przykÅ‚adowÄ… imple- mentacjÍ tego algorytmu w jÍzyku Delphi. W procedurze Send jest wykorzystywana procedura Out- Port, umoÅ‚liwiajÄ…ca wpisywanie dowolnej wartoÅ›ci do okreÅ›lonego portu sprzÍtowego komputera. Pa- rametrami procedury Send sÄ…: numer kanaÅ‚u miksera (od 0 do 7) oraz wartośĘ wzmocnienia w da- nym kanale (od 0 do 63). ProcedurÍ Send moÅ‚na podzie- liĘ na dwie czÍÅ›ci. Zadaniem Rys. 15. Widok okna przykÅ‚adowej aplikacji sterujÄ…cej pracÄ… miksera. pierwszej jest wysÅ‚anie do ukÅ‚adu SSM2163 adresu kanaÅ‚u ktÛrego ustawienia chcemy zmieniĘ. Naj- Opis przykÅ‚adowej wartoÅ›ci wzmocnienia. Dodatko- pierw jest obliczana wartośĘ aplikacji wo moÅ‚na ustaliĘ, ktÛre z wejśĘ zmiennej kanal, zgodnie z tab. 1. Do kitÛw w wersji ìAî i ìBî audio ma byĘ doÅ‚Ä…czone do wy- NastÍpnie wartośĘ tej zmiennej jest doÅ‚Ä…czana dyskietka z przy- branego kanaÅ‚u wyjÅ›ciowego. jest szeregowo wysyÅ‚ana poprzez kÅ‚adowÄ… aplikacjÄ… umoÅ‚liwiajÄ…cÄ… DoÅ‚Ä…czany do kitu program jest port drukarkowy do ukÅ‚adu US2. sterowanie mikserem za pomocÄ… tylko przykÅ‚adowÄ… aplikacja, ale Druga czÍśĘ procedury wykonuje komputera. Na rys. 15 przedsta- pozwala w peÅ‚ni sterowaĘ pracÄ… podobne operacje, lecz dotyczÄ… wiono widok okna tej aplikacji. miksera. OczywiÅ›cie programista one wartoÅ›ci wzmocnienia w da- Przedstawiona na list. 2 procedu- moÅ‚e, korzystajÄ…c z procedury nym kanale. WartoÅ›ci te sÄ… zgod- ra wysyÅ‚ania danych do miksera Send, napisaĘ inny program do- ne z przedstawionymi w tab. jest fragmentem tego programu. stosowany do indywidualnych po- 1 i tab. 2. Listing jest opatrzony Poziom wzmocnienia w poszcze- trzeb. Ciekawy efekt (pojawiania obszernymi komentarzami, tak gÛlnych kanaÅ‚ach ustala siÍ prze- siÍ i zanikania düwiÍku) moÅ‚na wiÍc jego dokÅ‚adniejsze omÛwie- suwajÄ…c suwaki wirtualnych po- uzyskaĘ ustalajÄ…c wartośĘ wzmoc- nie nie jest konieczne. WyjaÅ›nie- tencjometrÛw. NajwiÍksze wzmoc- nienia w kanale audio za pomocÄ… nia moÅ‚e wymagaĘ tylko sposÛb nienie uzyskuje siÍ w gÛrnym po- funkcji sinus. Wszystko zaleÅ‚y od wykorzystania w procedurze tabli- Å‚oÅ‚eniu suwakÛw. Na list. 3 znaj- inwencji programisty! cy TabBajt. W tablicy tej sÄ… prze- duje siÍ procedura obsÅ‚ugujÄ…ca PaweÅ‚ ZbysiÅ„ski chowywane wartoÅ›ci, odpowiadajÄ…- zdarzenie OnChange, ktÛra jest ce ustawieniu pojedynczych bitÛw wywoÅ‚ywana po kaÅ‚dym przesu- Opisana w artykule przykÅ‚a- w ramach bajtu (odpowiednie war- niÍciu suwaka standardowego dowa aplikacja sterujÄ…ca pracÄ… toÅ›ci widaĘ na list. 2). WartoÅ›ci komponentu Delphi TrackBar. Po- miksera jest doÅ‚Ä…czana do kitÛw te sÄ… wykorzystywane w opera- Å‚oÅ‚enie suwaka moÅ‚na odczytaĘ w wersji ìAî i ìBî. Program ten cjach na pojedynczych bitach. z wÅ‚asnoÅ›ci Position komponentu jest rÛwnieÅ‚ dostÍpny w interne- Przed wykonaniem poÅ‚Ä…czenia TrackBar i ta wÅ‚aÅ›nie wartośĘ cie pod adresem: http:// miksera z komputerem naleÅ‚y (ustawiony zakres od 0 do 63) jest www.ep.com.pl/ftp. wyjąĘ procesor US1 z podstawki. wykorzystywana do ustawiania List. 3. Procedura obsÅ‚ugujÄ…ca zdarzenie OnChange. procedure TMiks.TB0Change(Sender: TObject); begin if TB0.Position = 0 then L_DB0.Caption := " 0dB" else L_DB0.Caption := "-" + IntToStr(TB0.Position) + "dB"; Send( 0, TB0.Position ); end; Elektronika Praktyczna 3/99 72