Listing I
•procecura wysyłająca dane z mikroprocesora do procesora dźwięku
J2cstazt I2cwfcyte Mad I2cwtyte 0 I2cwfcyte Volume I2cwfcyte Vcltme I2cwbyte Basa I2cwfcyte Sopran I2cstop Kaitrrs 7 T2rsr*rf
I2cwbyte Mad I2cwbyte 8 I2cwbyte SI 12cotop End Suk
'3ygnał startu magistrali I2C 'wyślij adres TDA8425 'SAD - adros SI 'owitchc functions 'sygnał stopu magistrali I2C
Listing 2 | |
'deklaracja i procedura |
obsługi przerwania od sprzętowego |
'portu szeregowego raikroprecescra | |
Enable Interrupts : Enable Urxc 'deklaracja przerwania Cn Urxc Erzerw | |
Przerw: |
'reszta programu |
Tah(i) - InkioyO |
'rmLenna do któroj ładowano sa odebrane dar.e |
If TabU) - 10C 7h*n Ii - 14 El aa |
' •.ransmis ja 13-bajtowa, paczka zawiera dane 'do zapiej do EEPROM-u |
Ii - « |
' liansfiuaJa 5-biLowa |
End If Irict I If I *» 11 Then |
•koniec if Tab(l) = 100 |
1 = 1: Flagi « U |
•:laga uruchamiająca procedury konfiguracji 'procesorów audio |
End If Return |
'koniec if I-ii |
Listing .i
zapis odebranych danych z kcmputera dn pamięci TEPROM mikroprocesora z wysłaniem potwierdzenia
zapis do oepromu
Sopran As
I2C _
Byte , S: As Byte)
'TobeO to tablica typu Ej;ant Byte, 'Tab() te zwykła zmienna tablicowa 'koniec for
'wysłanie potwierdzenia do komputera 'Konfiguracja prccescrtw audio •koniec if tablD-lOO
miksera po jego chwilowym odłączeniu, bo wtedy me można zmienić stanu panelu Wyjątkiem jest sytuacja, gdy użytkownik uruchamia program na nowo. Wtedy są przyjmo-
Sufc Wyślijivolume As Byte , Basa As Byte
'3ygnał startu magistrali 'wyślij adres TDA8425 'SAD - adres VL ' VL ' VR ' 3A 'TR
•sygnał stopu magistrali T?f!
If Tab(i) - 100 Then
Tor Aa - 2 To 13
Tubo(aa) - Tao(aa)
Next
PiinUuin 101 Cali Zapproc End If
wanc ustawienia domyślne, takie jak po włączeniu miksera do zasilania.
Do obsługi portu szeregowego wykorzystałem darmowy komponent o nazwie „cport 3.0”.
Nawiasem mówiąc. komponent to taka cegiełka, z której zbudowany jest program, na przykład przyciski, suwaki, napisy itp. Na listingu 4 jest pokazany fragment programu odpowiedzialnego za wysłanie pięciobajto-wej paczki do miksera. Na następnym listingu 5 widać procedurę, która odbiera dane. Nic podaję tutaj kodu analizy tej paczki, bo jest zbyt długi i dosyć skomplikowany Jak widać, język, w którym napisałem program komputerowy to Pascal, chociaż już Delphi 7 umożliwia wykorzystanie do pisania kodu innych języków, na przykład C.
Może ktoś z Czytelników po przeczytaniu tego artykułu będzie chciał się zainteresować programowaniem PC (zachęcam). Podaję więc, skąd pobrać Delphi: www. boriartd. com/ downloads/do wnlo-ad_delphi.html. Obecnie jest już dostępna wersja Delphi 2005 Pcrsonal. Jedynym ograniczeniem tych darmowych wersji jest mała liczba komponentów. Jednak nie jest to zbyt duży problem, bo są one dostępne w sieci.
Listing 5
Po zapoznaniu się z działaniem miksera pozostaje już tylko złożyć płytkę i dopaść program komputerowy Kma exe na PPtdW.
Projekt płytki drukowanej jest przedstawiony na rysunku 4. Na gniazda audio zastosowałem popularne jacki. Mają one jedną zasadniczą przewagę nad złączami typu CINCH. Zajmują mniej miejsca.
Ze zmontowaniem płytki nie powinno być żadnych problemów. Należy jedynie pamiętać, żeby na początku wlutować siedem zwoi Z1-Z7, i o biegunowości elementów.
Układ pobiera ok. 90mA prądu. Najlepiej go zasilać z transformatora toroidalnego 9-18V AC. Dlatego toroidalnego, bo ma mniejsze zakłócenia niż El. Wtedy można umieścić mikser w obudowie. Dobrym sposobem jest też wykorzystanie zasilacza stabilizowanego 12-25V DC. Można także spróbować podłączyć układ do zasilacza komputerowego 12V (żółty kabel), masa-czainy.
Nie napisałem jeszcze, jak wybiera się tryh pracy miksera. Wróćmy na chwilę do schematu blokowego z rysunku 2. Są na nim zaznaczone zwork: komputerowe Jml-Jin4. Aby układ pracował w trybie dwukanałowym, powinny być zwarte Jm3, Jm4, a rozwarte Jml. Jm2. Wtedy zsumowany sygnał procesorów 1, 2 trafia prosto w pieiw,szy kanał procesora 3 - KI. Ten kanał powinien być wtedy wskazany na panelu programu. Wyjściem jest gniazdo Jout 1. Natomiast w trybie trzyk.inało-wym jest na odwrót Zworki Jm3, Jin4 są rozwarte. a zwarte Jml, Jm2 W tej sytuacji sygnał do procesora 3 jest dostarczany przez kanał drugi, czyli należy go podłączyć do gniazda wejściowego J32. W tym momencie na panelu powinien być zaznaczony kanał 2 procesora3. Wyjściem jest gniazdo Jout2. podłączone bezpośrednio do sumatora RI- R6
Muszę jeszcze zaznaczyć, że w danej chwili powinna hyc zwarta tylko jedna para zworek. Albo Jml, Jm2, albo Jm3, Jm4 A co się stanie, jeżeli zewrzemy te wszystkie /wcir-
//odebranie trzynasio-baj-owe) paczki Hz miksera przez komputer
Listing 4
ftwysłanie pięcio-ba]towe) paczki do miksera przez komputer
eomPort.Open; //otwarcie portu szeregowego
procedurę TForml.Wysilj(Sender: TObject); vat
Count: integer; i: byte; begin
count;«l;
for i :• 1 to 5 co // patia
bagln
Com?ort..Wri--ft(taho»ir (1 ), winr) ; //wysłanie jednego bajtu endr end;
procedurę TForml .CoraPortRxChar (Ser.der: TObject; Count: Integer); var
liczba: integer; //deklaracje zmiennych
i, zm: mteąer;
begin
CnmPort .Rearl (1 i rzba, Count);
tabinjii]:* liczba; //załadowań.o odebranych danych do taolicy //tabin‘]
iit-ii+1; //zwiększ zmienna indeksowa odebranego oajtj
if -i-H then //jeżeli odebrane waz/atkie dane to wyzeruj // zmienną Lndeksową
begin
U:-l;
//analiza odebranej paczki
fi i wykonanie stosownych procedur
ComPort.Clooe;
//samknięcle portu szeregowego
end; //koniec Lf ii=14
end;
16 Maj 2006 Elektronika dla Wszystkich