Mikser audio ze sterowaniem cyfrowym


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


Wyszukiwarka