mikser audio ze sterowaniem cyfrowym 2.pdf

(191 KB) Pobierz
P R
MikserO J E ze sterowaniem cyfrowym
audio K T Y
Mikser audio
ze sterowaniem
cyfrowym, część 2
kit AVT−490
Druga czÍúÊ artyku³u
dotyczy komputerowego
sterowania prac¹ miksera.
Przedstawiona zostanie
przyk³adowa procedura
wysy³ania danych do miksera
oraz sposÛb po³¹czenia
komputera z†mikserem.
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-
ni wykorzystuje moøliwoúci uk³a- wego kana³u wyjúciowego. Opisa-
du SSM2163. Uk³ad SSM2163 na konfiguracja wejúÊ jest dosyÊ
zapewnia elastyczne konfiguro- zawi³a - sytuacjÍ tak¹ ilustruje
wanie wejúÊ audio (tab. 1†w†pier-
rys. 13.
Wyraünie widaÊ, øe uzys-
wszej czÍúci artyku³u), jednak kanie takiej konfiguracji bez kom-
wyposaøenie w†te funkcje konsoli putera by³oby skomplikowane,
mikserskiej znacznie skompliko- wiÍc sterowanie komputerowe
wa³oby budowÍ
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
nale wyjúciowym
miksera możliwa do uzyskania w programie
sterującym.
70
Elektronika Praktyczna 3/99
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
begin
B := kanal;
if (B and TabBajt[i]) <> 0 then { czyli bit jest ustawiony }
B := TabBajt[1]
{ 00000010 }
else
B := 0;
{ 00000000 }
OutPort( CentrPort, B ); { wartość wysłana }
.....
B := B or TabBajt[0]; { 000000x1 - CLK zapis }
OutPort( CentrPort, B ); { zbocze narasta }
const
CentrPort = $378;
.....
OutPort( CentrPort, TabBajt[2] );
procedure OutPort( PortWy: Word; BajtWy: Byte );
begin
BajtWy := not BajtWy;
asm
mov dx,PortWy
mov al,BajtWy
out dx,al
end; { asm }
end; { OutPort }
{ 1 na D2 kończy zapis bajtu}
{ adres portu drukarkowego }
OutPort( CentrPort, 0 ); { zbocze opada }
end;
TabBajt[0]
TabBajt[1]
TabBajt[2]
TabBajt[3]
TabBajt[4]
TabBajt[5]
TabBajt[6]
TabBajt[7]
:=
:=
:=
:=
:=
:=
:=
:=
1;
2;
4;
8;
16;
32;
64;
128;
{ obliczenie wartości
B := wartosc and (not
wartosc := B;
{ wartość do wysłania
OutPort( CentrPort, 1
for i:=7 downto 0 do
begin
B := wartosc;
do wysłania }
TabBajt[7]); { 0 na D7 }
jest już obliczona }
); { 0 na D2 rozpoczyna zapis }
.....
if (B and TabBajt[i]) <> 0 then { czyli bit jest ustawiony }
B := TabBajt[1]
{ 00000010 }
else
B := 0;
{ 00000000 }
OutPort( CentrPort, B ); { wartość wysłana }
B := B or TabBajt[0]; { 00000011 - CLK zapis }
OutPort( CentrPort, B ); { zbocze narasta }
OutPort( CentrPort, 0 ); { 00000000 }
{ zbocze opada }
end;
OutPort( CentrPort, TabBajt[2] ); { 1 na D2 kończy zapis bajtu}
end; { wyslij }
procedure Send( kanal: Integer; wartosc: Integer );
{ D0 = CLK; D1 = DATA }
var
B: Byte;
i: Integer;
begin
{ obliczenie adresu }
B := kanal or TabBajt[7]; { 1 na D7 }
B := B or TabBajt[5]; { 1 na D5 }
B := B or TabBajt[6]; { 1 na D6 }
mikserem jest w†pe³ni uzasadnio-
ne zarÛwno ze wzglÍdu na koszt
urz¹dzenia, jak i†wygodÍ sterowa-
nia.
Po³¹czenie miksera
z†komputerem
Mikser jest sterowany kompu-
terem poprzez port drukarkowy.
Zdecydowano siÍ na ten port ze
wzglÍdu na to, øe nie wymaga³o
to przebudowania uk³adu elekt-
rycznego miksera a†zaimplemento-
wanie protoko³u wpisywania da-
nych do uk³adu SSM2163 jest
³atwe. Przed po³¹czeniem miksera
z†komputerem naleøy wyj¹Ê z†pod-
stawki procesor US1. W†po³¹cze-
niu wykorzystano trzy bity portu
drukarkowego, ktÛre s¹ do³¹czone
w†nastÍpuj¹cy sposÛb:
- bit 0 rejestru danych - do
wejúcia CLK uk³adu US2;
- bit 1 rejestru danych - do
wejúcia DATA uk³adu US2;
- bit 2 rejestru danych
- do wejúcia !WRITE
& !LOAD uk³adu
US2;
Znaczenie bitÛw
0..2 jest takie samo
jak w†przypadku ste-
rowania uk³adem
SSM2163 za pomoc¹
procesora US1. Ponie-
waø pocz¹tkowo nie
przewidywano kom-
puterowego sterowa-
nia prac¹ miksera, na
p³ytce drukowanej nie
wyznaczono miejsc,
do ktÛrych moøna do-
lutowaÊ przewody ³¹-
cz¹ce z†portem dru-
karkowym. Z†tego
wzglÍdu przewody te
naleøy dolutowaÊ do
odpowiednich wejúÊ
uk³adu US2. Dodatko-
wo jako zabezpiecze-
Rys. 14. Schemat elektryczny układu
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
pierwszej jest wys³anie do uk³adu
SSM2163 adresu kana³u ktÛrego
ustawienia chcemy zmieniÊ. Naj-
pierw jest obliczana wartoúÊ
zmiennej
kanal,
zgodnie z†tab. 1.
NastÍpnie wartoúÊ tej zmiennej
jest szeregowo wysy³ana poprzez
port drukarkowy do uk³adu US2.
Druga czÍúÊ procedury wykonuje
podobne operacje, lecz dotycz¹
one wartoúci wzmocnienia w†da-
nym kanale. Wartoúci te s¹ zgod-
ne z†przedstawionymi w†tab.
1†i†tab. 2. Listing jest opatrzony
obszernymi komentarzami, tak
wiÍc jego dok³adniejsze omÛwie-
nie nie jest konieczne. Wyjaúnie-
nia moøe wymagaÊ tylko sposÛb
wykorzystania w†procedurze tabli-
cy
TabBajt.
W†tablicy tej s¹ prze-
chowywane wartoúci, odpowiadaj¹-
ce ustawieniu pojedynczych bitÛw
w†ramach bajtu (odpowiednie war-
toúci widaÊ na list. 2). Wartoúci
te s¹ wykorzystywane w†opera-
cjach na pojedynczych bitach.
Przed wykonaniem po³¹czenia
miksera z komputerem naleøy
wyj¹Ê procesor US1 z podstawki.
Rys. 15. Widok okna przykładowej aplikacji sterującej pracą miksera.
Opis przyk³adowej
aplikacji
Do kitÛw w†wersji ìAî i†ìBî
jest do³¹czana dyskietka z†przy-
k³adow¹ aplikacj¹ umoøliwiaj¹c¹
sterowanie mikserem za pomoc¹
komputera. Na
rys. 15
przedsta-
wiono widok okna tej aplikacji.
Przedstawiona na list. 2 procedu-
ra wysy³ania danych do miksera
jest fragmentem tego programu.
Poziom wzmocnienia w†poszcze-
gÛlnych kana³ach ustala siÍ prze-
suwaj¹c suwaki wirtualnych po-
tencjometrÛw. NajwiÍksze wzmoc-
nienie uzyskuje siÍ w†gÛrnym po-
³oøeniu suwakÛw. Na
list. 3
znaj-
duje siÍ procedura obs³uguj¹ca
zdarzenie
OnChange,
ktÛra jest
wywo³ywana po kaødym przesu-
niÍciu suwaka standardowego
komponentu Delphi
TrackBar.
Po-
³oøenie suwaka moøna odczytaÊ
z†w³asnoúci
Position
komponentu
TrackBar
i†ta w³aúnie wartoúÊ
(ustawiony zakres od 0 do 63) jest
wykorzystywana do ustawiania
wartoúci wzmocnienia. Dodatko-
wo moøna ustaliÊ, ktÛre z†wejúÊ
audio ma byÊ do³¹czone do wy-
branego kana³u wyjúciowego.
Do³¹czany do kitu program jest
tylko przyk³adow¹ aplikacja, ale
pozwala w†pe³ni sterowaÊ prac¹
miksera. Oczywiúcie programista
moøe, korzystaj¹c z†procedury
Send,
napisaÊ inny program do-
stosowany do indywidualnych po-
trzeb. Ciekawy efekt (pojawiania
siÍ i†zanikania düwiÍku) moøna
uzyskaÊ ustalaj¹c wartoúÊ wzmoc-
nienia w†kanale audio za pomoc¹
funkcji sinus. Wszystko zaleøy od
inwencji programisty!
Paweł Zbysiński
Opisana w†artykule przyk³a-
dowa aplikacja steruj¹ca prac¹
miksera jest do³¹czana do kitÛw
w†wersji ìAî i†ìBî. Program ten
jest rÛwnieø dostÍpny w†interne-
cie pod adresem: http://
www.ep.com.pl/ftp.
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;
72
Elektronika Praktyczna 3/99
Zgłoś jeśli naruszono regulamin