Image10 (22)

Image10 (22)



Projekty AVT

Projekty AVT

MSB

LSB

1 0

0

0

0

c

1

RAV

Tabela 1. MAD - pierwszy bajt


Tabela 2. SAD - drugi bajt

7

6

e

4

3

2

1

0

Głośność L

VL

0

0

G

0

0

0

0

0

Głośność R

VR

0

0

0

0

0

0

0

1

Basy

BA

0

0

0

0

0

0

1

0

Soprany

TR

0

0

C

0

0

0

1

1

Switchfunctions

S1

0

0

0

0

1

0

0

0


7

6

5

4

3

2

1

0

Głośność L

VL

1

1

X

X

X

X

X

X

Głośność R

VR

1

1

X

X

X

X

X

X

Basy

BA

1

1

C

0

X

X

X

X

Soprany

TR

1

1

0

0

X

X

X

X

Switch functions

S1

1

1

MJ

EFL STL ML 1 MLO

IS

Tabela 3. Trzeci bajt


Tabela 4 Znaczenie bitów w „Switch functions”

ML1

MLO

IS

kanał

stereo

1

0

1

stereo

1

1

2

Sonud A

0

1

0

1

Sonud B

1

0

0

1

Sonud A

0

1

1

2

Sonud B

1

0

1

2


Rodzaj dźwięku

STL

EFL

Przestrzenny stereo

1

1

Liniowy stereo

1

0

Pseudo stereo

0

1

Wzmocnione mono

0

0

Tabela 5 Znaczenie bitów w „Switch functions”


j~Start MAD SAD VL VR BA TR Stop Stal MAD SAD S1 Stop BFUN VL BA TR S1


BFUN VL1 BA1 IR1 S1 VL2 BA2 TR2 S1 VL3 BA3 TR3 S1


cy się o 1, można wysyłać do procesora jeden za drugim i nie tr/eha poprzedzać ich bajtem adresującym (za wyjątkiem pierwszego). Tak jesi w przypadku pierwszych czterech bajtów w tabeli 2. Natomiast bajt „Switch functions” trzeba przesłać oddzielnie.

Podsumowując, ramka transmisji między mikroprocesorem a procesorem dźwięku jest taka jak w tabeli 6.

Wiemy już. mniej więcej, jak się steruje układem TDA8425 i jakie ma możliwości.

Tabela 6. Ramka transmisji między mikroprocesorem a procesorem dźwięku

Tabela 7. Ramka transmisji między komputerem a mikserem 5-bajtowa

Tabela 8. Ramka transmisji między komputerem a mikserem 13-bajtowa podczas zapisu^odczytu EEPROM-u.

Komunikacja między komputerem a mikserem

Komputer i mikser porozumiewają się tylko za pomocą dwóch linii TxD i RxD. Uważni Czytelnicy dostrzegli pewnie, że kwarc napędzający mikroprocesor ma nietypową wartość 7,3728MHz. Przy takiej wartości można uzyskać duży transfer danych - 57600bps. Wtedy błąd łącza szeregowego teoretycznie wynosi 0.00%. co daje niejaką gwarancję, żc transmisja będzie przebiegała poprawnie.

Podczas projektowania tej transmisji musiałem sobie zadać podstawowe pytanie: Jakie informacje muszą być przesyłane, żeby układ dobrze pełnił swoją rolę? Wykombinowałem, że na pewno mikser musi być na bieżąco informowany o zmianach występujących na panelu, żeby to, co na nim jest, odpowiadało ustawieniom miksera. A druga rzecz to zapis i odczyt ustawień z pamięci CEPROM mikroprocesora.

Generalnie podczas komunikacji dane przesyłane są na pomocą dwóch ramek transmisji. Pierwsza z nich jest pokazana w tabeli 7. Spełnia dwa zadania. Po pierwsze, za jej pomocą mikser jest na bieżąco informowany o zachodzących zmianach na panelu. Gdy użytkownik coś zmieni, komputer przesyła pełną informację tylko o jednym z procesorów. Na przykład jeżeli zostanie zmieniona głośność w procesorze pierwszym, to są konfigurowane wszystkie ustawienia procesora pierwszego. Bajt funkcyjny BFUN w tym wypadku zawiera numer procesora dźw ięku, który ma być ustawiony oraz informuje mikrokontroler, że paczka zawiera 5 bajtów. Pozostałe bajty omówiłem już wcześniej. Po drugie, po naciśnięciu „Odczyt ustawicńna panelu, w tej ramce jest przesłane do mikroprocesora żądanie, aby ten odczytał ustawienia z pamięci EEPROM, ustawił je w mikserze, a potem żeby odesłał je do komputera. Wtedy konfigurowany jest panel i pojawia się komunikat, że dane zostały odczytane pomyślnie. To żądanie jest zawarte w bajcie BFUN (bajt funkcyjny), a pozostałe bajty nie mają wtedy znaczenia. Dane odsyłane do komputera są zawarte w odpowiednio większej ramce, bo dotyczą wszystkich trzech procesorów. Jest ona pokazana w tabeli 8. Ta ramka jest też zastosowana do wysłania ustawień do miksera podczas zapisu EEPROM-u.

Podobnie jak wcześniej, BFUN jest hajtem informującym co to za dane i jaką mają objętość. Po dokonanym zapisie i aktualizacji ustawień miksera, do komputera jest wysyłane potwierdzenie, że ustawienia zostały zapisane pomyślnie. Tutaj potwierdzenie jest wysyłane po prostu w postaci jednego hajtu o odpowiedniej wartości.

Należy dla ścisłości jeszcze dodać, żc po dojściu do mikroprocesora żądania z komputera o wysłanie danych zawartych w pamięci EEPROM, mikrokontroler najpierw „patrzy”, czy one w ogolę tam są. Sprawdza wartość pierwszego bajtu pamięci EEPROM Jeżeli jego wartość wynosi 255, to znaczy, że pamięć jest pusta, bo tę liczbę wykluczyłem i nie występuje ona nig dzie podczas transmisji. Jest tam zapisywana podczas programowania mikrokontrolera. Wtedy mikroprocesor odsyła do komputera jeden bajt informujący, co jest grane.

Program mikrokontrolera

Program mikroprocesora napisałem w Basco-mie i można go ściągnąć z Elportalu EdW. Mikrokontroler pełni dwie zasadnicze limkcje. Po pierwsze, jest pośrednikiem między kom puterem a procesorami dźwięku. A po drugie, służy do zapamiętywania ustawień miksera.

W tabeli 6 widać schemat ramki transmisji między mikroprocesorem a procesorem audio. Była już o tym mowa. A w listingu l można zobaczyć praktyczną realizację tej ramki. Całość umieściłem w procedurze, bo jest ona wykonywana w kilku miejscach programu.

Czytelników pewnie interesuje, w jaki sposób dane są odbierane z komputera. Wykorzystałem do tego przerwanie od sprzętowego portu szeregowego mikrokontrolera. Odpowiednią deklarację i procedurę obsługi przerwania można zobaczyć na listingu 2.

Natomiast na listingu 3 jest przedstawiony zapis odebranych danych do pamięci EEPROM z wysłaniem potwierdzenia do komputera. Na podstawie tego potwierdzę nia, na panelu pojawia się odpowiedni komunikat. Zainteresowanych dalszymi szczegółami kieruję do Przyjaznego Portalu Elektroniki dla Wszystkich. Tam jest umieszczony pełny kod źródłowy mikrokontrolera. A w razie problemów ze zrozumie niem programu odsyłam do rewelacyjnej mikroprocesorowej Oślej Łączki.

Program na PC

Program komputerowy napisałem pod systemem Windows 98SE w darmowym pakiecie Borlanda - Delphi 7 Personal. Ma on trochę więcej roboty niż mikrokontroler. Przed transmisją danych do mikroprocesora musi najpierw przeanalizować stan panelu i na tej podstawie przygotować poszczególne bajty występujące w ramce transmisji Podobnie jest z danymi odbieranymi. Jeżeli komputer odbiera dane z pamięci EEPROM, to na ich podstawie konfiguruje ustawienia panelu, aby odpowiadały one ustawieniom miksera.

Program komputerowy dzielnie sprawdza również star. linii wejściowej CTS portu szeregowego. Jeżeli nie ma tam stanu wysokiego, to oznacza, że mikser nic jest podłączony do komputera. Wtedy panel sterujący jest blokowany. Zapobiega to ewentualnym błędom transmisji. Oprócz tego występuje zgodność tego, co jest na panelu, z ustawieniami

Eie<tronika dla Wszystkich Maj 2006 15


Wyszukiwarka

Podobne podstrony:
14447 Image13 (12) ■ Projekty AVT Uwaga! Podczas użytkowaniu urządzenia w jego obwodach występują na
21172 Image12 (14) Projekty AVT Projekty AVT Nie wolno zbytnio zbliżać się do urządzenia podczas pra
Image11 (25) ■ Projekty AVT „liter” (LED). Obsługę wspomnianego programu testowego przybliża ry sune
21228 Image15 (20) ■ Projekty AVT Do wejść SYNC kolejnych sterowników "SLAVfc&qu
27674 Image16 (17) Projekty AVT ■ Projekty AVT ■ dołączonego generatora TTL ustawiamy na 1 do 41 lz

więcej podobnych podstron